on-zero 0.1.21 → 0.1.23
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/dist/cjs/cli.cjs +17 -420
- package/dist/cjs/cli.js +7 -398
- package/dist/cjs/cli.js.map +2 -2
- package/dist/cjs/cli.native.js +15 -514
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/generate.cjs +370 -0
- package/dist/cjs/generate.js +339 -0
- package/dist/cjs/generate.js.map +6 -0
- package/dist/cjs/generate.native.js +464 -0
- package/dist/cjs/generate.native.js.map +1 -0
- package/dist/cjs/helpers/createMutators.cjs +4 -3
- package/dist/cjs/helpers/createMutators.js +12 -9
- package/dist/cjs/helpers/createMutators.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js +25 -21
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +34 -4
- package/dist/cjs/mutations.js +29 -4
- package/dist/cjs/mutations.js.map +1 -1
- package/dist/cjs/mutations.native.js +36 -4
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +84 -0
- package/dist/cjs/vite-plugin.js +86 -0
- package/dist/cjs/vite-plugin.js.map +6 -0
- package/dist/cjs/vite-plugin.native.js +99 -0
- package/dist/cjs/vite-plugin.native.js.map +1 -0
- package/dist/esm/cli.js +8 -384
- package/dist/esm/cli.js.map +2 -2
- package/dist/esm/cli.mjs +17 -398
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +15 -492
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/generate.js +317 -0
- package/dist/esm/generate.js.map +6 -0
- package/dist/esm/generate.mjs +335 -0
- package/dist/esm/generate.mjs.map +1 -0
- package/dist/esm/generate.native.js +426 -0
- package/dist/esm/generate.native.js.map +1 -0
- package/dist/esm/helpers/createMutators.js +12 -9
- package/dist/esm/helpers/createMutators.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +4 -3
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +25 -21
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/mutations.js +29 -4
- package/dist/esm/mutations.js.map +1 -1
- package/dist/esm/mutations.mjs +34 -4
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +35 -3
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/vite-plugin.js +71 -0
- package/dist/esm/vite-plugin.js.map +6 -0
- package/dist/esm/vite-plugin.mjs +59 -0
- package/dist/esm/vite-plugin.mjs.map +1 -0
- package/dist/esm/vite-plugin.native.js +71 -0
- package/dist/esm/vite-plugin.native.js.map +1 -0
- package/package.json +7 -2
- package/readme.md +42 -32
- package/src/cli.ts +9 -638
- package/src/generate.ts +490 -0
- package/src/helpers/createMutators.ts +14 -8
- package/src/mutations.ts +57 -4
- package/src/vite-plugin.ts +110 -0
- package/types/generate.d.ts +21 -0
- package/types/generate.d.ts.map +1 -0
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/mutations.d.ts.map +1 -1
- package/types/vite-plugin.d.ts +16 -0
- package/types/vite-plugin.d.ts.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","param","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","serverActions","modelMutators","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","withValidation","tableName","mutatorName","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","
|
|
1
|
+
{"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","param","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","serverActions","modelMutators","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","withValidation","tableName","mutatorName","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","moduleName","moduleExports","_step","value","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop2","_step1","fullName","getDynamicFn"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/mutations.js
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck";
|
|
2
2
|
import { setMutationsPermissions } from "./modelRegistry";
|
|
3
|
+
const registryKey = "__onZeroMutationRegistry__", proxyKey = "__onZeroProxyRegistry__", mutationRegistry = globalThis[registryKey] || (globalThis[registryKey] = /* @__PURE__ */ new Map()), proxyRegistry = globalThis[proxyKey] || (globalThis[proxyKey] = /* @__PURE__ */ new Map());
|
|
4
|
+
function getOrCreateMutationProxy(tableName, implementations) {
|
|
5
|
+
mutationRegistry.set(tableName, implementations);
|
|
6
|
+
const existing = proxyRegistry.get(tableName);
|
|
7
|
+
if (existing)
|
|
8
|
+
return existing;
|
|
9
|
+
const proxy = new Proxy({}, {
|
|
10
|
+
get(_, key) {
|
|
11
|
+
return mutationRegistry.get(tableName)?.[key];
|
|
12
|
+
},
|
|
13
|
+
ownKeys() {
|
|
14
|
+
const current = mutationRegistry.get(tableName);
|
|
15
|
+
return current ? Object.keys(current) : [];
|
|
16
|
+
},
|
|
17
|
+
getOwnPropertyDescriptor(_, key) {
|
|
18
|
+
const current = mutationRegistry.get(tableName);
|
|
19
|
+
if (current && key in current)
|
|
20
|
+
return { enumerable: !0, configurable: !0, value: current[key] };
|
|
21
|
+
},
|
|
22
|
+
has(_, key) {
|
|
23
|
+
const current = mutationRegistry.get(tableName);
|
|
24
|
+
return current ? key in current : !1;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return proxyRegistry.set(tableName, proxy), proxy;
|
|
28
|
+
}
|
|
3
29
|
function mutations(table, permissions, mutations2) {
|
|
4
30
|
if (permissions) {
|
|
5
31
|
const tableName = table.schema.name, createCRUDMutation = (action) => async (ctx, obj) => {
|
|
@@ -14,13 +40,12 @@ function mutations(table, permissions, mutations2) {
|
|
|
14
40
|
update: createCRUDMutation("update"),
|
|
15
41
|
delete: createCRUDMutation("delete"),
|
|
16
42
|
upsert: createCRUDMutation("upsert")
|
|
17
|
-
}, finalMutations =
|
|
43
|
+
}, finalMutations = {
|
|
18
44
|
...mutations2,
|
|
19
45
|
// overwrite regular mutations but call them if they are defined by user
|
|
20
46
|
...crudMutations
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return setMutationsPermissions(tableName, permissions), finalMutations;
|
|
47
|
+
};
|
|
48
|
+
return setMutationsPermissions(tableName, permissions), getOrCreateMutationProxy(tableName, finalMutations);
|
|
24
49
|
}
|
|
25
50
|
return table;
|
|
26
51
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/mutations.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;
|
|
4
|
+
"mappings": "AAAA,SAAS,gCAAgC;AACzC,SAAS,+BAA+B;AAcxC,MAAM,cAAc,8BACd,WAAW,2BAGX,mBAA0D,WAAW,WAAW,MACrF,WAAW,WAAW,IAAI,oBAAI,IAAI,IAE7B,gBACJ,WAAW,QAAQ,MAAM,WAAW,QAAQ,IAAI,oBAAI,IAAI;AAI1D,SAAS,yBACP,WACA,iBACG;AAEH,mBAAiB,IAAI,WAAW,eAAe;AAG/C,QAAM,WAAW,cAAc,IAAI,SAAS;AAC5C,MAAI;AACF,WAAO;AAIT,QAAM,QAAQ,IAAI,MAAM,CAAC,GAAQ;AAAA,IAC/B,IAAI,GAAG,KAAa;AAClB,aAAO,iBAAiB,IAAI,SAAS,IAAI,GAAG;AAAA,IAC9C;AAAA,IACA,UAAU;AACR,YAAM,UAAU,iBAAiB,IAAI,SAAS;AAC9C,aAAO,UAAU,OAAO,KAAK,OAAO,IAAI,CAAC;AAAA,IAC3C;AAAA,IACA,yBAAyB,GAAG,KAAa;AACvC,YAAM,UAAU,iBAAiB,IAAI,SAAS;AAC9C,UAAI,WAAW,OAAO;AACpB,eAAO,EAAE,YAAY,IAAM,cAAc,IAAM,OAAO,QAAQ,GAAG,EAAE;AAAA,IAEvE;AAAA,IACA,IAAI,GAAG,KAAa;AAClB,YAAM,UAAU,iBAAiB,IAAI,SAAS;AAC9C,aAAO,UAAU,OAAO,UAAU;AAAA,IACpC;AAAA,EACF,CAAC;AAED,uBAAc,IAAI,WAAW,KAAK,GAC3B;AACT;AA0DO,SAAS,UAGd,OAA0B,aAAqBA,YAAkC;AACjF,MAAI,aAAa;AACf,UAAM,YAAa,MAAgB,OAAO,MAEpC,qBAAqB,CAAC,WACnB,OAAO,KAAqB,QAAa;AAS9C,YAAM,2BAA2B,YAAY;AAC3C,QAAI,yBAAyB,GAAG,KAM5B,QAAQ,IAAI,qBAAqB,SACnC,MAAM,IAAI,IAAI,aAAa,GAAG;AAAA,MAElC;AAEA,MAAI,WAAW,YACb,MAAM,yBAAyB;AAIjC,YAAM,WAAWA,aAAY,MAAM;AAEnC,MAAI,WACF,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAsB,EAAG,MAAM,EAAE,GAAG,GAGtD,WAAW,YACb,MAAM,yBAAyB;AAAA,IAEnC,GAGI,gBAAoC;AAAA,MACxC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,IACrC,GAEM,iBAAiB;AAAA,MACrB,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA,IACL;AAEA,mCAAwB,WAAW,WAAW,GAGvC,yBAAyB,WAAW,cAAc;AAAA,EAC3D;AAGA,SAAO;AACT;",
|
|
5
5
|
"names": ["mutations"]
|
|
6
6
|
}
|
package/dist/esm/mutations.mjs
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.mjs";
|
|
2
2
|
import { setMutationsPermissions } from "./modelRegistry.mjs";
|
|
3
|
+
const registryKey = "__onZeroMutationRegistry__",
|
|
4
|
+
proxyKey = "__onZeroProxyRegistry__",
|
|
5
|
+
mutationRegistry = globalThis[registryKey] || (globalThis[registryKey] = /* @__PURE__ */new Map()),
|
|
6
|
+
proxyRegistry = globalThis[proxyKey] || (globalThis[proxyKey] = /* @__PURE__ */new Map());
|
|
7
|
+
function getOrCreateMutationProxy(tableName, implementations) {
|
|
8
|
+
mutationRegistry.set(tableName, implementations);
|
|
9
|
+
const existing = proxyRegistry.get(tableName);
|
|
10
|
+
if (existing) return existing;
|
|
11
|
+
const proxy = new Proxy({}, {
|
|
12
|
+
get(_, key) {
|
|
13
|
+
return mutationRegistry.get(tableName)?.[key];
|
|
14
|
+
},
|
|
15
|
+
ownKeys() {
|
|
16
|
+
const current = mutationRegistry.get(tableName);
|
|
17
|
+
return current ? Object.keys(current) : [];
|
|
18
|
+
},
|
|
19
|
+
getOwnPropertyDescriptor(_, key) {
|
|
20
|
+
const current = mutationRegistry.get(tableName);
|
|
21
|
+
if (current && key in current) return {
|
|
22
|
+
enumerable: !0,
|
|
23
|
+
configurable: !0,
|
|
24
|
+
value: current[key]
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
has(_, key) {
|
|
28
|
+
const current = mutationRegistry.get(tableName);
|
|
29
|
+
return current ? key in current : !1;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return proxyRegistry.set(tableName, proxy), proxy;
|
|
33
|
+
}
|
|
3
34
|
function mutations(table, permissions, mutations2) {
|
|
4
35
|
if (permissions) {
|
|
5
36
|
const tableName = table.schema.name,
|
|
@@ -17,13 +48,12 @@ function mutations(table, permissions, mutations2) {
|
|
|
17
48
|
delete: createCRUDMutation("delete"),
|
|
18
49
|
upsert: createCRUDMutation("upsert")
|
|
19
50
|
},
|
|
20
|
-
finalMutations =
|
|
51
|
+
finalMutations = {
|
|
21
52
|
...mutations2,
|
|
22
53
|
// overwrite regular mutations but call them if they are defined by user
|
|
23
54
|
...crudMutations
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return setMutationsPermissions(tableName, permissions), finalMutations;
|
|
55
|
+
};
|
|
56
|
+
return setMutationsPermissions(tableName, permissions), getOrCreateMutationProxy(tableName, finalMutations);
|
|
27
57
|
}
|
|
28
58
|
return table;
|
|
29
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","mutations","table","permissions","mutations2","
|
|
1
|
+
{"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","registryKey","proxyKey","mutationRegistry","globalThis","Map","proxyRegistry","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","process","env","VITE_ENVIRONMENT","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.native.js";
|
|
2
2
|
import { setMutationsPermissions } from "./modelRegistry.native.js";
|
|
3
|
+
var registryKey = "__onZeroMutationRegistry__",
|
|
4
|
+
proxyKey = "__onZeroProxyRegistry__",
|
|
5
|
+
mutationRegistry = globalThis[registryKey] || (globalThis[registryKey] = /* @__PURE__ */new Map()),
|
|
6
|
+
proxyRegistry = globalThis[proxyKey] || (globalThis[proxyKey] = /* @__PURE__ */new Map());
|
|
7
|
+
function getOrCreateMutationProxy(tableName, implementations) {
|
|
8
|
+
mutationRegistry.set(tableName, implementations);
|
|
9
|
+
var existing = proxyRegistry.get(tableName);
|
|
10
|
+
if (existing) return existing;
|
|
11
|
+
var proxy = new Proxy({}, {
|
|
12
|
+
get(_, key) {
|
|
13
|
+
var _mutationRegistry_get;
|
|
14
|
+
return (_mutationRegistry_get = mutationRegistry.get(tableName)) === null || _mutationRegistry_get === void 0 ? void 0 : _mutationRegistry_get[key];
|
|
15
|
+
},
|
|
16
|
+
ownKeys() {
|
|
17
|
+
var current = mutationRegistry.get(tableName);
|
|
18
|
+
return current ? Object.keys(current) : [];
|
|
19
|
+
},
|
|
20
|
+
getOwnPropertyDescriptor(_, key) {
|
|
21
|
+
var current = mutationRegistry.get(tableName);
|
|
22
|
+
if (current && key in current) return {
|
|
23
|
+
enumerable: !0,
|
|
24
|
+
configurable: !0,
|
|
25
|
+
value: current[key]
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
has(_, key) {
|
|
29
|
+
var current = mutationRegistry.get(tableName);
|
|
30
|
+
return current ? key in current : !1;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return proxyRegistry.set(tableName, proxy), proxy;
|
|
34
|
+
}
|
|
3
35
|
function mutations(table, permissions, mutations2) {
|
|
4
36
|
if (permissions) {
|
|
5
37
|
var tableName = table.schema.name,
|
|
@@ -19,12 +51,12 @@ function mutations(table, permissions, mutations2) {
|
|
|
19
51
|
delete: createCRUDMutation("delete"),
|
|
20
52
|
upsert: createCRUDMutation("upsert")
|
|
21
53
|
},
|
|
22
|
-
finalMutations =
|
|
54
|
+
finalMutations = {
|
|
23
55
|
...mutations2,
|
|
24
56
|
// overwrite regular mutations but call them if they are defined by user
|
|
25
57
|
...crudMutations
|
|
26
|
-
}
|
|
27
|
-
return setMutationsPermissions(tableName, permissions), finalMutations;
|
|
58
|
+
};
|
|
59
|
+
return setMutationsPermissions(tableName, permissions), getOrCreateMutationProxy(tableName, finalMutations);
|
|
28
60
|
}
|
|
29
61
|
return table;
|
|
30
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","mutations","table","permissions","mutations2","
|
|
1
|
+
{"version":3,"names":["getDidRunPermissionCheck","setMutationsPermissions","registryKey","proxyKey","mutationRegistry","globalThis","Map","proxyRegistry","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","_mutationRegistry_get","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","process","env","VITE_ENVIRONMENT","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,wBAAA,QAAgC;AACzC,SAASC,uBAAA,QAA+B;AAcxC,IAAAC,WAAM,+BAAc;EAAAC,QACd,4BAAW;EAAAC,gBAGX,GAAAC,UAA0D,CAAAH,WAAW,MAAWG,UACrF,CAAAH,WAAW,IAAW,eAAI,IAAAI,GAAI,GAAI;EAAAC,aAE7B,GAAAF,UACJ,CAAAF,QAAW,MAAQE,UAAM,CAAAF,QAAW,IAAQ,eAAI,IAAAG,GAAI,GAAI;AAI1D,SAASE,yBACPC,SAAA,EACAC,eAAA,EACG;EAEHN,gBAAA,CAAiBO,GAAA,CAAIF,SAAA,EAAWC,eAAe;EAG/C,IAAAE,QAAM,GAAAL,aAAW,CAAAM,GAAc,CAAAJ,SAAI;EACnC,IAAIG,QAAA,EACF,OAAOA,QAAA;EAIT,IAAAE,KAAM,OAAQC,KAAI,GAAM,EAAC;IACvBF,IAAIG,CAAA,EAAGC,GAAA,EAAa;MAClB,IAAAC,qBAAwB;MAC1B,QAAAA,qBAAA,GAAAd,gBAAA,CAAAS,GAAA,CAAAJ,SAAA,eAAAS,qBAAA,uBAAAA,qBAAA,CAAAD,GAAA;IACA;IACEE,QAAA,EAAM;MACN,IAAAC,OAAO,GAAAhB,gBAAsB,CAAAS,GAAA,CAAAJ,SAAY;MAC3C,OAAAW,OAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAF,OAAA;IACA;IACEG,wBAAgBA,CAAAP,CAAA,EAAAC,GAAA;MAChB,IAAIG,OAAA,GAAAhB,gBAAkB,CAAAS,GAAA,CAAAJ,SAAA;MACpB,IAAAW,OAAS,IAAAH,GAAA,IAAAG,OAAkB,EAE/B;QACII,UAAgB;QAClBC,YAAgB;QAChBC,KAAO,EAAAN,OAAU,CAAAH,GAAA;MACnB;IACD;IAEDU,IAAAX,CAAA,EAAAC,GAAA;MAEF,IAAAG,OAAA,GAAAhB,gBAAA,CAAAS,GAAA,CAAAJ,SAAA;MA0DO,OAASW,OAGd,GAAAH,GAA0B,IAAAG,OAAA,GAAqB;IAC/C;EACE;EAYI,OAAAb,aAAM,CAAAI,GAAA,CAAAF,SAAA,EAAAK,KAA2B,GAAAA,KAAY;AAC3C;AAOgC,SAElCc,UAAAC,KAAA,EAAAC,WAAA,EAAAC,UAAA;EAEA,IAAID,WAAW;IAKf,IAAArB,SAAM,GAAAoB,KAAW,CAAAG,MAAA,CAAAC,IAAY;MAAAC,kBAAM,YAAAA,CAAAC,MAAA;QAE/B,uBACIC,GAAA,EAASC,GAAA,EAAK;UAYpB,IAAAC,wBAAoC,kBAAAA,CAAA;YACxCtC,wBAA2B,CAAAoC,GAAA,KAAQG,OAAA,CAAAC,GAAA,CAAAC,gBAAA,qBAAAL,GAAA,CAAAM,GAAA,CAAAZ,WAAA,EAAAO,GAAA;UACnC;UACAF,MAAQ,wBAAmBG,wBAAQ;UACnC,IAAA1B,QAAQ,GAAAmB,UAAmB,GAAAI,MAAQ;UAG/BvB,QAAA,SAAiBA,QAAA,CAAAwB,GAAA,EAAAC,GAAA,UAAAD,GAAA,CAAAO,EAAA,CAAAC,MAAA,CAAAnC,SAAA,EAAA0B,MAAA,EAAAE,GAAA,GAAAF,MAAA,wBAAAG,wBAAA;QACrB;MAAG;MAAAO,aAAA;QAEHC,MAAG,EAAAZ,kBAAA;QACLa,MAAA,EAAAb,kBAAA;QAEAc,MAAA,EAAAd,kBAAA,SAAwB;QAI1Be,MAAA,EAAAf,kBAAA;MAGA;MAAAgB,cAAO;QACT,GAAAnB,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { isAbsolute, relative, resolve } from "node:path";
|
|
2
|
+
import { generate } from "./generate";
|
|
3
|
+
function createOnZeroHmrPlugin(hmrInclude = []) {
|
|
4
|
+
const hmrPaths = ["/models/", "/generated/", "/queries/", ...hmrInclude];
|
|
5
|
+
return {
|
|
6
|
+
name: "on-zero:hmr",
|
|
7
|
+
apply: "serve",
|
|
8
|
+
enforce: "post",
|
|
9
|
+
transform(code, id) {
|
|
10
|
+
if (!(!hmrPaths.some((p) => id.includes(p)) || !/\.tsx?$/.test(id)) && code.includes("import.meta.hot.invalidate"))
|
|
11
|
+
return {
|
|
12
|
+
code: code.replace(
|
|
13
|
+
/if\s*\(invalidateMessage\)\s*import\.meta\.hot\.invalidate\(invalidateMessage\);?/g,
|
|
14
|
+
"/* on-zero: HMR invalidate disabled */"
|
|
15
|
+
),
|
|
16
|
+
map: null
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function isWithinDirectory(file, dir) {
|
|
22
|
+
const rel = relative(dir, file);
|
|
23
|
+
return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
|
|
24
|
+
}
|
|
25
|
+
function onZeroPlugin(options = {}) {
|
|
26
|
+
const dir = options.dir ?? "src/data";
|
|
27
|
+
let dataDir, modelsDir, queriesDir;
|
|
28
|
+
const runGenerate = (silent) => generate({
|
|
29
|
+
dir: dataDir,
|
|
30
|
+
after: options.after,
|
|
31
|
+
silent
|
|
32
|
+
});
|
|
33
|
+
return [
|
|
34
|
+
{
|
|
35
|
+
name: "on-zero:serve",
|
|
36
|
+
apply: "serve",
|
|
37
|
+
configResolved(config) {
|
|
38
|
+
dataDir = resolve(config.root, dir), modelsDir = resolve(dataDir, "models"), queriesDir = resolve(dataDir, "queries");
|
|
39
|
+
},
|
|
40
|
+
async buildStart() {
|
|
41
|
+
options.disableGenerate || await runGenerate(!1);
|
|
42
|
+
},
|
|
43
|
+
configureServer(server) {
|
|
44
|
+
if (options.disableGenerate) return;
|
|
45
|
+
const handler = async (file) => {
|
|
46
|
+
/\.tsx?$/.test(file) && (isWithinDirectory(file, modelsDir) || isWithinDirectory(file, queriesDir)) && await runGenerate(!1);
|
|
47
|
+
};
|
|
48
|
+
server.watcher.on("change", handler), server.watcher.on("add", handler), server.watcher.on("unlink", handler);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "on-zero:build",
|
|
53
|
+
apply: "build",
|
|
54
|
+
configResolved(config) {
|
|
55
|
+
dataDir = resolve(config.root, dir);
|
|
56
|
+
},
|
|
57
|
+
async buildStart() {
|
|
58
|
+
options.disableGenerate || await runGenerate(!0);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
createOnZeroHmrPlugin(options.hmrInclude)
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
const onZeroHmrPlugin = (options) => createOnZeroHmrPlugin(options?.include);
|
|
65
|
+
var vite_plugin_default = onZeroPlugin;
|
|
66
|
+
export {
|
|
67
|
+
vite_plugin_default as default,
|
|
68
|
+
onZeroHmrPlugin,
|
|
69
|
+
onZeroPlugin
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=vite-plugin.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/vite-plugin.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,YAAY,UAAU,eAAe;AAE9C,SAAS,gBAAsC;AAa/C,SAAS,sBAAsB,aAAuB,CAAC,GAAW;AAChE,QAAM,WAAW,CAAC,YAAY,eAAe,aAAa,GAAG,UAAU;AAEvE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IAET,UAAU,MAAM,IAAI;AAClB,UAAI,GAAC,SAAS,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,MAC1D,KAAK,SAAS,4BAA4B;AAE/C,eAAO;AAAA,UACL,MAAM,KAAK;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UACA,KAAK;AAAA,QACP;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,MAAc,KAAsB;AAC7D,QAAM,MAAM,SAAS,KAAK,IAAI;AAC9B,SAAO,QAAQ,MAAM,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,WAAW,GAAG;AAC/D;AAEO,SAAS,aAAa,UAA+B,CAAC,GAAa;AACxE,QAAM,MAAM,QAAQ,OAAO;AAE3B,MAAI,SACA,WACA;AAEJ,QAAM,cAAc,CAAC,WACnB,SAAS;AAAA,IACP,KAAK;AAAA,IACL,OAAO,QAAQ;AAAA,IACf;AAAA,EACF,CAAC;AAEH,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MAEP,eAAe,QAAQ;AACrB,kBAAU,QAAQ,OAAO,MAAM,GAAG,GAClC,YAAY,QAAQ,SAAS,QAAQ,GACrC,aAAa,QAAQ,SAAS,SAAS;AAAA,MACzC;AAAA,MAEA,MAAM,aAAa;AACjB,QAAK,QAAQ,mBAAiB,MAAM,YAAY,EAAK;AAAA,MACvD;AAAA,MAEA,gBAAgB,QAAQ;AACtB,YAAI,QAAQ,gBAAiB;AAE7B,cAAM,UAAU,OAAO,SAAiB;AACtC,UAAK,UAAU,KAAK,IAAI,MACpB,kBAAkB,MAAM,SAAS,KAAK,kBAAkB,MAAM,UAAU,MAC1E,MAAM,YAAY,EAAK;AAAA,QAE3B;AAEA,eAAO,QAAQ,GAAG,UAAU,OAAO,GACnC,OAAO,QAAQ,GAAG,OAAO,OAAO,GAChC,OAAO,QAAQ,GAAG,UAAU,OAAO;AAAA,MACrC;AAAA,IACF;AAAA,IAEA;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MAEP,eAAe,QAAQ;AACrB,kBAAU,QAAQ,OAAO,MAAM,GAAG;AAAA,MACpC;AAAA,MAEA,MAAM,aAAa;AACjB,QAAK,QAAQ,mBAAiB,MAAM,YAAY,EAAI;AAAA,MACtD;AAAA,IACF;AAAA,IAEA,sBAAsB,QAAQ,UAAU;AAAA,EAC1C;AACF;AAEO,MAAM,kBAAkB,CAAC,YACvB,sBAAsB,SAAS,OAAO;AAG/C,IAAO,sBAAQ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { isAbsolute, relative, resolve } from "node:path";
|
|
2
|
+
import { generate } from "./generate.mjs";
|
|
3
|
+
function createOnZeroHmrPlugin(hmrInclude = []) {
|
|
4
|
+
const hmrPaths = ["/models/", "/generated/", "/queries/", ...hmrInclude];
|
|
5
|
+
return {
|
|
6
|
+
name: "on-zero:hmr",
|
|
7
|
+
apply: "serve",
|
|
8
|
+
enforce: "post",
|
|
9
|
+
transform(code, id) {
|
|
10
|
+
if (!(!hmrPaths.some(p => id.includes(p)) || !/\.tsx?$/.test(id)) && code.includes("import.meta.hot.invalidate")) return {
|
|
11
|
+
code: code.replace(/if\s*\(invalidateMessage\)\s*import\.meta\.hot\.invalidate\(invalidateMessage\);?/g, "/* on-zero: HMR invalidate disabled */"),
|
|
12
|
+
map: null
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function isWithinDirectory(file, dir) {
|
|
18
|
+
const rel = relative(dir, file);
|
|
19
|
+
return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
|
|
20
|
+
}
|
|
21
|
+
function onZeroPlugin(options = {}) {
|
|
22
|
+
const dir = options.dir ?? "src/data";
|
|
23
|
+
let dataDir, modelsDir, queriesDir;
|
|
24
|
+
const runGenerate = silent => generate({
|
|
25
|
+
dir: dataDir,
|
|
26
|
+
after: options.after,
|
|
27
|
+
silent
|
|
28
|
+
});
|
|
29
|
+
return [{
|
|
30
|
+
name: "on-zero:serve",
|
|
31
|
+
apply: "serve",
|
|
32
|
+
configResolved(config) {
|
|
33
|
+
dataDir = resolve(config.root, dir), modelsDir = resolve(dataDir, "models"), queriesDir = resolve(dataDir, "queries");
|
|
34
|
+
},
|
|
35
|
+
async buildStart() {
|
|
36
|
+
options.disableGenerate || (await runGenerate(!1));
|
|
37
|
+
},
|
|
38
|
+
configureServer(server) {
|
|
39
|
+
if (options.disableGenerate) return;
|
|
40
|
+
const handler = async file => {
|
|
41
|
+
/\.tsx?$/.test(file) && (isWithinDirectory(file, modelsDir) || isWithinDirectory(file, queriesDir)) && (await runGenerate(!1));
|
|
42
|
+
};
|
|
43
|
+
server.watcher.on("change", handler), server.watcher.on("add", handler), server.watcher.on("unlink", handler);
|
|
44
|
+
}
|
|
45
|
+
}, {
|
|
46
|
+
name: "on-zero:build",
|
|
47
|
+
apply: "build",
|
|
48
|
+
configResolved(config) {
|
|
49
|
+
dataDir = resolve(config.root, dir);
|
|
50
|
+
},
|
|
51
|
+
async buildStart() {
|
|
52
|
+
options.disableGenerate || (await runGenerate(!0));
|
|
53
|
+
}
|
|
54
|
+
}, createOnZeroHmrPlugin(options.hmrInclude)];
|
|
55
|
+
}
|
|
56
|
+
const onZeroHmrPlugin = options => createOnZeroHmrPlugin(options?.include);
|
|
57
|
+
var vite_plugin_default = onZeroPlugin;
|
|
58
|
+
export { vite_plugin_default as default, onZeroHmrPlugin, onZeroPlugin };
|
|
59
|
+
//# sourceMappingURL=vite-plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","replace","map","isWithinDirectory","file","dir","rel","startsWith","onZeroPlugin","options","dataDir","modelsDir","queriesDir","runGenerate","silent","after","configResolved","config","root","buildStart","disableGenerate","configureServer","server","handler","watcher","on","onZeroHmrPlugin","include","vite_plugin_default"],"sources":["../../src/vite-plugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,QAAA,EAAUC,OAAA,QAAe;AAE9C,SAASC,QAAA,QAAsC;AAa/C,SAASC,sBAAsBC,UAAA,GAAuB,EAAC,EAAW;EAChE,MAAMC,QAAA,GAAW,CAAC,YAAY,eAAe,aAAa,GAAGD,UAAU;EAEvE,OAAO;IACLE,IAAA,EAAM;IACNC,KAAA,EAAO;IACPC,OAAA,EAAS;IAETC,UAAUC,IAAA,EAAMC,EAAA,EAAI;MAClB,IAAI,GAACN,QAAA,CAASO,IAAA,CAAMC,CAAA,IAAMF,EAAA,CAAGG,QAAA,CAASD,CAAC,CAAC,KAAK,CAAC,UAAUE,IAAA,CAAKJ,EAAE,MAC1DD,IAAA,CAAKI,QAAA,CAAS,4BAA4B,GAE/C,OAAO;QACLJ,IAAA,EAAMA,IAAA,CAAKM,OAAA,CACT,sFACA,wCACF;QACAC,GAAA,EAAK;MACP;IACF;EACF;AACF;AAEA,SAASC,kBAAkBC,IAAA,EAAcC,GAAA,EAAsB;EAC7D,MAAMC,GAAA,GAAMrB,QAAA,CAASoB,GAAA,EAAKD,IAAI;EAC9B,OAAOE,GAAA,KAAQ,MAAM,CAACA,GAAA,CAAIC,UAAA,CAAW,IAAI,KAAK,CAACvB,UAAA,CAAWsB,GAAG;AAC/D;AAEO,SAASE,aAAaC,OAAA,GAA+B,CAAC,GAAa;EACxE,MAAMJ,GAAA,GAAMI,OAAA,CAAQJ,GAAA,IAAO;EAE3B,IAAIK,OAAA,EACAC,SAAA,EACAC,UAAA;EAEJ,MAAMC,WAAA,GAAeC,MAAA,IACnB3B,QAAA,CAAS;IACPkB,GAAA,EAAKK,OAAA;IACLK,KAAA,EAAON,OAAA,CAAQM,KAAA;IACfD;EACF,CAAC;EAEH,OAAO,CACL;IACEvB,IAAA,EAAM;IACNC,KAAA,EAAO;IAEPwB,eAAeC,MAAA,EAAQ;MACrBP,OAAA,GAAUxB,OAAA,CAAQ+B,MAAA,CAAOC,IAAA,EAAMb,GAAG,GAClCM,SAAA,GAAYzB,OAAA,CAAQwB,OAAA,EAAS,QAAQ,GACrCE,UAAA,GAAa1B,OAAA,CAAQwB,OAAA,EAAS,SAAS;IACzC;IAEA,MAAMS,WAAA,EAAa;MACZV,OAAA,CAAQW,eAAA,KAAiB,MAAMP,WAAA,CAAY,EAAK;IACvD;IAEAQ,gBAAgBC,MAAA,EAAQ;MACtB,IAAIb,OAAA,CAAQW,eAAA,EAAiB;MAE7B,MAAMG,OAAA,GAAU,MAAOnB,IAAA,IAAiB;QACjC,UAAUJ,IAAA,CAAKI,IAAI,MACpBD,iBAAA,CAAkBC,IAAA,EAAMO,SAAS,KAAKR,iBAAA,CAAkBC,IAAA,EAAMQ,UAAU,OAC1E,MAAMC,WAAA,CAAY,EAAK;MAE3B;MAEAS,MAAA,CAAOE,OAAA,CAAQC,EAAA,CAAG,UAAUF,OAAO,GACnCD,MAAA,CAAOE,OAAA,CAAQC,EAAA,CAAG,OAAOF,OAAO,GAChCD,MAAA,CAAOE,OAAA,CAAQC,EAAA,CAAG,UAAUF,OAAO;IACrC;EACF,GAEA;IACEhC,IAAA,EAAM;IACNC,KAAA,EAAO;IAEPwB,eAAeC,MAAA,EAAQ;MACrBP,OAAA,GAAUxB,OAAA,CAAQ+B,MAAA,CAAOC,IAAA,EAAMb,GAAG;IACpC;IAEA,MAAMc,WAAA,EAAa;MACZV,OAAA,CAAQW,eAAA,KAAiB,MAAMP,WAAA,CAAY,EAAI;IACtD;EACF,GAEAzB,qBAAA,CAAsBqB,OAAA,CAAQpB,UAAU,EAC1C;AACF;AAEO,MAAMqC,eAAA,GAAmBjB,OAAA,IACvBrB,qBAAA,CAAsBqB,OAAA,EAASkB,OAAO;AAG/C,IAAOC,mBAAA,GAAQpB,YAAA","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { isAbsolute, relative, resolve } from "path";
|
|
2
|
+
import { generate } from "./generate.native.js";
|
|
3
|
+
function createOnZeroHmrPlugin() {
|
|
4
|
+
var hmrInclude = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [],
|
|
5
|
+
hmrPaths = ["/models/", "/generated/", "/queries/", ...hmrInclude];
|
|
6
|
+
return {
|
|
7
|
+
name: "on-zero:hmr",
|
|
8
|
+
apply: "serve",
|
|
9
|
+
enforce: "post",
|
|
10
|
+
transform(code, id) {
|
|
11
|
+
if (!(!hmrPaths.some(function (p) {
|
|
12
|
+
return id.includes(p);
|
|
13
|
+
}) || !/\.tsx?$/.test(id)) && code.includes("import.meta.hot.invalidate")) return {
|
|
14
|
+
code: code.replace(/if\s*\(invalidateMessage\)\s*import\.meta\.hot\.invalidate\(invalidateMessage\);?/g, "/* on-zero: HMR invalidate disabled */"),
|
|
15
|
+
map: null
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function isWithinDirectory(file, dir) {
|
|
21
|
+
var rel = relative(dir, file);
|
|
22
|
+
return rel !== "" && !rel.startsWith("..") && !isAbsolute(rel);
|
|
23
|
+
}
|
|
24
|
+
function onZeroPlugin() {
|
|
25
|
+
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {},
|
|
26
|
+
_options_dir,
|
|
27
|
+
dir = (_options_dir = options.dir) !== null && _options_dir !== void 0 ? _options_dir : "src/data",
|
|
28
|
+
dataDir,
|
|
29
|
+
modelsDir,
|
|
30
|
+
queriesDir,
|
|
31
|
+
runGenerate = function (silent) {
|
|
32
|
+
return generate({
|
|
33
|
+
dir: dataDir,
|
|
34
|
+
after: options.after,
|
|
35
|
+
silent
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
return [{
|
|
39
|
+
name: "on-zero:serve",
|
|
40
|
+
apply: "serve",
|
|
41
|
+
configResolved(config) {
|
|
42
|
+
dataDir = resolve(config.root, dir), modelsDir = resolve(dataDir, "models"), queriesDir = resolve(dataDir, "queries");
|
|
43
|
+
},
|
|
44
|
+
async buildStart() {
|
|
45
|
+
options.disableGenerate || (await runGenerate(!1));
|
|
46
|
+
},
|
|
47
|
+
configureServer(server) {
|
|
48
|
+
if (!options.disableGenerate) {
|
|
49
|
+
var handler = async function (file) {
|
|
50
|
+
/\.tsx?$/.test(file) && (isWithinDirectory(file, modelsDir) || isWithinDirectory(file, queriesDir)) && (await runGenerate(!1));
|
|
51
|
+
};
|
|
52
|
+
server.watcher.on("change", handler), server.watcher.on("add", handler), server.watcher.on("unlink", handler);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
56
|
+
name: "on-zero:build",
|
|
57
|
+
apply: "build",
|
|
58
|
+
configResolved(config) {
|
|
59
|
+
dataDir = resolve(config.root, dir);
|
|
60
|
+
},
|
|
61
|
+
async buildStart() {
|
|
62
|
+
options.disableGenerate || (await runGenerate(!0));
|
|
63
|
+
}
|
|
64
|
+
}, createOnZeroHmrPlugin(options.hmrInclude)];
|
|
65
|
+
}
|
|
66
|
+
var onZeroHmrPlugin = function (options) {
|
|
67
|
+
return createOnZeroHmrPlugin(options?.include);
|
|
68
|
+
},
|
|
69
|
+
vite_plugin_default = onZeroPlugin;
|
|
70
|
+
export { vite_plugin_default as default, onZeroHmrPlugin, onZeroPlugin };
|
|
71
|
+
//# sourceMappingURL=vite-plugin.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isAbsolute","relative","resolve","generate","createOnZeroHmrPlugin","hmrInclude","arguments","length","hmrPaths","name","apply","enforce","transform","code","id","some","p","includes","test","replace","map","isWithinDirectory","file","dir","rel","startsWith","onZeroPlugin","options","_options_dir","dataDir","modelsDir","queriesDir","runGenerate","silent","after","configResolved","config","root","buildStart","disableGenerate","configureServer","server","handler","watcher","on"],"sources":["../../src/vite-plugin.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,QAAA,EAAUC,OAAA,QAAe;AAE9C,SAASC,QAAA,QAAsC;AAa/C,SAASC,sBAAA,EAAsB;EAC7B,IAAAC,UAAM,GAAWC,SAAC,CAAAC,MAAY,QAAAD,SAAe,QAAa,KAAG,IAAAA,SAAU;IAAAE,QAAA,IAEvE,UAAO,EACL,aAAM,EACN,WAAO,EACP,GAAAH,UAAS;EAGP;IAGAI,IAAA,eAAO;IAAAC,KAAA,EACL,OAAM;IAAKC,OAAA,EACT;IAAAC,SACAA,CAAAC,IAAA,EAAAC,EAAA;MAAA,IACF,GAAAN,QAAA,CAAAO,IAAA,WAAAC,CAAA;QAAA,OACKF,EAAA,CAAAG,QAAA,CAAAD,CAAA;MAAA,EACP,eAAAE,IAAA,CAAAJ,EAAA,MAAAD,IAAA,CAAAI,QAAA,gCACF;QACFJ,IAAA,EAAAA,IAAA,CAAAM,OAAA;QACFC,GAAA;MAEA,CAAS;IACP;EACA;AACF;AAEO,SAASC,iBAAaA,CAAAC,IAAA,EAAgCC,GAAa;EACxE,IAAAC,GAAM,GAAAvB,QAAM,CAAAsB,GAAQ,EAAAD,IAAO;EAE3B,OAAIE,GAAA,KACA,OAAAA,GACA,CAAAC,UAAA,WAAAzB,UAAA,CAAAwB,GAAA;AAEJ;AACW,SACFE,aAAA;EAAA,IACLC,OAAO,GAAArB,SAAQ,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;IAAAsB,YAAA;IAAAL,GAAA,IAAAK,YAAA,GAAAD,OAAA,CAAAJ,GAAA,cAAAK,YAAA,cAAAA,YAAA;IAAAC,OAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,WAAA,YAAAA,CAAAC,MAAA;MACf,OAAA9B,QAAA;QACDoB,GAAA,EAAAM,OAAA;QAEHK,KAAO,EAAAP,OAAA,CAAAO,KAAA;QACLD;MAAA,EACE;IAAM;EACC,OAEP,CACE;IAGFxB,IAAA;IAEAC,KAAA,EAAM;IACJyB,cAAaA,CAAAC,MAAA;MACfP,OAAA,GAAA3B,OAAA,CAAAkC,MAAA,CAAAC,IAAA,EAAAd,GAAA,GAAAO,SAAA,GAAA5B,OAAA,CAAA2B,OAAA,aAAAE,UAAA,GAAA7B,OAAA,CAAA2B,OAAA;IAEA;IACE,MAAIS,UAAQA,CAAA;MAEZX,OAAM,CAAAY,eAAiB,WAAiBP,WAAA;IACtC;IAEyBQ,eAE3BA,CAAAC,MAAA;MAEA,KAAAd,OAAO,CAAAY,eAAqB;QAG9B,IAAAG,OAAA,kBAAAA,CAAApB,IAAA;UACF,UAAAJ,IAAA,CAAAI,IAAA,MAAAD,iBAAA,CAAAC,IAAA,EAAAQ,SAAA,KAAAT,iBAAA,CAAAC,IAAA,EAAAS,UAAA,aAAAC,WAAA;QAEA;QACES,MAAM,CAAAE,OAAA,CAAAC,EAAA,WAAAF,OAAA,GAAAD,MAAA,CAAAE,OAAA,CAAAC,EAAA,QAAAF,OAAA,GAAAD,MAAA,CAAAE,OAAA,CAAAC,EAAA,WAAAF,OAAA;MACN;IAEA;EACE,GAAkC;IAGpCjC,IAAA,EAAM,eAAa;IACjBC,KAAK,SAAQ;IACfyB,eAAAC,MAAA;MACFP,OAAA,GAAA3B,OAAA,CAAAkC,MAAA,CAAAC,IAAA,EAAAd,GAAA;IAEA;IACF,MAAAe,WAAA;MACFX,OAAA,CAAAY,eAAA,WAAAP,WAAA;IAEa;EAIN,G","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -61,10 +61,15 @@
|
|
|
61
61
|
"types": "./types/server.d.ts",
|
|
62
62
|
"import": "./dist/esm/server.mjs",
|
|
63
63
|
"require": "./dist/cjs/server.cjs"
|
|
64
|
+
},
|
|
65
|
+
"./vite": {
|
|
66
|
+
"types": "./types/vite-plugin.d.ts",
|
|
67
|
+
"import": "./dist/esm/vite-plugin.mjs",
|
|
68
|
+
"require": "./dist/cjs/vite-plugin.cjs"
|
|
64
69
|
}
|
|
65
70
|
},
|
|
66
71
|
"dependencies": {
|
|
67
|
-
"@take-out/helpers": "0.1.
|
|
72
|
+
"@take-out/helpers": "0.1.23",
|
|
68
73
|
"@sinclair/typebox-codegen": "^0.11.1",
|
|
69
74
|
"chokidar": "^4.0.3",
|
|
70
75
|
"citty": "^0.1.6",
|
package/readme.md
CHANGED
|
@@ -287,10 +287,49 @@ export const channelMessages = (props: { channelId: string }) => {
|
|
|
287
287
|
|
|
288
288
|
## generation
|
|
289
289
|
|
|
290
|
-
|
|
291
|
-
queries, and types.
|
|
290
|
+
on-zero auto-generates glue files that wire up your models, queries, and types.
|
|
292
291
|
|
|
293
|
-
###
|
|
292
|
+
### vite plugin (recommended)
|
|
293
|
+
|
|
294
|
+
the vite plugin handles generation and HMR automatically:
|
|
295
|
+
|
|
296
|
+
```ts
|
|
297
|
+
// vite.config.ts
|
|
298
|
+
import { onZeroPlugin } from 'on-zero/vite'
|
|
299
|
+
|
|
300
|
+
export default {
|
|
301
|
+
plugins: [
|
|
302
|
+
onZeroPlugin(),
|
|
303
|
+
// ... other plugins
|
|
304
|
+
]
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**features:**
|
|
309
|
+
|
|
310
|
+
- generates on dev server start
|
|
311
|
+
- watches for model changes and regenerates
|
|
312
|
+
- enables HMR for mutations (no page reload when editing models)
|
|
313
|
+
- generates before production builds
|
|
314
|
+
|
|
315
|
+
**options:**
|
|
316
|
+
|
|
317
|
+
```ts
|
|
318
|
+
onZeroPlugin({
|
|
319
|
+
// path to data directory (default: 'src/data')
|
|
320
|
+
dataDir: 'src/data',
|
|
321
|
+
|
|
322
|
+
// additional paths to apply HMR fix to
|
|
323
|
+
hmrInclude: ['/src/zero/'],
|
|
324
|
+
|
|
325
|
+
// disable generation (HMR only)
|
|
326
|
+
disableGenerate: false,
|
|
327
|
+
})
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### cli (alternative)
|
|
331
|
+
|
|
332
|
+
if you prefer CLI over the vite plugin:
|
|
294
333
|
|
|
295
334
|
**`on-zero generate [dir]`**
|
|
296
335
|
|
|
@@ -325,35 +364,6 @@ bun on-zero generate ./app/data
|
|
|
325
364
|
bun on-zero generate --after "bun lint:fix"
|
|
326
365
|
```
|
|
327
366
|
|
|
328
|
-
**`on-zero generate-queries <dir>`**
|
|
329
|
-
|
|
330
|
-
generates query validators from TypeScript query functions. this is included in
|
|
331
|
-
`generate` but can be run standalone.
|
|
332
|
-
|
|
333
|
-
- parses exported arrow functions from `.ts` files in the queries directory
|
|
334
|
-
- extracts parameter types using TypeScript compiler API
|
|
335
|
-
- generates valibot schemas using typebox-codegen
|
|
336
|
-
|
|
337
|
-
**example:**
|
|
338
|
-
|
|
339
|
-
```bash
|
|
340
|
-
bun on-zero generate-queries src/data/queries
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
### what gets generated
|
|
344
|
-
|
|
345
|
-
**models.ts:**
|
|
346
|
-
|
|
347
|
-
```ts
|
|
348
|
-
import * as channel from '~/data/models/channel'
|
|
349
|
-
import * as message from '~/data/models/message'
|
|
350
|
-
|
|
351
|
-
export const models = {
|
|
352
|
-
channel,
|
|
353
|
-
message,
|
|
354
|
-
}
|
|
355
|
-
```
|
|
356
|
-
|
|
357
367
|
**types.ts:**
|
|
358
368
|
|
|
359
369
|
```ts
|