Skip to content

Commit a7b3d6a

Browse files
committed
docs: update collection imports and clarify new entry points in documentation
1 parent b414ac3 commit a7b3d6a

File tree

14 files changed

+75
-58
lines changed

14 files changed

+75
-58
lines changed

.changeset/sweet-trains-shave.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@codebelt/classy-store": minor
3+
---
4+
5+
refactor: simplify utils and core exports by removing unused functions and types

CLAUDE.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ packages/classy-store/src/
1313
├── core/core.ts # Layer 1: Write Proxy — createClassyStore(), subscribe(), getVersion()
1414
├── snapshot/snapshot.ts # Layer 2: Immutable snapshots — snapshot(), structural sharing
1515
├── types.ts # Snapshot<T>, StoreInternal, DepEntry, ComputedEntry
16-
├── index.ts # Main barrel: createClassyStore, snapshot, subscribe, getVersion, shallowEqual, reactiveMap, reactiveSet
16+
├── index.ts # Main barrel: createClassyStore, snapshot, subscribe, getVersion, shallowEqual
1717
├── collections/collections.ts # ReactiveMap and ReactiveSet (array-backed Map/Set emulation)
18+
├── collections/index.ts # Collections barrel: reactiveMap, reactiveSet, ReactiveMap, ReactiveSet
1819
├── frameworks/
1920
│ ├── react/react.ts # Layer 3 (React): useStore(), useLocalStore() via useSyncExternalStore
2021
│ ├── vue/vue.ts # Vue: useStore() → ShallowRef<Snapshot<T>> (onUnmounted cleanup)
@@ -105,7 +106,8 @@ Enforced by Biome 2.4.0 (`biome.json` at repo root):
105106

106107
| Import path | Contents |
107108
|---|---|
108-
| `@codebelt/classy-store` | `createClassyStore`, `snapshot`, `subscribe`, `getVersion`, `shallowEqual`, `reactiveMap`, `reactiveSet`, `Snapshot` type |
109+
| `@codebelt/classy-store` | `createClassyStore`, `snapshot`, `subscribe`, `getVersion`, `shallowEqual`, `Snapshot` type |
110+
| `@codebelt/classy-store/collections` | `reactiveMap`, `reactiveSet`, `ReactiveMap` type, `ReactiveSet` type |
109111
| `@codebelt/classy-store/react` | `useStore`, `useLocalStore` |
110112
| `@codebelt/classy-store/vue` | `useStore` (ShallowRef) |
111113
| `@codebelt/classy-store/svelte` | `toSvelteStore` (ClassyReadable) |

examples/react/src/demos/shallow-equal/ShallowEqualDemo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1+
import {shallowEqual} from '@codebelt/classy-store';
12
import {useStore} from '@codebelt/classy-store/react';
2-
import {shallowEqual} from '@codebelt/classy-store/utils';
33
import {Button} from '../../components/Button';
44
import {DemoContainer} from '../../components/DemoContainer';
55
import {RenderBadge} from '../../components/RenderBadge';

examples/react/src/stores/collectionStore.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
import {
2-
createClassyStore,
3-
reactiveMap,
4-
reactiveSet,
5-
} from '@codebelt/classy-store';
1+
import {createClassyStore} from '@codebelt/classy-store';
2+
import {reactiveMap, reactiveSet} from '@codebelt/classy-store/collections';
63

