One TypeScript core, one platform adapter per host, one test suite that runs against every adapter.
Documentation: https://docs.koolbase.com
| Package | Install it for | |
|---|---|---|
@koolbase/js |
the browser | npm install @koolbase/js |
@koolbase/react-native |
React Native / Expo | npm install @koolbase/react-native |
@koolbase/core |
nothing — a dependency of the two above |
packages/
core/ shared behaviour; no host assumptions; the test suite
react-native/ composes core with AsyncStorage, NetInfo, Keychain
js/ composes core with IndexedDB and browser events
npm install
npm run build # core, then react-native, then js
npm test # the suite on the in-memory platform
npm run test:browser # the same suite on the browser adapter over fake-indexeddbA change to core is proven on both adapters before it lands. A change to an adapter is proven by the same suite against that adapter.
All three packages share one version, bumped together. A platform package pins its core dependency to the exact same version. Changes are listed in CHANGELOG.md; earlier history is at https://docs.koolbase.com/changelog.
- On a branch: bump the version in all three
packages/*/package.json(and the platform packages'@koolbase/coredependency), add a## x.y.zsection toCHANGELOG.md, and open a pull request. - Merge it. The release workflow tags
vx.y.zand creates the GitHub release from that changelog section. It stops if the three versions disagree. - From the merged
main:npm run build, then publish in dependency order:@koolbase/core, then@koolbase/react-native, then@koolbase/js, each withnpm publish -w <name> --access public. - A new version can take a few minutes to appear on npm. Don't publish it again while it propagates: npm refuses a version it has already received.
MIT