@noy-db/in-solid 0.2.0-pre.3 → 0.2.0-pre.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noy-db/in-solid",
3
- "version": "0.2.0-pre.3",
3
+ "version": "0.2.0-pre.31",
4
4
  "description": "SolidJS signal primitives for noy-db — createCollectionSignal, createQuerySignal, createSyncSignal backed by noy-db change events.",
5
5
  "license": "MIT",
6
6
  "author": "vLannaAi <vicio@lanna.ai>",
@@ -17,17 +17,10 @@
17
17
  "sideEffects": false,
18
18
  "exports": {
19
19
  ".": {
20
- "import": {
21
- "types": "./dist/index.d.ts",
22
- "default": "./dist/index.js"
23
- },
24
- "require": {
25
- "types": "./dist/index.d.cts",
26
- "default": "./dist/index.cjs"
27
- }
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.js"
28
22
  }
29
23
  },
30
- "main": "./dist/index.cjs",
31
24
  "module": "./dist/index.js",
32
25
  "types": "./dist/index.d.ts",
33
26
  "files": [
@@ -36,15 +29,15 @@
36
29
  "LICENSE"
37
30
  ],
38
31
  "engines": {
39
- "node": ">=18.0.0"
32
+ "node": ">=22.0.0"
40
33
  },
41
34
  "peerDependencies": {
42
35
  "solid-js": "^1.8.0",
43
- "@noy-db/hub": "0.2.0-pre.3"
36
+ "@noy-db/hub": "0.2.0-pre.31"
44
37
  },
45
38
  "devDependencies": {
46
39
  "solid-js": "^1.9.0",
47
- "@noy-db/hub": "0.2.0-pre.3"
40
+ "@noy-db/hub": "0.2.0-pre.31"
48
41
  },