74
interface User {
85
name: string;

examples/react/src/stores/persistStores.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
import {
2-
createClassyStore,
3-
reactiveMap,
4-
reactiveSet,
5-
} from '@codebelt/classy-store';
1+
import {createClassyStore} from '@codebelt/classy-store';
2+
import {reactiveMap, reactiveSet} from '@codebelt/classy-store/collections';
63
import {persist} from '@codebelt/classy-store/utils';
74

85
// ── Simple Store ────────────────────────────────────────────────────────────

packages/classy-store/package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,26 @@
2626
"default": "./dist/index.cjs"
2727
}
2828
},
29+
"./utils": {
30+
"import": {
31+
"types": "./dist/utils/index.d.mts",
32+
"default": "./dist/utils/index.mjs"
33+
},
34+
"require": {
35+
"types": "./dist/utils/index.d.cts",
36+
"default": "./dist/utils/index.cjs"
37+
}
38+
},
39+
"./collections": {
40+
"import": {
41+
"types": "./dist/collections/index.d.mts",
42+
"default": "./dist/collections/index.mjs"
43+
},
44+
"require": {
45+
"types": "./dist/collections/index.d.cts",
46+
"default": "./dist/collections/index.cjs"
47+
}
48+
},
2949
"./react": {
3050
"import": {
3151
"types": "./dist/frameworks/react/react.d.mts",
@@ -75,26 +95,6 @@
7595
"types": "./dist/frameworks/solid/solid.d.cts",
7696
"default": "./dist/frameworks/solid/solid.cjs"
7797
}
78-
},
79-
"./collections": {
80-
"import": {
81-
"types": "./dist/collections/index.d.mts",
82-
"default": "./dist/collections/index.mjs"
83-
},
84-
"require": {
85-
"types": "./dist/collections/index.d.cts",
86-
"default": "./dist/collections/index.cjs"
87-
}
88-
},
89-
"./utils": {
90-
"import": {
91-
"types": "./dist/utils/index.d.mts",
92-
"default": "./dist/utils/index.mjs"
93-
},
94-
"require": {
95-
"types": "./dist/utils/index.d.cts",
96-
"default": "./dist/utils/index.cjs"
97-
}
9898
}
9999
},
100100
"files": [

packages/classy-store/src/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@
22
* @codebelt/classy-store -- Class-based reactive state management (Core/Vanilla).
33
*
44
* This entry point includes only the core logic.
5-
* For React usage, import from `@codebelt/classy-store/react`.
65
*
76
* @module @codebelt/classy-store
87
*/
9-
export type {ReactiveMap, ReactiveSet} from './collections/collections';
10-
export {reactiveMap, reactiveSet} from './collections/collections';
118
export {createClassyStore, getVersion, subscribe} from './core/core';
129
export {snapshot} from './snapshot/snapshot';
1310
export type {Snapshot} from './types';

packages/classy-store/src/utils/index.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
/**
22
* @codebelt/classy-store/utils -- Utility functions for @codebelt/classy-store.
33
*
4-
* Public API:
5-
* - `persist(store, options)` -- persist store state to storage with transforms, versioning, and cross-tab sync
6-
* - `devtools(store, options?)` -- connect a store to Redux DevTools for inspection and time-travel
7-
* - `subscribeKey(store, key, callback)` -- subscribe to changes on a single property
8-
* - `withHistory(store, options?)` -- add undo/redo capability via a snapshot stack
9-
* - `shallowEqual(a, b)` -- shallow equality helper for use with `useStore` selectors
4+
* This entry point includes only the utils logic.
105
*
116
* @module @codebelt/classy-store/utils
127
*/
138

149
export type {DevtoolsOptions} from './devtools/devtools';
1510
export {devtools} from './devtools/devtools';
16-
export {shallowEqual} from './equality/equality';
1711
export type {HistoryHandle, HistoryOptions} from './history/history';
1812
export {withHistory} from './history/history';
1913
export type {

website/docs/ARCHITECTURE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,10 @@ flowchart TB
6565

6666
```
6767
src/
68-
├── index.ts # Barrel export: createClassyStore, useStore, snapshot, subscribe, getVersion, shallowEqual, Snapshot, reactiveMap, reactiveSet, ReactiveMap, ReactiveSet
68+
├── index.ts # Barrel export: createClassyStore, snapshot, subscribe, getVersion, shallowEqual, Snapshot
6969
├── collections/
7070
│ ├── collections.ts # ReactiveMap and ReactiveSet implementations
71+
│ ├── index.ts # Collections barrel: reactiveMap, reactiveSet, ReactiveMap, ReactiveSet
7172
│ └── collections.test.ts # tests: ReactiveMap, ReactiveSet, class store integration
7273
├── core/
7374
│ ├── core.ts # Layer 1: Write Proxy — createClassyStore(), subscribe(), getVersion()

website/docs/PERSIST_TUTORIAL.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@ On restore, `deserialize` converts the ISO string back into a `Date` object befo
125125
`reactiveMap()` instances are backed by internal arrays that aren't directly JSON-serializable:
126126

127127
```ts
128-
import {createClassyStore, reactiveMap} from '@codebelt/classy-store';
128+
import {createClassyStore} from '@codebelt/classy-store';
129+
import {reactiveMap} from '@codebelt/classy-store/collections';
129130
import {persist} from '@codebelt/classy-store/utils';
130131

131132
class UserStore {
@@ -512,7 +513,8 @@ persist(todoStore, {
512513
Here's a complete example combining several features:
513514

514515
```ts
515-
import {createClassyStore, reactiveMap} from '@codebelt/classy-store';
516+
import {createClassyStore} from '@codebelt/classy-store';
517+
import {reactiveMap} from '@codebelt/classy-store/collections';
516518
import {persist} from '@codebelt/classy-store/utils';
517519

518520
class AppStore {

0 commit comments

Comments
 (0)