49
42
  "keywords": [
50
43
  "noy-db",
package/dist/index.cjs DELETED
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- createCollectionSignal: () => createCollectionSignal,
24
- createQuerySignal: () => createQuerySignal,
25
- createSyncSignal: () => createSyncSignal
26
- });
27
- module.exports = __toCommonJS(index_exports);
28
- var import_solid_js = require("solid-js");
29
- function createCollectionSignal(vault, collectionName) {
30
- const [records, setRecords] = (0, import_solid_js.createSignal)([]);
31
- const [loading, setLoading] = (0, import_solid_js.createSignal)(true);
32
- const [error, setError] = (0, import_solid_js.createSignal)(null);
33
- (0, import_solid_js.createRenderEffect)(() => {
34
- const coll = vault.collection(collectionName);
35
- async function refresh() {
36
- try {
37
- const list = await coll.list();
38
- setRecords(list);
39
- setError(null);
40
- } catch (err) {
41
- setError(err);
42
- } finally {
43
- setLoading(false);
44
- }
45
- }
46
- void refresh();
47
- const unsub = coll.subscribe(() => {
48
- void refresh();
49
- });
50
- (0, import_solid_js.onCleanup)(unsub);
51
- });
52
- return [records, loading, error];
53
- }
54
- function createQuerySignal(vault, collectionName, builder) {
55
- const [data, setData] = (0, import_solid_js.createSignal)(null);
56
- const [loading, setLoading] = (0, import_solid_js.createSignal)(true);
57
- const [error, setError] = (0, import_solid_js.createSignal)(null);
58
- (0, import_solid_js.createRenderEffect)(() => {
59
- const coll = vault.collection(collectionName);
60
- async function refresh() {
61
- try {
62
- const result = await Promise.resolve(builder(coll.query()));
63
- setData(() => result);
64
- setError(null);
65
- } catch (err) {
66
- setError(err);
67
- } finally {
68
- setLoading(false);
69
- }
70
- }
71
- void refresh();
72
- const unsub = coll.subscribe(() => {
73
- void refresh();
74
- });
75
- (0, import_solid_js.onCleanup)(unsub);
76
- });
77
- return [data, loading, error];
78
- }
79
- function createSyncSignal(db) {
80
- const [lastEvent, setLastEvent] = (0, import_solid_js.createSignal)(null);
81
- (0, import_solid_js.createRenderEffect)(() => {
82
- const handler = (event) => {
83
- setLastEvent(() => event);
84
- };
85
- db.on("change", handler);
86
- (0, import_solid_js.onCleanup)(() => db.off("change", handler));
87
- });
88
- return lastEvent;
89
- }
90
- // Annotate the CommonJS export names for ESM import in node:
91
- 0 && (module.exports = {
92
- createCollectionSignal,
93
- createQuerySignal,
94
- createSyncSignal
95
- });
96
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * **@noy-db/in-solid** — SolidJS signal primitives for noy-db.\n *\n * - {@link createCollectionSignal} — reactive record list\n * - {@link createQuerySignal} — reactive query result\n * - {@link createSyncSignal} — Noydb-level change feed\n *\n * Uses `createSignal` + `createRenderEffect` + `onCleanup` from `solid-js`.\n * No DOM dependency — works in SSR and test environments via `createRoot`.\n *\n * @packageDocumentation\n */\n\nimport { createSignal, createRenderEffect, onCleanup } from 'solid-js'\nimport type { Accessor } from 'solid-js'\nimport type { Noydb, Vault, ChangeEvent, Query } from '@noy-db/hub'\n\nexport function createCollectionSignal<T>(\n vault: Vault,\n collectionName: string,\n): [records: Accessor<T[]>, loading: Accessor<boolean>, error: Accessor<Error | null>] {\n const [records, setRecords] = createSignal<T[]>([])\n const [loading, setLoading] = createSignal(true)\n const [error, setError] = createSignal<Error | null>(null)\n\n // createRenderEffect runs synchronously (no scheduler deferral), ensuring\n // the subscription is registered before the first async flush can fire events.\n createRenderEffect(() => {\n const coll = vault.collection<T>(collectionName)\n\n async function refresh(): Promise<void> {\n try {\n const list = await coll.list()\n setRecords(list)\n setError(null)\n } catch (err) {\n setError(err as Error)\n } finally {\n setLoading(false)\n }\n }\n\n void refresh()\n const unsub = coll.subscribe(() => { void refresh() })\n onCleanup(unsub)\n })\n\n return [records, loading, error]\n}\n\nexport function createQuerySignal<T, R>(\n vault: Vault,\n collectionName: string,\n builder: (q: Query<T>) => R | Promise<R>,\n): [data: Accessor<R | null>, loading: Accessor<boolean>, error: Accessor<Error | null>] {\n const [data, setData] = createSignal<R | null>(null)\n const [loading, setLoading] = createSignal(true)\n const [error, setError] = createSignal<Error | null>(null)\n\n // createRenderEffect runs synchronously (no scheduler deferral), ensuring\n // the subscription is registered before the first async flush can fire events.\n createRenderEffect(() => {\n const coll = vault.collection<T>(collectionName)\n\n async function refresh(): Promise<void> {\n try {\n const result = await Promise.resolve(builder(coll.query() as unknown as Query<T>))\n setData(() => result)\n setError(null)\n } catch (err) {\n setError(err as Error)\n } finally {\n setLoading(false)\n }\n }\n\n void refresh()\n const unsub = coll.subscribe(() => { void refresh() })\n onCleanup(unsub)\n })\n\n return [data, loading, error]\n}\n\nexport function createSyncSignal(db: Noydb): Accessor<ChangeEvent | null> {\n const [lastEvent, setLastEvent] = createSignal<ChangeEvent | null>(null)\n\n // createRenderEffect runs synchronously (no scheduler deferral), ensuring\n // the subscription is registered before the first async flush can fire events.\n createRenderEffect(() => {\n const handler = (event: ChangeEvent): void => { setLastEvent(() => event) }\n db.on('change', handler)\n onCleanup(() => db.off('change', handler))\n })\n\n return lastEvent\n}\n\nexport type { Noydb, Vault, ChangeEvent } from '@noy-db/hub'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,sBAA4D;AAIrD,SAAS,uBACd,OACA,gBACqF;AACrF,QAAM,CAAC,SAAS,UAAU,QAAI,8BAAkB,CAAC,CAAC;AAClD,QAAM,CAAC,SAAS,UAAU,QAAI,8BAAa,IAAI;AAC/C,QAAM,CAAC,OAAO,QAAQ,QAAI,8BAA2B,IAAI;AAIzD,0CAAmB,MAAM;AACvB,UAAM,OAAO,MAAM,WAAc,cAAc;AAE/C,mBAAe,UAAyB;AACtC,UAAI;AACF,cAAM,OAAO,MAAM,KAAK,KAAK;AAC7B,mBAAW,IAAI;AACf,iBAAS,IAAI;AAAA,MACf,SAAS,KAAK;AACZ,iBAAS,GAAY;AAAA,MACvB,UAAE;AACA,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAEA,SAAK,QAAQ;AACb,UAAM,QAAQ,KAAK,UAAU,MAAM;AAAE,WAAK,QAAQ;AAAA,IAAE,CAAC;AACrD,mCAAU,KAAK;AAAA,EACjB,CAAC;AAED,SAAO,CAAC,SAAS,SAAS,KAAK;AACjC;AAEO,SAAS,kBACd,OACA,gBACA,SACuF;AACvF,QAAM,CAAC,MAAM,OAAO,QAAI,8BAAuB,IAAI;AACnD,QAAM,CAAC,SAAS,UAAU,QAAI,8BAAa,IAAI;AAC/C,QAAM,CAAC,OAAO,QAAQ,QAAI,8BAA2B,IAAI;AAIzD,0CAAmB,MAAM;AACvB,UAAM,OAAO,MAAM,WAAc,cAAc;AAE/C,mBAAe,UAAyB;AACtC,UAAI;AACF,cAAM,SAAS,MAAM,QAAQ,QAAQ,QAAQ,KAAK,MAAM,CAAwB,CAAC;AACjF,gBAAQ,MAAM,MAAM;AACpB,iBAAS,IAAI;AAAA,MACf,SAAS,KAAK;AACZ,iBAAS,GAAY;AAAA,MACvB,UAAE;AACA,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAEA,SAAK,QAAQ;AACb,UAAM,QAAQ,KAAK,UAAU,MAAM;AAAE,WAAK,QAAQ;AAAA,IAAE,CAAC;AACrD,mCAAU,KAAK;AAAA,EACjB,CAAC;AAED,SAAO,CAAC,MAAM,SAAS,KAAK;AAC9B;AAEO,SAAS,iBAAiB,IAAyC;AACxE,QAAM,CAAC,WAAW,YAAY,QAAI,8BAAiC,IAAI;AAIvE,0CAAmB,MAAM;AACvB,UAAM,UAAU,CAAC,UAA6B;AAAE,mBAAa,MAAM,KAAK;AAAA,IAAE;AAC1E,OAAG,GAAG,UAAU,OAAO;AACvB,mCAAU,MAAM,GAAG,IAAI,UAAU,OAAO,CAAC;AAAA,EAC3C,CAAC;AAED,SAAO;AACT;","names":[]}
package/dist/index.d.cts DELETED
@@ -1,22 +0,0 @@
1
- import { Accessor } from 'solid-js';
2
- import { Vault, Query, Noydb, ChangeEvent } from '@noy-db/hub';
3
- export { ChangeEvent, Noydb, Vault } from '@noy-db/hub';
4
-
5
- /**
6
- * **@noy-db/in-solid** — SolidJS signal primitives for noy-db.
7
- *
8
- * - {@link createCollectionSignal} — reactive record list
9
- * - {@link createQuerySignal} — reactive query result
10
- * - {@link createSyncSignal} — Noydb-level change feed
11
- *
12
- * Uses `createSignal` + `createRenderEffect` + `onCleanup` from `solid-js`.
13
- * No DOM dependency — works in SSR and test environments via `createRoot`.
14
- *
15
- * @packageDocumentation
16
- */
17
-
18
- declare function createCollectionSignal<T>(vault: Vault, collectionName: string): [records: Accessor<T[]>, loading: Accessor<boolean>, error: Accessor<Error | null>];
19
- declare function createQuerySignal<T, R>(vault: Vault, collectionName: string, builder: (q: Query<T>) => R | Promise<R>): [data: Accessor<R | null>, loading: Accessor<boolean>, error: Accessor<Error | null>];
20
- declare function createSyncSignal(db: Noydb): Accessor<ChangeEvent | null>;
21
-
22
- export { createCollectionSignal, createQuerySignal, createSyncSignal };