on-zero 0.4.3 → 0.4.4
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 +46 -41
- package/dist/cjs/cli.native.js +48 -43
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/constants.cjs +14 -12
- package/dist/cjs/constants.native.js +14 -12
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/createPermissions.cjs +66 -34
- package/dist/cjs/createPermissions.native.js +143 -87
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.cjs +15 -13
- package/dist/cjs/createSchemaFromDrizzle.native.js +15 -13
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +48 -35
- package/dist/cjs/createUseQuery.native.js +52 -38
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +177 -135
- package/dist/cjs/createZeroClient.native.js +246 -195
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +175 -129
- package/dist/cjs/createZeroServer.native.js +170 -138
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/generate-helpers.cjs +122 -88
- package/dist/cjs/generate-helpers.native.js +209 -174
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-lite.cjs +90 -58
- package/dist/cjs/generate-lite.native.js +200 -140
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +229 -192
- package/dist/cjs/generate-lite.test.native.js +229 -194
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +455 -291
- package/dist/cjs/generate.native.js +747 -565
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +170 -106
- package/dist/cjs/generate.test.native.js +171 -107
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.cjs +29 -18
- package/dist/cjs/helpers/batchQuery.native.js +36 -21
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/clearZeroClientData.cjs +30 -21
- package/dist/cjs/helpers/clearZeroClientData.native.js +42 -33
- package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +80 -42
- package/dist/cjs/helpers/createMutators.native.js +139 -87
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +19 -13
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +22 -20
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.cjs +16 -13
- package/dist/cjs/helpers/ensureLoggedIn.native.js +21 -18
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.cjs +25 -15
- package/dist/cjs/helpers/getAuth.native.js +25 -15
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.cjs +21 -14
- package/dist/cjs/helpers/mutatorContext.native.js +21 -15
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +126 -81
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +135 -92
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.cjs +12 -10
- package/dist/cjs/helpers/queryContext.native.js +16 -13
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/showZeroClientError.cjs +24 -19
- package/dist/cjs/helpers/showZeroClientError.native.js +38 -34
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.cjs +82 -49
- package/dist/cjs/helpers/useZeroDebug.native.js +83 -55
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/index.cjs +17 -15
- package/dist/cjs/index.native.js +17 -15
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/modelRegistry.cjs +12 -10
- package/dist/cjs/modelRegistry.native.js +12 -10
- package/dist/cjs/modelRegistry.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +66 -42
- package/dist/cjs/mutations.native.js +68 -46
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/queryRegistry.cjs +13 -10
- package/dist/cjs/queryRegistry.native.js +14 -11
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/resolveQuery.cjs +22 -18
- package/dist/cjs/resolveQuery.native.js +32 -28
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/run.cjs +35 -28
- package/dist/cjs/run.native.js +35 -29
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/server.cjs +7 -5
- package/dist/cjs/serverWhere.cjs +13 -11
- package/dist/cjs/serverWhere.native.js +13 -11
- package/dist/cjs/serverWhere.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.cjs +83 -55
- package/dist/cjs/serverWhere.test.native.js +72 -50
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.cjs +49 -44
- package/dist/cjs/state.native.js +56 -53
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +7 -5
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/usePermission.test.cjs +58 -45
- package/dist/cjs/usePermission.test.native.js +59 -48
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +41 -21
- package/dist/cjs/vite-plugin.native.js +61 -47
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.cjs +39 -24
- package/dist/cjs/where.native.js +44 -29
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/cjs/zeroRunner.cjs +18 -12
- package/dist/cjs/zeroRunner.native.js +22 -16
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/cjs/zql.cjs +14 -11
- package/dist/cjs/zql.native.js +19 -17
- package/dist/cjs/zql.native.js.map +1 -1
- package/dist/esm/cli.mjs +43 -38
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +44 -39
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/constants.mjs +2 -2
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +2 -2
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/createPermissions.mjs +48 -18
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +125 -71
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +32 -21
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +36 -24
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +148 -108
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +217 -168
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +148 -104
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +143 -113
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +110 -78
- package/dist/esm/generate-helpers.mjs.map +1 -1
- package/dist/esm/generate-helpers.native.js +197 -164
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-lite.mjs +78 -48
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +188 -130
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +227 -190
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +227 -192
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +427 -265
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +718 -538
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +165 -101
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +165 -101
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/batchQuery.mjs +17 -8
- package/dist/esm/helpers/batchQuery.mjs.map +1 -1
- package/dist/esm/helpers/batchQuery.native.js +24 -11
- package/dist/esm/helpers/batchQuery.native.js.map +1 -1
- package/dist/esm/helpers/clearZeroClientData.mjs +18 -11
- package/dist/esm/helpers/clearZeroClientData.mjs.map +1 -1
- package/dist/esm/helpers/clearZeroClientData.native.js +30 -23
- package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +53 -17
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +112 -62
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.mjs +7 -3
- package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.native.js +9 -9
- package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs +2 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +2 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/esm/helpers/getAuth.mjs +10 -2
- package/dist/esm/helpers/getAuth.mjs.map +1 -1
- package/dist/esm/helpers/getAuth.native.js +10 -2
- package/dist/esm/helpers/getAuth.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.mjs +9 -4
- package/dist/esm/helpers/mutatorContext.mjs.map +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +8 -4
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs +114 -71
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +121 -80
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.native.js +2 -1
- package/dist/esm/helpers/queryContext.native.js.map +1 -1
- package/dist/esm/helpers/showZeroClientError.mjs +12 -9
- package/dist/esm/helpers/showZeroClientError.mjs.map +1 -1
- package/dist/esm/helpers/showZeroClientError.native.js +25 -23
- package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/esm/helpers/useZeroDebug.mjs +67 -36
- package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +68 -42
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/mutations.mjs +51 -29
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +53 -33
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/queryRegistry.mjs +1 -0
- package/dist/esm/queryRegistry.mjs.map +1 -1
- package/dist/esm/queryRegistry.native.js +2 -1
- package/dist/esm/queryRegistry.native.js.map +1 -1
- package/dist/esm/resolveQuery.mjs +10 -8
- package/dist/esm/resolveQuery.mjs.map +1 -1
- package/dist/esm/resolveQuery.native.js +20 -18
- package/dist/esm/resolveQuery.native.js.map +1 -1
- package/dist/esm/run.mjs +21 -16
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/run.native.js +20 -16
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/serverWhere.mjs +1 -1
- package/dist/esm/serverWhere.mjs.map +1 -1
- package/dist/esm/serverWhere.native.js +1 -1
- package/dist/esm/serverWhere.native.js.map +1 -1
- package/dist/esm/serverWhere.test.mjs +79 -51
- package/dist/esm/serverWhere.test.mjs.map +1 -1
- package/dist/esm/serverWhere.test.native.js +68 -46
- package/dist/esm/serverWhere.test.native.js.map +1 -1
- package/dist/esm/state.mjs +35 -32
- package/dist/esm/state.mjs.map +1 -1
- package/dist/esm/state.native.js +41 -40
- package/dist/esm/state.native.js.map +1 -1
- package/dist/esm/usePermission.test.mjs +53 -40
- package/dist/esm/usePermission.test.mjs.map +1 -1
- package/dist/esm/usePermission.test.native.js +54 -43
- package/dist/esm/usePermission.test.native.js.map +1 -1
- package/dist/esm/vite-plugin.mjs +27 -9
- package/dist/esm/vite-plugin.mjs.map +1 -1
- package/dist/esm/vite-plugin.native.js +47 -35
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/dist/esm/where.mjs +24 -11
- package/dist/esm/where.mjs.map +1 -1
- package/dist/esm/where.native.js +29 -16
- package/dist/esm/where.native.js.map +1 -1
- package/dist/esm/zeroRunner.mjs +6 -2
- package/dist/esm/zeroRunner.mjs.map +1 -1
- package/dist/esm/zeroRunner.native.js +8 -4
- package/dist/esm/zeroRunner.native.js.map +1 -1
- package/dist/esm/zql.mjs +2 -1
- package/dist/esm/zql.mjs.map +1 -1
- package/dist/esm/zql.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,33 +4,35 @@ var __create = Object.create;
|
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
8
|
-
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __export = (target, all) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
18
|
get: () => from[key],
|
|
18
19
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
22
24
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
}), mod);
|
|
34
36
|
var generate_exports = {};
|
|
35
37
|
__export(generate_exports, {
|
|
36
38
|
generate: () => generate,
|
|
@@ -38,23 +40,27 @@ __export(generate_exports, {
|
|
|
38
40
|
watch: () => watch
|
|
39
41
|
});
|
|
40
42
|
module.exports = __toCommonJS(generate_exports);
|
|
41
|
-
var import_crypto = require("crypto")
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
var import_crypto = require("crypto");
|
|
44
|
+
var import_fs = require("fs");
|
|
45
|
+
var import_path = require("path");
|
|
46
|
+
var import_generate_helpers = require("./generate-helpers.native.js");
|
|
47
|
+
var hash = function (s) {
|
|
48
|
+
return (0, import_crypto.createHash)("sha256").update(s).digest("hex");
|
|
49
|
+
};
|
|
50
|
+
var generateCache = {};
|
|
51
|
+
var generateCachePath = "";
|
|
50
52
|
function getCacheDir() {
|
|
51
|
-
|
|
53
|
+
var dir = process.cwd();
|
|
54
|
+
while (dir !== "/") {
|
|
52
55
|
var nm = (0, import_path.resolve)(dir, "node_modules");
|
|
53
56
|
if ((0, import_fs.existsSync)(nm)) {
|
|
54
57
|
var cacheDir = (0, import_path.resolve)(nm, ".on-zero");
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
if (!(0, import_fs.existsSync)(cacheDir)) {
|
|
59
|
+
(0, import_fs.mkdirSync)(cacheDir, {
|
|
60
|
+
recursive: true
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return cacheDir;
|
|
58
64
|
}
|
|
59
65
|
dir = (0, import_path.resolve)(dir, "..");
|
|
60
66
|
}
|
|
@@ -62,34 +68,39 @@ function getCacheDir() {
|
|
|
62
68
|
}
|
|
63
69
|
function loadCache() {
|
|
64
70
|
var cacheDir = getCacheDir();
|
|
65
|
-
if (cacheDir)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
71
|
+
if (!cacheDir) return;
|
|
72
|
+
generateCachePath = (0, import_path.resolve)(cacheDir, "generate-cache.json");
|
|
73
|
+
try {
|
|
74
|
+
generateCache = JSON.parse((0, import_fs.readFileSync)(generateCachePath, "utf-8"));
|
|
75
|
+
} catch (e) {
|
|
76
|
+
generateCache = {};
|
|
72
77
|
}
|
|
73
78
|
}
|
|
74
79
|
function saveCache() {
|
|
75
|
-
|
|
76
|
-
|
|
80
|
+
if (generateCachePath) {
|
|
81
|
+
(0, import_fs.writeFileSync)(generateCachePath, JSON.stringify(generateCache) + "\n", "utf-8");
|
|
82
|
+
}
|
|
77
83
|
}
|
|
78
84
|
function writeFileIfChanged(filePath, content) {
|
|
79
|
-
var contentHash = hash(content)
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
var contentHash = hash(content);
|
|
86
|
+
var cachedHash = generateCache[filePath];
|
|
87
|
+
if (cachedHash === contentHash && (0, import_fs.existsSync)(filePath)) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
(0, import_fs.writeFileSync)(filePath, content, "utf-8");
|
|
91
|
+
generateCache[filePath] = contentHash;
|
|
92
|
+
return true;
|
|
82
93
|
}
|
|
83
94
|
function createTypeResolver(ts, files, dir) {
|
|
84
|
-
var configPath = ts.findConfigFile(dir, ts.sys.fileExists, "tsconfig.json")
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
95
|
+
var configPath = ts.findConfigFile(dir, ts.sys.fileExists, "tsconfig.json");
|
|
96
|
+
var compilerOptions = {
|
|
97
|
+
target: ts.ScriptTarget.Latest,
|
|
98
|
+
module: ts.ModuleKind.ESNext,
|
|
99
|
+
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
100
|
+
strict: false,
|
|
101
|
+
skipLibCheck: true,
|
|
102
|
+
noEmit: true
|
|
103
|
+
};
|
|
93
104
|
if (configPath) {
|
|
94
105
|
var configFile = ts.readConfigFile(configPath, ts.sys.readFile);
|
|
95
106
|
if (configFile.config) {
|
|
@@ -100,39 +111,49 @@ function createTypeResolver(ts, files, dir) {
|
|
|
100
111
|
};
|
|
101
112
|
}
|
|
102
113
|
}
|
|
103
|
-
var fileMap = /* @__PURE__ */new Map()
|
|
104
|
-
|
|
105
|
-
_didIteratorError =
|
|
114
|
+
var fileMap = /* @__PURE__ */new Map();
|
|
115
|
+
var _iteratorNormalCompletion = true,
|
|
116
|
+
_didIteratorError = false,
|
|
106
117
|
_iteratorError = void 0;
|
|
107
118
|
try {
|
|
108
|
-
for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
119
|
+
for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
109
120
|
var f = _step.value;
|
|
110
121
|
fileMap.set(f.path, f.content);
|
|
111
122
|
}
|
|
112
123
|
} catch (err) {
|
|
113
|
-
_didIteratorError =
|
|
124
|
+
_didIteratorError = true;
|
|
125
|
+
_iteratorError = err;
|
|
114
126
|
} finally {
|
|
115
127
|
try {
|
|
116
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
128
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
129
|
+
_iterator.return();
|
|
130
|
+
}
|
|
117
131
|
} finally {
|
|
118
|
-
if (_didIteratorError)
|
|
132
|
+
if (_didIteratorError) {
|
|
133
|
+
throw _iteratorError;
|
|
134
|
+
}
|
|
119
135
|
}
|
|
120
136
|
}
|
|
121
|
-
var host = ts.createCompilerHost(compilerOptions)
|
|
122
|
-
|
|
137
|
+
var host = ts.createCompilerHost(compilerOptions);
|
|
138
|
+
var originalGetSourceFile = host.getSourceFile.bind(host);
|
|
123
139
|
host.getSourceFile = function (fileName, languageVersion, onError) {
|
|
124
140
|
var content = fileMap.get(fileName);
|
|
125
|
-
|
|
126
|
-
|
|
141
|
+
if (content !== void 0) {
|
|
142
|
+
return ts.createSourceFile(fileName, content, languageVersion, true);
|
|
143
|
+
}
|
|
144
|
+
return originalGetSourceFile(fileName, languageVersion, onError);
|
|
145
|
+
};
|
|
146
|
+
host.fileExists = function (fileName) {
|
|
127
147
|
return fileMap.has(fileName) || ts.sys.fileExists(fileName);
|
|
128
|
-
}
|
|
148
|
+
};
|
|
149
|
+
host.readFile = function (fileName) {
|
|
129
150
|
var _fileMap_get;
|
|
130
151
|
return (_fileMap_get = fileMap.get(fileName)) !== null && _fileMap_get !== void 0 ? _fileMap_get : ts.sys.readFile(fileName);
|
|
131
152
|
};
|
|
132
153
|
var program = ts.createProgram(files.map(function (f2) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
154
|
+
return f2.path;
|
|
155
|
+
}), compilerOptions, host);
|
|
156
|
+
var checker = program.getTypeChecker();
|
|
136
157
|
return {
|
|
137
158
|
program,
|
|
138
159
|
checker,
|
|
@@ -140,7 +161,7 @@ function createTypeResolver(ts, files, dir) {
|
|
|
140
161
|
resolveType(node) {
|
|
141
162
|
try {
|
|
142
163
|
return checker.getTypeFromTypeNode(node);
|
|
143
|
-
} catch {
|
|
164
|
+
} catch (e) {
|
|
144
165
|
return null;
|
|
145
166
|
}
|
|
146
167
|
},
|
|
@@ -152,155 +173,193 @@ function createTypeResolver(ts, files, dir) {
|
|
|
152
173
|
}
|
|
153
174
|
function resolveParamType(ts, resolver, sourceFile, exportName, paramIndex) {
|
|
154
175
|
var result = null;
|
|
155
|
-
|
|
176
|
+
ts.forEachChild(sourceFile, function (node) {
|
|
156
177
|
var _node_modifiers;
|
|
157
|
-
if (
|
|
178
|
+
if (result) return;
|
|
179
|
+
if (!ts.isVariableStatement(node)) return;
|
|
180
|
+
if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function (m) {
|
|
158
181
|
return m.kind === ts.SyntaxKind.ExportKeyword;
|
|
159
|
-
}))
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
182
|
+
}))) return;
|
|
183
|
+
var decl = node.declarationList.declarations[0];
|
|
184
|
+
if (!decl || !ts.isVariableDeclaration(decl)) return;
|
|
185
|
+
if (decl.name.getText(sourceFile) !== exportName) return;
|
|
186
|
+
if (decl.initializer && ts.isArrowFunction(decl.initializer)) {
|
|
187
|
+
var param = decl.initializer.parameters[paramIndex];
|
|
188
|
+
if (param === null || param === void 0 ? void 0 : param.type) {
|
|
189
|
+
result = resolver.resolveType(param.type);
|
|
164
190
|
}
|
|
165
191
|
}
|
|
166
|
-
})
|
|
192
|
+
});
|
|
193
|
+
return result;
|
|
167
194
|
}
|
|
168
195
|
function resolveMutationParamTypes(ts, resolver, sourceFile) {
|
|
169
196
|
var resolved = /* @__PURE__ */new Map();
|
|
170
|
-
|
|
197
|
+
ts.forEachChild(sourceFile, function (node) {
|
|
171
198
|
var _node_modifiers;
|
|
172
|
-
if (ts.isVariableStatement(node)
|
|
199
|
+
if (!ts.isVariableStatement(node)) return;
|
|
200
|
+
if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function (m) {
|
|
173
201
|
return m.kind === ts.SyntaxKind.ExportKeyword;
|
|
174
|
-
}))
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
} catch (err) {
|
|
208
|
-
_didIteratorError = !0, _iteratorError = err;
|
|
209
|
-
} finally {
|
|
210
|
-
try {
|
|
211
|
-
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
212
|
-
} finally {
|
|
213
|
-
if (_didIteratorError) throw _iteratorError;
|
|
214
|
-
}
|
|
202
|
+
}))) return;
|
|
203
|
+
var decl = node.declarationList.declarations[0];
|
|
204
|
+
if (!decl || !ts.isVariableDeclaration(decl)) return;
|
|
205
|
+
if (decl.name.getText(sourceFile) !== "mutate") return;
|
|
206
|
+
if (!decl.initializer || !ts.isCallExpression(decl.initializer)) return;
|
|
207
|
+
var args = decl.initializer.arguments;
|
|
208
|
+
var handlersArg = null;
|
|
209
|
+
for (var i = args.length - 1; i >= 0; i--) {
|
|
210
|
+
if (ts.isObjectLiteralExpression(args[i])) {
|
|
211
|
+
handlersArg = args[i];
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (!handlersArg) return;
|
|
216
|
+
var _iteratorNormalCompletion = true,
|
|
217
|
+
_didIteratorError = false,
|
|
218
|
+
_iteratorError = void 0;
|
|
219
|
+
try {
|
|
220
|
+
for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
221
|
+
var prop = _step.value;
|
|
222
|
+
var _prop_name;
|
|
223
|
+
if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;
|
|
224
|
+
var name = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
|
|
225
|
+
if (!name) continue;
|
|
226
|
+
var params = null;
|
|
227
|
+
if (ts.isPropertyAssignment(prop)) {
|
|
228
|
+
var init = prop.initializer;
|
|
229
|
+
if (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) {
|
|
230
|
+
params = init.parameters;
|
|
215
231
|
}
|
|
232
|
+
} else if (ts.isMethodDeclaration(prop)) {
|
|
233
|
+
params = prop.parameters;
|
|
234
|
+
}
|
|
235
|
+
if (!params || params.length < 2) continue;
|
|
236
|
+
var typeNode = params[1].type;
|
|
237
|
+
if (!typeNode) continue;
|
|
238
|
+
var expanded = resolver.resolveType(typeNode);
|
|
239
|
+
if (expanded) {
|
|
240
|
+
resolved.set(name, expanded);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
} catch (err) {
|
|
244
|
+
_didIteratorError = true;
|
|
245
|
+
_iteratorError = err;
|
|
246
|
+
} finally {
|
|
247
|
+
try {
|
|
248
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
249
|
+
_iterator.return();
|
|
250
|
+
}
|
|
251
|
+
} finally {
|
|
252
|
+
if (_didIteratorError) {
|
|
253
|
+
throw _iteratorError;
|
|
216
254
|
}
|
|
217
255
|
}
|
|
218
256
|
}
|
|
219
|
-
})
|
|
257
|
+
});
|
|
258
|
+
return resolved;
|
|
220
259
|
}
|
|
221
260
|
function extractMutationsFromModel(ts, sourceFile, content, fileName, silent, typeToValibot, resolvedTypes, resolvedTypeToValibot) {
|
|
222
261
|
var mutateNode = null;
|
|
223
|
-
|
|
262
|
+
ts.forEachChild(sourceFile, function (node) {
|
|
224
263
|
var _node_modifiers;
|
|
225
|
-
if (ts.isVariableStatement(node)
|
|
264
|
+
if (!ts.isVariableStatement(node)) return;
|
|
265
|
+
if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function (m) {
|
|
226
266
|
return m.kind === ts.SyntaxKind.ExportKeyword;
|
|
227
|
-
}))
|
|
228
|
-
|
|
229
|
-
|
|
267
|
+
}))) return;
|
|
268
|
+
var decl = node.declarationList.declarations[0];
|
|
269
|
+
if (!decl || !ts.isVariableDeclaration(decl)) return;
|
|
270
|
+
if (decl.name.getText(sourceFile) !== "mutate") return;
|
|
271
|
+
if (decl.initializer && ts.isCallExpression(decl.initializer)) {
|
|
272
|
+
mutateNode = decl.initializer;
|
|
230
273
|
}
|
|
231
|
-
})
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
var
|
|
244
|
-
|
|
245
|
-
|
|
274
|
+
});
|
|
275
|
+
if (!mutateNode) {
|
|
276
|
+
return {
|
|
277
|
+
modelName: (0, import_path.basename)(fileName, ".ts"),
|
|
278
|
+
hasCRUD: false,
|
|
279
|
+
columns: {},
|
|
280
|
+
primaryKeys: [],
|
|
281
|
+
custom: []
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
var call = mutateNode;
|
|
285
|
+
var args = call.arguments;
|
|
286
|
+
var hasCRUD = args.length >= 2;
|
|
287
|
+
var handlersArg = null;
|
|
288
|
+
if (args.length === 1 && ts.isObjectLiteralExpression(args[0])) {
|
|
289
|
+
handlersArg = args[0];
|
|
290
|
+
} else if (args.length === 3 && ts.isObjectLiteralExpression(args[2])) {
|
|
291
|
+
handlersArg = args[2];
|
|
292
|
+
}
|
|
293
|
+
var columns = {};
|
|
294
|
+
var primaryKeys = [];
|
|
295
|
+
if (hasCRUD) {
|
|
296
|
+
extractSchemaColumns(ts, sourceFile, columns, primaryKeys);
|
|
297
|
+
}
|
|
246
298
|
var custom = [];
|
|
247
299
|
if (handlersArg) {
|
|
248
|
-
var _iteratorNormalCompletion =
|
|
249
|
-
_didIteratorError =
|
|
300
|
+
var _iteratorNormalCompletion = true,
|
|
301
|
+
_didIteratorError = false,
|
|
250
302
|
_iteratorError = void 0;
|
|
251
303
|
try {
|
|
252
|
-
for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
253
|
-
var prop = _step.value
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
valibotCode: valibotCode || ""
|
|
292
|
-
});
|
|
293
|
-
}
|
|
304
|
+
for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
305
|
+
var prop = _step.value;
|
|
306
|
+
var _prop_name, _secondParam_type;
|
|
307
|
+
if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;
|
|
308
|
+
var name = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
|
|
309
|
+
if (!name) continue;
|
|
310
|
+
var params = null;
|
|
311
|
+
if (ts.isPropertyAssignment(prop)) {
|
|
312
|
+
var init = prop.initializer;
|
|
313
|
+
if (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) {
|
|
314
|
+
params = init.parameters;
|
|
315
|
+
}
|
|
316
|
+
} else if (ts.isMethodDeclaration(prop)) {
|
|
317
|
+
params = prop.parameters;
|
|
318
|
+
}
|
|
319
|
+
if (!params) continue;
|
|
320
|
+
if (params.length < 2) {
|
|
321
|
+
custom.push({
|
|
322
|
+
name,
|
|
323
|
+
paramType: "void",
|
|
324
|
+
valibotCode: ""
|
|
325
|
+
});
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
var secondParam = params[1];
|
|
329
|
+
var paramType = ((_secondParam_type = secondParam.type) === null || _secondParam_type === void 0 ? void 0 : _secondParam_type.getText(sourceFile)) || "unknown";
|
|
330
|
+
if (paramType === "unknown") {
|
|
331
|
+
custom.push({
|
|
332
|
+
name,
|
|
333
|
+
paramType: "unknown",
|
|
334
|
+
valibotCode: ""
|
|
335
|
+
});
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
var valibotCode = typeToValibot(paramType);
|
|
339
|
+
if (!valibotCode && resolvedTypes && resolvedTypeToValibot) {
|
|
340
|
+
var resolvedType = resolvedTypes.get(name);
|
|
341
|
+
if (resolvedType) {
|
|
342
|
+
valibotCode = resolvedTypeToValibot(resolvedType);
|
|
294
343
|
}
|
|
295
344
|
}
|
|
345
|
+
custom.push({
|
|
346
|
+
name,
|
|
347
|
+
paramType,
|
|
348
|
+
valibotCode: valibotCode || ""
|
|
349
|
+
});
|
|
296
350
|
}
|
|
297
351
|
} catch (err) {
|
|
298
|
-
_didIteratorError =
|
|
352
|
+
_didIteratorError = true;
|
|
353
|
+
_iteratorError = err;
|
|
299
354
|
} finally {
|
|
300
355
|
try {
|
|
301
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
356
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
357
|
+
_iterator.return();
|
|
358
|
+
}
|
|
302
359
|
} finally {
|
|
303
|
-
if (_didIteratorError)
|
|
360
|
+
if (_didIteratorError) {
|
|
361
|
+
throw _iteratorError;
|
|
362
|
+
}
|
|
304
363
|
}
|
|
305
364
|
}
|
|
306
365
|
}
|
|
@@ -317,50 +376,60 @@ function extractSchemaColumns(ts, sourceFile, columns, primaryKeys) {
|
|
|
317
376
|
if (ts.isCallExpression(node)) {
|
|
318
377
|
var text = node.expression.getText(sourceFile);
|
|
319
378
|
if (text.endsWith(".primaryKey")) {
|
|
320
|
-
var _iteratorNormalCompletion =
|
|
321
|
-
_didIteratorError =
|
|
379
|
+
var _iteratorNormalCompletion = true,
|
|
380
|
+
_didIteratorError = false,
|
|
322
381
|
_iteratorError = void 0;
|
|
323
382
|
try {
|
|
324
|
-
for (var _iterator = node.arguments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
383
|
+
for (var _iterator = node.arguments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
325
384
|
var arg = _step.value;
|
|
326
|
-
ts.isStringLiteral(arg)
|
|
385
|
+
if (ts.isStringLiteral(arg)) {
|
|
386
|
+
primaryKeys.push(arg.text);
|
|
387
|
+
}
|
|
327
388
|
}
|
|
328
389
|
} catch (err) {
|
|
329
|
-
_didIteratorError =
|
|
390
|
+
_didIteratorError = true;
|
|
391
|
+
_iteratorError = err;
|
|
330
392
|
} finally {
|
|
331
393
|
try {
|
|
332
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
394
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
395
|
+
_iterator.return();
|
|
396
|
+
}
|
|
333
397
|
} finally {
|
|
334
|
-
if (_didIteratorError)
|
|
398
|
+
if (_didIteratorError) {
|
|
399
|
+
throw _iteratorError;
|
|
400
|
+
}
|
|
335
401
|
}
|
|
336
402
|
}
|
|
337
403
|
}
|
|
338
404
|
if (text.endsWith(".columns") && node.arguments.length === 1) {
|
|
339
405
|
var obj = node.arguments[0];
|
|
340
406
|
if (ts.isObjectLiteralExpression(obj)) {
|
|
341
|
-
var _iteratorNormalCompletion1 =
|
|
342
|
-
_didIteratorError1 =
|
|
407
|
+
var _iteratorNormalCompletion1 = true,
|
|
408
|
+
_didIteratorError1 = false,
|
|
343
409
|
_iteratorError1 = void 0;
|
|
344
410
|
try {
|
|
345
|
-
for (var _iterator1 = obj.properties[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 =
|
|
346
|
-
var prop = _step1.value
|
|
347
|
-
|
|
348
|
-
if (ts.isPropertyAssignment(prop))
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
}
|
|
355
|
-
}
|
|
411
|
+
for (var _iterator1 = obj.properties[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
412
|
+
var prop = _step1.value;
|
|
413
|
+
var _prop_name;
|
|
414
|
+
if (!ts.isPropertyAssignment(prop)) continue;
|
|
415
|
+
var colName = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);
|
|
416
|
+
if (!colName) continue;
|
|
417
|
+
var initText = prop.initializer.getText(sourceFile);
|
|
418
|
+
var colType = (0, import_generate_helpers.parseColumnType)(initText);
|
|
419
|
+
columns[colName] = colType;
|
|
356
420
|
}
|
|
357
421
|
} catch (err) {
|
|
358
|
-
_didIteratorError1 =
|
|
422
|
+
_didIteratorError1 = true;
|
|
423
|
+
_iteratorError1 = err;
|
|
359
424
|
} finally {
|
|
360
425
|
try {
|
|
361
|
-
!_iteratorNormalCompletion1 && _iterator1.return != null
|
|
426
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
427
|
+
_iterator1.return();
|
|
428
|
+
}
|
|
362
429
|
} finally {
|
|
363
|
-
if (_didIteratorError1)
|
|
430
|
+
if (_didIteratorError1) {
|
|
431
|
+
throw _iteratorError1;
|
|
432
|
+
}
|
|
364
433
|
}
|
|
365
434
|
}
|
|
366
435
|
}
|
|
@@ -371,7 +440,7 @@ function extractSchemaColumns(ts, sourceFile, columns, primaryKeys) {
|
|
|
371
440
|
visit(sourceFile);
|
|
372
441
|
}
|
|
373
442
|
function tsTypeToValibot(ts, checker, type, seen) {
|
|
374
|
-
|
|
443
|
+
if (!seen) seen = /* @__PURE__ */new Set();
|
|
375
444
|
var flags = type.getFlags();
|
|
376
445
|
if (flags & (ts.TypeFlags.Object | ts.TypeFlags.Intersection)) {
|
|
377
446
|
if (seen.has(type)) return "v.unknown()";
|
|
@@ -387,363 +456,437 @@ function tsTypeToValibot(ts, checker, type, seen) {
|
|
|
387
456
|
if (flags & ts.TypeFlags.Null) return "v.null_()";
|
|
388
457
|
if (flags & ts.TypeFlags.Any || flags & ts.TypeFlags.Unknown) return "v.unknown()";
|
|
389
458
|
if (flags & ts.TypeFlags.Never) return "v.never()";
|
|
390
|
-
if (flags & ts.TypeFlags.StringLiteral)
|
|
391
|
-
|
|
459
|
+
if (flags & ts.TypeFlags.StringLiteral) {
|
|
460
|
+
return `v.literal(${JSON.stringify(type.value)})`;
|
|
461
|
+
}
|
|
462
|
+
if (flags & ts.TypeFlags.NumberLiteral) {
|
|
463
|
+
return `v.literal(${type.value})`;
|
|
464
|
+
}
|
|
392
465
|
if (flags & ts.TypeFlags.BooleanLiteral) {
|
|
393
466
|
var name = type.intrinsicName;
|
|
394
467
|
return `v.literal(${name === "true"})`;
|
|
395
468
|
}
|
|
396
469
|
if (type.isUnion()) {
|
|
397
|
-
var members = type.types
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
470
|
+
var members = type.types;
|
|
471
|
+
var hasNull = members.some(function (t) {
|
|
472
|
+
return t.getFlags() & ts.TypeFlags.Null;
|
|
473
|
+
});
|
|
474
|
+
var hasUndefined = members.some(function (t) {
|
|
475
|
+
return t.getFlags() & (ts.TypeFlags.Undefined | ts.TypeFlags.Void);
|
|
476
|
+
});
|
|
477
|
+
var rest = members.filter(function (t) {
|
|
478
|
+
return !(t.getFlags() & (ts.TypeFlags.Null | ts.TypeFlags.Undefined | ts.TypeFlags.Void));
|
|
479
|
+
});
|
|
407
480
|
if (rest.length === 2 && rest.every(function (t) {
|
|
408
481
|
return t.getFlags() & ts.TypeFlags.BooleanLiteral;
|
|
409
482
|
})) {
|
|
410
483
|
var inner = "v.boolean()";
|
|
411
|
-
|
|
484
|
+
if (hasNull) inner = `v.nullable(${inner})`;
|
|
485
|
+
if (hasUndefined) inner = `v.optional(${inner})`;
|
|
486
|
+
return inner;
|
|
412
487
|
}
|
|
413
488
|
if (rest.length === 0) return "v.unknown()";
|
|
414
489
|
var inner1 = rest.length === 1 ? recurse(rest[0]) : `v.union([${rest.map(function (t) {
|
|
415
490
|
return recurse(t);
|
|
416
491
|
}).join(", ")}])`;
|
|
417
|
-
|
|
492
|
+
if (hasNull) inner1 = `v.nullable(${inner1})`;
|
|
493
|
+
if (hasUndefined) inner1 = `v.optional(${inner1})`;
|
|
494
|
+
return inner1;
|
|
418
495
|
}
|
|
419
496
|
var resolveSymbolType = function (prop2) {
|
|
420
497
|
var _prop_declarations;
|
|
421
|
-
|
|
498
|
+
if (prop2.valueDeclaration) return checker.getTypeOfSymbolAtLocation(prop2, prop2.valueDeclaration);
|
|
499
|
+
if ((_prop_declarations = prop2.declarations) === null || _prop_declarations === void 0 ? void 0 : _prop_declarations[0]) return checker.getTypeOfSymbolAtLocation(prop2, prop2.declarations[0]);
|
|
500
|
+
return checker.getDeclaredTypeOfSymbol(prop2);
|
|
422
501
|
};
|
|
423
502
|
if (type.isIntersection()) {
|
|
424
503
|
var props = type.getProperties();
|
|
425
504
|
if (props.length === 0) return "v.object({})";
|
|
426
|
-
var entries = []
|
|
427
|
-
|
|
428
|
-
_didIteratorError =
|
|
505
|
+
var entries = [];
|
|
506
|
+
var _iteratorNormalCompletion = true,
|
|
507
|
+
_didIteratorError = false,
|
|
429
508
|
_iteratorError = void 0;
|
|
430
509
|
try {
|
|
431
|
-
for (var _iterator = props[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
432
|
-
var prop = _step.value
|
|
433
|
-
|
|
434
|
-
if (
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
510
|
+
for (var _iterator = props[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
511
|
+
var prop = _step.value;
|
|
512
|
+
var name1 = prop.getName();
|
|
513
|
+
if ((0, import_generate_helpers.shouldSkipObjectKey)(name1)) continue;
|
|
514
|
+
var propType = resolveSymbolType(prop);
|
|
515
|
+
var isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional);
|
|
516
|
+
var val = recurse(propType);
|
|
517
|
+
if (isOptional && !val.startsWith("v.optional(")) {
|
|
518
|
+
val = `v.optional(${val})`;
|
|
439
519
|
}
|
|
520
|
+
entries.push(`${(0, import_generate_helpers.formatObjectKey)(name1)}: ${val}`);
|
|
440
521
|
}
|
|
441
522
|
} catch (err) {
|
|
442
|
-
_didIteratorError =
|
|
523
|
+
_didIteratorError = true;
|
|
524
|
+
_iteratorError = err;
|
|
443
525
|
} finally {
|
|
444
526
|
try {
|
|
445
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
527
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
528
|
+
_iterator.return();
|
|
529
|
+
}
|
|
446
530
|
} finally {
|
|
447
|
-
if (_didIteratorError)
|
|
531
|
+
if (_didIteratorError) {
|
|
532
|
+
throw _iteratorError;
|
|
533
|
+
}
|
|
448
534
|
}
|
|
449
535
|
}
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
536
|
+
if (entries.length === 0) return "v.object({})";
|
|
537
|
+
return `v.object({
|
|
538
|
+
${entries.join(",\n ")},
|
|
453
539
|
})`;
|
|
454
540
|
}
|
|
455
541
|
var props1 = type.getProperties();
|
|
456
542
|
if (props1.length > 0 && (type.getFlags() & ts.TypeFlags.Object || type.objectFlags)) {
|
|
457
|
-
var _type_objectFlags
|
|
458
|
-
|
|
543
|
+
var _type_objectFlags;
|
|
544
|
+
var objectFlags = (_type_objectFlags = type.objectFlags) !== null && _type_objectFlags !== void 0 ? _type_objectFlags : 0;
|
|
459
545
|
if (objectFlags & ts.ObjectFlags.Reference) {
|
|
460
|
-
var _typeRef_typeArguments
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
if ((name2 === "Array" || name2 === "ReadonlyArray") && ((_typeRef_typeArguments = typeRef.typeArguments) === null || _typeRef_typeArguments === void 0 ? void 0 : _typeRef_typeArguments.length) === 1)
|
|
546
|
+
var _typeRef_typeArguments;
|
|
547
|
+
var typeRef = type;
|
|
548
|
+
var symbol = type.getSymbol();
|
|
549
|
+
var name2 = symbol === null || symbol === void 0 ? void 0 : symbol.getName();
|
|
550
|
+
if ((name2 === "Array" || name2 === "ReadonlyArray") && ((_typeRef_typeArguments = typeRef.typeArguments) === null || _typeRef_typeArguments === void 0 ? void 0 : _typeRef_typeArguments.length) === 1) {
|
|
551
|
+
return `v.array(${recurse(typeRef.typeArguments[0])})`;
|
|
552
|
+
}
|
|
465
553
|
}
|
|
466
554
|
if (objectFlags & ts.ObjectFlags.Tuple) {
|
|
467
|
-
var typeRef1 = type
|
|
468
|
-
|
|
555
|
+
var typeRef1 = type;
|
|
556
|
+
var typeArgs = typeRef1.typeArguments || [];
|
|
469
557
|
return `v.tuple([${typeArgs.map(function (t) {
|
|
470
558
|
return recurse(t);
|
|
471
559
|
}).join(", ")}])`;
|
|
472
560
|
}
|
|
473
|
-
var entries1 = []
|
|
474
|
-
|
|
475
|
-
_didIteratorError1 =
|
|
561
|
+
var entries1 = [];
|
|
562
|
+
var _iteratorNormalCompletion1 = true,
|
|
563
|
+
_didIteratorError1 = false,
|
|
476
564
|
_iteratorError1 = void 0;
|
|
477
565
|
try {
|
|
478
|
-
for (var _iterator1 = props1[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 =
|
|
479
|
-
var prop1 = _step1.value
|
|
480
|
-
|
|
481
|
-
if (
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
566
|
+
for (var _iterator1 = props1[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
567
|
+
var prop1 = _step1.value;
|
|
568
|
+
var name3 = prop1.getName();
|
|
569
|
+
if ((0, import_generate_helpers.shouldSkipObjectKey)(name3)) continue;
|
|
570
|
+
var propType1 = resolveSymbolType(prop1);
|
|
571
|
+
var isOptional1 = !!(prop1.getFlags() & ts.SymbolFlags.Optional);
|
|
572
|
+
var val1 = recurse(propType1);
|
|
573
|
+
if (isOptional1 && !val1.startsWith("v.optional(")) {
|
|
574
|
+
val1 = `v.optional(${val1})`;
|
|
486
575
|
}
|
|
576
|
+
entries1.push(`${(0, import_generate_helpers.formatObjectKey)(name3)}: ${val1}`);
|
|
487
577
|
}
|
|
488
578
|
} catch (err) {
|
|
489
|
-
_didIteratorError1 =
|
|
579
|
+
_didIteratorError1 = true;
|
|
580
|
+
_iteratorError1 = err;
|
|
490
581
|
} finally {
|
|
491
582
|
try {
|
|
492
|
-
!_iteratorNormalCompletion1 && _iterator1.return != null
|
|
583
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
584
|
+
_iterator1.return();
|
|
585
|
+
}
|
|
493
586
|
} finally {
|
|
494
|
-
if (_didIteratorError1)
|
|
587
|
+
if (_didIteratorError1) {
|
|
588
|
+
throw _iteratorError1;
|
|
589
|
+
}
|
|
495
590
|
}
|
|
496
591
|
}
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
592
|
+
if (entries1.length === 0) return "v.object({})";
|
|
593
|
+
return `v.object({
|
|
594
|
+
${entries1.join(",\n ")},
|
|
500
595
|
})`;
|
|
501
596
|
}
|
|
502
597
|
var stringIndex = type.getStringIndexType();
|
|
503
|
-
if (stringIndex)
|
|
598
|
+
if (stringIndex) {
|
|
599
|
+
return `v.record(v.string(), ${recurse(stringIndex)})`;
|
|
600
|
+
}
|
|
504
601
|
var numberIndex = type.getNumberIndexType();
|
|
505
|
-
|
|
602
|
+
if (numberIndex) {
|
|
603
|
+
return `v.record(v.number(), ${recurse(numberIndex)})`;
|
|
604
|
+
}
|
|
605
|
+
return "v.unknown()";
|
|
506
606
|
}
|
|
507
607
|
function serializeColumnBuilder(col) {
|
|
508
|
-
var zeroType = col.type === "string" ? "string" : col.type === "number" ? "number" : col.type === "boolean" ? "boolean" : "json"
|
|
509
|
-
|
|
510
|
-
|
|
608
|
+
var zeroType = col.type === "string" ? "string" : col.type === "number" ? "number" : col.type === "boolean" ? "boolean" : "json";
|
|
609
|
+
var expr = `${zeroType}()`;
|
|
610
|
+
if (col.serverName) {
|
|
611
|
+
expr += `.from('${col.serverName}')`;
|
|
612
|
+
}
|
|
613
|
+
if (col.optional) {
|
|
614
|
+
expr += ".optional()";
|
|
615
|
+
}
|
|
616
|
+
return expr;
|
|
511
617
|
}
|
|
512
618
|
function generateDrizzleSchemaFile(schema) {
|
|
513
|
-
var lines = [
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
_didIteratorError =
|
|
619
|
+
var lines = [`// auto-generated by: on-zero generate (from drizzle schema)`, `import { boolean, createSchema, json, number, relationships, string, table } from '@rocicorp/zero'`, ``];
|
|
620
|
+
var tableNames = Object.keys(schema.tables).sort();
|
|
621
|
+
var _iteratorNormalCompletion = true,
|
|
622
|
+
_didIteratorError = false,
|
|
517
623
|
_iteratorError = void 0;
|
|
518
624
|
try {
|
|
519
|
-
for (var _iterator = tableNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion =
|
|
520
|
-
var tableName = _step.value
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
lines.push(`
|
|
625
|
+
for (var _iterator = tableNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
626
|
+
var tableName = _step.value;
|
|
627
|
+
var t = schema.tables[tableName];
|
|
628
|
+
var colEntries = Object.entries(t.columns).map(function (param) {
|
|
629
|
+
var [colName, col] = param;
|
|
630
|
+
return ` ${colName}: ${serializeColumnBuilder(col)},`;
|
|
631
|
+
}).join("\n");
|
|
632
|
+
var pkArgs = t.primaryKey.map(function (k) {
|
|
633
|
+
return `'${k}'`;
|
|
634
|
+
}).join(", ");
|
|
635
|
+
lines.push(`const ${tableName}Table = table('${t.name}')`);
|
|
636
|
+
lines.push(` .columns({`);
|
|
637
|
+
lines.push(colEntries);
|
|
638
|
+
lines.push(` })`);
|
|
639
|
+
lines.push(` .primaryKey(${pkArgs})`);
|
|
640
|
+
lines.push(``);
|
|
531
641
|
}
|
|
532
642
|
} catch (err) {
|
|
533
|
-
_didIteratorError =
|
|
643
|
+
_didIteratorError = true;
|
|
644
|
+
_iteratorError = err;
|
|
534
645
|
} finally {
|
|
535
646
|
try {
|
|
536
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
647
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
648
|
+
_iterator.return();
|
|
649
|
+
}
|
|
537
650
|
} finally {
|
|
538
|
-
if (_didIteratorError)
|
|
651
|
+
if (_didIteratorError) {
|
|
652
|
+
throw _iteratorError;
|
|
653
|
+
}
|
|
539
654
|
}
|
|
540
655
|
}
|
|
541
|
-
var relTableNames = Object.keys(schema.relationships).sort()
|
|
542
|
-
|
|
543
|
-
_didIteratorError1 =
|
|
656
|
+
var relTableNames = Object.keys(schema.relationships).sort();
|
|
657
|
+
var _iteratorNormalCompletion1 = true,
|
|
658
|
+
_didIteratorError1 = false,
|
|
544
659
|
_iteratorError1 = void 0;
|
|
545
660
|
try {
|
|
546
|
-
for (var _iterator1 = relTableNames[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 =
|
|
547
|
-
var tableName1 = _step1.value
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
if (relEntries.length
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
661
|
+
for (var _iterator1 = relTableNames[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
662
|
+
var tableName1 = _step1.value;
|
|
663
|
+
var rels = schema.relationships[tableName1];
|
|
664
|
+
var relEntries = Object.entries(rels);
|
|
665
|
+
if (relEntries.length === 0) continue;
|
|
666
|
+
var relBody = relEntries.map(function (param) {
|
|
667
|
+
var [relName, hops] = param;
|
|
668
|
+
if (hops.length === 1) {
|
|
669
|
+
var hop = hops[0];
|
|
670
|
+
var fn = hop.cardinality === "one" ? "one" : "many";
|
|
671
|
+
var sf = hop.sourceField.map(function (f) {
|
|
672
|
+
return `'${f}'`;
|
|
673
|
+
}).join(", ");
|
|
674
|
+
var df = hop.destField.map(function (f) {
|
|
675
|
+
return `'${f}'`;
|
|
676
|
+
}).join(", ");
|
|
677
|
+
return ` ${relName}: ${fn}({
|
|
563
678
|
sourceField: [${sf}],
|
|
564
679
|
destSchema: ${hop.destSchema}Table,
|
|
565
680
|
destField: [${df}],
|
|
566
681
|
})`;
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
}).join(", "),
|
|
573
|
-
df2 = hop2.destField.map(function (f) {
|
|
574
|
-
return `'${f}'`;
|
|
575
|
-
}).join(", ");
|
|
576
|
-
return `${fn2}({ sourceField: [${sf2}], destSchema: ${hop2.destSchema}Table, destField: [${df2}] })`;
|
|
682
|
+
}
|
|
683
|
+
var hopCode = hops.map(function (hop2) {
|
|
684
|
+
var fn2 = hop2.cardinality === "one" ? "one" : "many";
|
|
685
|
+
var sf2 = hop2.sourceField.map(function (f) {
|
|
686
|
+
return `'${f}'`;
|
|
577
687
|
}).join(", ");
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
688
|
+
var df2 = hop2.destField.map(function (f) {
|
|
689
|
+
return `'${f}'`;
|
|
690
|
+
}).join(", ");
|
|
691
|
+
return `${fn2}({ sourceField: [${sf2}], destSchema: ${hop2.destSchema}Table, destField: [${df2}] })`;
|
|
692
|
+
}).join(", ");
|
|
693
|
+
return ` ${relName}: [${hopCode}]`;
|
|
694
|
+
}).join(",\n");
|
|
695
|
+
lines.push(`const ${tableName1}Relationships = relationships(${tableName1}Table, ({ one, many }) => ({`);
|
|
696
|
+
lines.push(relBody);
|
|
697
|
+
lines.push(`}))`);
|
|
698
|
+
lines.push(``);
|
|
583
699
|
}
|
|
584
700
|
} catch (err) {
|
|
585
|
-
_didIteratorError1 =
|
|
701
|
+
_didIteratorError1 = true;
|
|
702
|
+
_iteratorError1 = err;
|
|
586
703
|
} finally {
|
|
587
704
|
try {
|
|
588
|
-
!_iteratorNormalCompletion1 && _iterator1.return != null
|
|
705
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
706
|
+
_iterator1.return();
|
|
707
|
+
}
|
|
589
708
|
} finally {
|
|
590
|
-
if (_didIteratorError1)
|
|
709
|
+
if (_didIteratorError1) {
|
|
710
|
+
throw _iteratorError1;
|
|
711
|
+
}
|
|
591
712
|
}
|
|
592
713
|
}
|
|
593
714
|
var tableList = tableNames.map(function (n) {
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
`);
|
|
603
|
-
|
|
604
|
-
`);
|
|
715
|
+
return ` ${n}Table,`;
|
|
716
|
+
}).join("\n");
|
|
717
|
+
var relList = relTableNames.filter(function (n) {
|
|
718
|
+
return Object.keys(schema.relationships[n]).length > 0;
|
|
719
|
+
}).map(function (n) {
|
|
720
|
+
return ` ${n}Relationships,`;
|
|
721
|
+
}).join("\n");
|
|
722
|
+
lines.push(`export const schema = createSchema({`);
|
|
723
|
+
lines.push(` tables: [`);
|
|
724
|
+
lines.push(tableList);
|
|
725
|
+
lines.push(` ],`);
|
|
726
|
+
lines.push(` relationships: [`);
|
|
727
|
+
lines.push(relList);
|
|
728
|
+
lines.push(` ],`);
|
|
729
|
+
lines.push(`})`);
|
|
730
|
+
lines.push(``);
|
|
731
|
+
return lines.join("\n");
|
|
605
732
|
}
|
|
606
733
|
async function generate(options) {
|
|
607
734
|
var {
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
(0, import_fs.existsSync)(generatedDir)
|
|
620
|
-
|
|
621
|
-
|
|
735
|
+
dir,
|
|
736
|
+
after,
|
|
737
|
+
silent
|
|
738
|
+
} = options;
|
|
739
|
+
var baseDir = (0, import_path.resolve)(dir);
|
|
740
|
+
var mutationsDir = (0, import_path.resolve)(baseDir, "mutations");
|
|
741
|
+
var usesMutationsDir = (0, import_fs.existsSync)(mutationsDir);
|
|
742
|
+
var modelsDir = usesMutationsDir ? mutationsDir : (0, import_path.resolve)(baseDir, "models");
|
|
743
|
+
var modelsDirName = usesMutationsDir ? "mutations" : "models";
|
|
744
|
+
var generatedDir = (0, import_path.resolve)(baseDir, "generated");
|
|
745
|
+
var queriesDir = (0, import_path.resolve)(baseDir, "queries");
|
|
746
|
+
if (!(0, import_fs.existsSync)(generatedDir)) {
|
|
747
|
+
(0, import_fs.mkdirSync)(generatedDir, {
|
|
748
|
+
recursive: true
|
|
749
|
+
});
|
|
750
|
+
}
|
|
751
|
+
loadCache();
|
|
622
752
|
var allModelFiles = (0, import_fs.readdirSync)(modelsDir).filter(function (f) {
|
|
753
|
+
return f.endsWith(".ts");
|
|
754
|
+
}).sort();
|
|
755
|
+
var filesWithSchema = allModelFiles.filter(function (f) {
|
|
756
|
+
return (0, import_fs.readFileSync)((0, import_path.resolve)(modelsDir, f), "utf-8").includes("export const schema = table(");
|
|
757
|
+
});
|
|
758
|
+
var allModelNames = allModelFiles.map(function (f) {
|
|
759
|
+
return (0, import_path.basename)(f, ".ts");
|
|
760
|
+
});
|
|
761
|
+
var schemaModelNames = filesWithSchema.map(function (f) {
|
|
762
|
+
return (0, import_path.basename)(f, ".ts");
|
|
763
|
+
});
|
|
764
|
+
var writeResults = [writeFileIfChanged((0, import_path.resolve)(generatedDir, "models.ts"), (0, import_generate_helpers.generateModelsFile)(allModelNames, modelsDirName)),
|
|
765
|
+
// only generate types.ts and tables.ts when model files define schemas.
|
|
766
|
+
// when using drizzle-zero CLI for schema generation, these files are
|
|
767
|
+
// managed externally and should not be overwritten.
|
|
768
|
+
...(filesWithSchema.length > 0 ? [writeFileIfChanged((0, import_path.resolve)(generatedDir, "types.ts"), (0, import_generate_helpers.generateTypesFile)(schemaModelNames)), writeFileIfChanged((0, import_path.resolve)(generatedDir, "tables.ts"), (0, import_generate_helpers.generateTablesFile)(schemaModelNames, modelsDirName))] : []), writeFileIfChanged((0, import_path.resolve)(generatedDir, "README.md"), (0, import_generate_helpers.generateReadmeFile)())];
|
|
769
|
+
var filesChanged = writeResults.filter(Boolean).length;
|
|
770
|
+
var queryCount = 0;
|
|
771
|
+
var mutationCount = 0;
|
|
772
|
+
var ts = await import("typescript");
|
|
773
|
+
var typeToValibot = function (paramType) {
|
|
774
|
+
try {
|
|
775
|
+
return (0, import_generate_helpers.parseTypeString)(paramType.trim());
|
|
776
|
+
} catch (e) {
|
|
777
|
+
return null;
|
|
778
|
+
}
|
|
779
|
+
};
|
|
780
|
+
if ((0, import_fs.existsSync)(queriesDir)) {
|
|
781
|
+
var queryFiles = (0, import_fs.readdirSync)(queriesDir).filter(function (f) {
|
|
623
782
|
return f.endsWith(".ts");
|
|
624
|
-
})
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
...(filesWithSchema.length > 0 ? [writeFileIfChanged((0, import_path.resolve)(generatedDir, "types.ts"), (0, import_generate_helpers.generateTypesFile)(schemaModelNames)), writeFileIfChanged((0, import_path.resolve)(generatedDir, "tables.ts"), (0, import_generate_helpers.generateTablesFile)(schemaModelNames, modelsDirName))] : []), writeFileIfChanged((0, import_path.resolve)(generatedDir, "README.md"), (0, import_generate_helpers.generateReadmeFile)())],
|
|
639
|
-
filesChanged = writeResults.filter(Boolean).length,
|
|
640
|
-
queryCount = 0,
|
|
641
|
-
mutationCount = 0,
|
|
642
|
-
ts = await import("typescript"),
|
|
643
|
-
typeToValibot = function (paramType) {
|
|
644
|
-
try {
|
|
645
|
-
return (0, import_generate_helpers.parseTypeString)(paramType.trim());
|
|
646
|
-
} catch {
|
|
647
|
-
return null;
|
|
783
|
+
});
|
|
784
|
+
var allQueries = [];
|
|
785
|
+
var queryResolver = null;
|
|
786
|
+
var getQueryResolver = function () {
|
|
787
|
+
if (!queryResolver) {
|
|
788
|
+
var allFiles2 = (0, import_fs.readdirSync)(queriesDir).filter(function (f) {
|
|
789
|
+
return f.endsWith(".ts");
|
|
790
|
+
}).map(function (f) {
|
|
791
|
+
return {
|
|
792
|
+
path: (0, import_path.resolve)(queriesDir, f),
|
|
793
|
+
content: (0, import_fs.readFileSync)((0, import_path.resolve)(queriesDir, f), "utf-8")
|
|
794
|
+
};
|
|
795
|
+
});
|
|
796
|
+
queryResolver = createTypeResolver(ts, allFiles2, queriesDir);
|
|
648
797
|
}
|
|
798
|
+
return queryResolver;
|
|
649
799
|
};
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
return f.endsWith(".ts");
|
|
653
|
-
}),
|
|
654
|
-
allQueries = [],
|
|
655
|
-
queryResolver = null,
|
|
656
|
-
getQueryResolver = function () {
|
|
657
|
-
if (!queryResolver) {
|
|
658
|
-
var allFiles2 = (0, import_fs.readdirSync)(queriesDir).filter(function (f) {
|
|
659
|
-
return f.endsWith(".ts");
|
|
660
|
-
}).map(function (f) {
|
|
661
|
-
return {
|
|
662
|
-
path: (0, import_path.resolve)(queriesDir, f),
|
|
663
|
-
content: (0, import_fs.readFileSync)((0, import_path.resolve)(queriesDir, f), "utf-8")
|
|
664
|
-
};
|
|
665
|
-
});
|
|
666
|
-
queryResolver = createTypeResolver(ts, allFiles2, queriesDir);
|
|
667
|
-
}
|
|
668
|
-
return queryResolver;
|
|
669
|
-
},
|
|
670
|
-
_iteratorNormalCompletion = !0,
|
|
671
|
-
_didIteratorError = !1,
|
|
800
|
+
var _iteratorNormalCompletion = true,
|
|
801
|
+
_didIteratorError = false,
|
|
672
802
|
_iteratorError = void 0;
|
|
673
803
|
try {
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
804
|
+
var _loop = function () {
|
|
805
|
+
var file2 = _step.value;
|
|
806
|
+
var filePath2 = (0, import_path.resolve)(queriesDir, file2);
|
|
807
|
+
var fileBaseName2 = (0, import_path.basename)(file2, ".ts");
|
|
808
|
+
try {
|
|
809
|
+
var content2 = (0, import_fs.readFileSync)(filePath2, "utf-8");
|
|
810
|
+
var sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, true);
|
|
811
|
+
ts.forEachChild(sourceFile2, function (node) {
|
|
812
|
+
if (ts.isVariableStatement(node)) {
|
|
813
|
+
var _node_modifiers;
|
|
814
|
+
var exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function (m) {
|
|
815
|
+
return m.kind === ts.SyntaxKind.ExportKeyword;
|
|
816
|
+
});
|
|
817
|
+
if (!exportModifier) return;
|
|
818
|
+
var declaration = node.declarationList.declarations[0];
|
|
819
|
+
if (!declaration || !ts.isVariableDeclaration(declaration)) return;
|
|
820
|
+
var name = declaration.name.getText(sourceFile2);
|
|
821
|
+
if (name === "permission") return;
|
|
822
|
+
if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
|
|
823
|
+
var params = declaration.initializer.parameters;
|
|
824
|
+
var paramType = "void";
|
|
825
|
+
if (params.length > 0) {
|
|
826
|
+
var _param_type;
|
|
827
|
+
var param = params[0];
|
|
828
|
+
paramType = ((_param_type = param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile2)) || "unknown";
|
|
829
|
+
}
|
|
830
|
+
var valibotCode = typeToValibot(paramType);
|
|
831
|
+
if (!valibotCode && params.length > 0 && params[0].type) {
|
|
832
|
+
var resolver = getQueryResolver();
|
|
833
|
+
var resolverSourceFile = resolver.program.getSourceFile(filePath2);
|
|
834
|
+
if (resolverSourceFile) {
|
|
835
|
+
var resolvedType = resolveParamType(ts, resolver, resolverSourceFile, name, 0);
|
|
836
|
+
if (resolvedType) {
|
|
837
|
+
valibotCode = resolver.typeToValibot(resolvedType);
|
|
707
838
|
}
|
|
708
839
|
}
|
|
709
|
-
|
|
840
|
+
}
|
|
841
|
+
if (valibotCode) {
|
|
842
|
+
allQueries.push({
|
|
710
843
|
name,
|
|
711
844
|
params: paramType,
|
|
712
845
|
valibotCode,
|
|
713
846
|
sourceFile: fileBaseName2
|
|
714
|
-
})
|
|
847
|
+
});
|
|
848
|
+
} else if (!silent && paramType !== "void") {
|
|
849
|
+
console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
|
|
715
850
|
}
|
|
716
851
|
}
|
|
717
|
-
}
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
}
|
|
721
|
-
}
|
|
852
|
+
}
|
|
853
|
+
});
|
|
854
|
+
} catch (err) {
|
|
855
|
+
if (!silent) console.error(`Error processing ${file2}:`, err);
|
|
856
|
+
}
|
|
857
|
+
};
|
|
858
|
+
for (var _iterator = queryFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
|
|
722
859
|
} catch (err) {
|
|
723
|
-
_didIteratorError =
|
|
860
|
+
_didIteratorError = true;
|
|
861
|
+
_iteratorError = err;
|
|
724
862
|
} finally {
|
|
725
863
|
try {
|
|
726
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
864
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
865
|
+
_iterator.return();
|
|
866
|
+
}
|
|
727
867
|
} finally {
|
|
728
|
-
if (_didIteratorError)
|
|
868
|
+
if (_didIteratorError) {
|
|
869
|
+
throw _iteratorError;
|
|
870
|
+
}
|
|
729
871
|
}
|
|
730
872
|
}
|
|
731
873
|
queryCount = allQueries.length;
|
|
732
|
-
var groupedChanged = writeFileIfChanged((0, import_path.resolve)(generatedDir, "groupedQueries.ts"), (0, import_generate_helpers.generateGroupedQueriesFile)(allQueries))
|
|
733
|
-
|
|
734
|
-
groupedChanged
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
874
|
+
var groupedChanged = writeFileIfChanged((0, import_path.resolve)(generatedDir, "groupedQueries.ts"), (0, import_generate_helpers.generateGroupedQueriesFile)(allQueries));
|
|
875
|
+
var syncedChanged = writeFileIfChanged((0, import_path.resolve)(generatedDir, "syncedQueries.ts"), (0, import_generate_helpers.generateSyncedQueriesFile)(allQueries));
|
|
876
|
+
if (groupedChanged) filesChanged++;
|
|
877
|
+
if (syncedChanged) filesChanged++;
|
|
878
|
+
}
|
|
879
|
+
var allModelMutations = [];
|
|
880
|
+
var mutationFiles = [];
|
|
881
|
+
var unresolvedModels = [];
|
|
882
|
+
var _iteratorNormalCompletion1 = true,
|
|
883
|
+
_didIteratorError1 = false,
|
|
741
884
|
_iteratorError1 = void 0;
|
|
742
885
|
try {
|
|
743
|
-
for (var _iterator1 = allModelFiles[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 =
|
|
744
|
-
var file = _step1.value
|
|
745
|
-
|
|
746
|
-
|
|
886
|
+
for (var _iterator1 = allModelFiles[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
887
|
+
var file = _step1.value;
|
|
888
|
+
var filePath = (0, import_path.resolve)(modelsDir, file);
|
|
889
|
+
var fileBaseName = (0, import_path.basename)(file, ".ts");
|
|
747
890
|
try {
|
|
748
891
|
var content = (0, import_fs.readFileSync)(filePath, "utf-8");
|
|
749
892
|
mutationFiles.push({
|
|
@@ -751,119 +894,152 @@ async function generate(options) {
|
|
|
751
894
|
content,
|
|
752
895
|
baseName: fileBaseName
|
|
753
896
|
});
|
|
754
|
-
var sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest,
|
|
755
|
-
|
|
897
|
+
var sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
|
|
898
|
+
var result = extractMutationsFromModel(ts, sourceFile, content, filePath, !!silent, typeToValibot);
|
|
756
899
|
if (result) {
|
|
757
|
-
result.modelName = fileBaseName
|
|
900
|
+
result.modelName = fileBaseName;
|
|
901
|
+
allModelMutations.push(result);
|
|
758
902
|
var hasUnresolved = result.custom.some(function (m) {
|
|
759
903
|
return m.paramType !== "void" && m.paramType !== "unknown" && !m.valibotCode;
|
|
760
904
|
});
|
|
761
|
-
hasUnresolved
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
905
|
+
if (hasUnresolved) {
|
|
906
|
+
unresolvedModels.push({
|
|
907
|
+
baseName: fileBaseName,
|
|
908
|
+
filePath
|
|
909
|
+
});
|
|
910
|
+
}
|
|
765
911
|
}
|
|
766
912
|
} catch (err) {
|
|
767
|
-
silent
|
|
913
|
+
if (!silent) console.error(`Error extracting mutations from ${file}:`, err);
|
|
768
914
|
}
|
|
769
915
|
}
|
|
770
916
|
} catch (err) {
|
|
771
|
-
_didIteratorError1 =
|
|
917
|
+
_didIteratorError1 = true;
|
|
918
|
+
_iteratorError1 = err;
|
|
772
919
|
} finally {
|
|
773
920
|
try {
|
|
774
|
-
!_iteratorNormalCompletion1 && _iterator1.return != null
|
|
921
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
922
|
+
_iterator1.return();
|
|
923
|
+
}
|
|
775
924
|
} finally {
|
|
776
|
-
if (_didIteratorError1)
|
|
925
|
+
if (_didIteratorError1) {
|
|
926
|
+
throw _iteratorError1;
|
|
927
|
+
}
|
|
777
928
|
}
|
|
778
929
|
}
|
|
779
930
|
if (unresolvedModels.length > 0) {
|
|
780
931
|
var collectTsFiles = function (dir2) {
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
932
|
+
var results = [];
|
|
933
|
+
var _iteratorNormalCompletion4 = true,
|
|
934
|
+
_didIteratorError4 = false,
|
|
935
|
+
_iteratorError4 = void 0;
|
|
936
|
+
try {
|
|
937
|
+
for (var _iterator4 = (0, import_fs.readdirSync)(dir2, {
|
|
938
|
+
withFileTypes: true
|
|
939
|
+
})[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
|
940
|
+
var entry = _step4.value;
|
|
941
|
+
var fullPath = (0, import_path.resolve)(dir2, entry.name);
|
|
942
|
+
if (entry.isDirectory() && entry.name !== "node_modules") {
|
|
943
|
+
results.push(...collectTsFiles(fullPath));
|
|
944
|
+
} else if (entry.isFile() && entry.name.endsWith(".ts") && !entry.name.endsWith(".d.ts")) {
|
|
945
|
+
results.push({
|
|
792
946
|
path: fullPath,
|
|
793
947
|
content: (0, import_fs.readFileSync)(fullPath, "utf-8")
|
|
794
948
|
});
|
|
795
949
|
}
|
|
796
|
-
}
|
|
797
|
-
|
|
950
|
+
}
|
|
951
|
+
} catch (err) {
|
|
952
|
+
_didIteratorError4 = true;
|
|
953
|
+
_iteratorError4 = err;
|
|
954
|
+
} finally {
|
|
955
|
+
try {
|
|
956
|
+
if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
|
|
957
|
+
_iterator4.return();
|
|
958
|
+
}
|
|
798
959
|
} finally {
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
} finally {
|
|
802
|
-
if (_didIteratorError4) throw _iteratorError4;
|
|
960
|
+
if (_didIteratorError4) {
|
|
961
|
+
throw _iteratorError4;
|
|
803
962
|
}
|
|
804
963
|
}
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
964
|
+
}
|
|
965
|
+
return results;
|
|
966
|
+
};
|
|
967
|
+
var allFiles = collectTsFiles(baseDir);
|
|
968
|
+
var modelResolver = createTypeResolver(ts, allFiles, baseDir);
|
|
969
|
+
var _iteratorNormalCompletion2 = true,
|
|
970
|
+
_didIteratorError2 = false,
|
|
811
971
|
_iteratorError2 = void 0;
|
|
812
972
|
try {
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
973
|
+
var _loop1 = function () {
|
|
974
|
+
var {
|
|
975
|
+
baseName,
|
|
976
|
+
filePath: filePath2
|
|
977
|
+
} = _step2.value;
|
|
978
|
+
var resolverSourceFile = modelResolver.program.getSourceFile(filePath2);
|
|
979
|
+
if (!resolverSourceFile) return "continue";
|
|
980
|
+
var resolvedTypes = resolveMutationParamTypes(ts, modelResolver, resolverSourceFile);
|
|
981
|
+
if (resolvedTypes.size === 0) return "continue";
|
|
982
|
+
var content2 = (0, import_fs.readFileSync)(filePath2, "utf-8");
|
|
983
|
+
var sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, true);
|
|
984
|
+
var result2 = extractMutationsFromModel(ts, sourceFile2, content2, filePath2, !!silent, typeToValibot, resolvedTypes, modelResolver.typeToValibot);
|
|
985
|
+
if (result2) {
|
|
986
|
+
result2.modelName = baseName;
|
|
987
|
+
var idx = allModelMutations.findIndex(function (m) {
|
|
988
|
+
return m.modelName === baseName;
|
|
989
|
+
});
|
|
990
|
+
if (idx >= 0) allModelMutations[idx] = result2;
|
|
991
|
+
}
|
|
992
|
+
};
|
|
993
|
+
for (var _iterator2 = unresolvedModels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) _loop1();
|
|
833
994
|
} catch (err) {
|
|
834
|
-
_didIteratorError2 =
|
|
995
|
+
_didIteratorError2 = true;
|
|
996
|
+
_iteratorError2 = err;
|
|
835
997
|
} finally {
|
|
836
998
|
try {
|
|
837
|
-
!_iteratorNormalCompletion2 && _iterator2.return != null
|
|
999
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
1000
|
+
_iterator2.return();
|
|
1001
|
+
}
|
|
838
1002
|
} finally {
|
|
839
|
-
if (_didIteratorError2)
|
|
1003
|
+
if (_didIteratorError2) {
|
|
1004
|
+
throw _iteratorError2;
|
|
1005
|
+
}
|
|
840
1006
|
}
|
|
841
1007
|
}
|
|
842
1008
|
}
|
|
843
|
-
var _iteratorNormalCompletion3 =
|
|
844
|
-
_didIteratorError3 =
|
|
1009
|
+
var _iteratorNormalCompletion3 = true,
|
|
1010
|
+
_didIteratorError3 = false,
|
|
845
1011
|
_iteratorError3 = void 0;
|
|
846
1012
|
try {
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
}
|
|
1013
|
+
var _loop2 = function () {
|
|
1014
|
+
var model = _step3.value;
|
|
1015
|
+
if (model.hasCRUD) mutationCount += 3;
|
|
1016
|
+
mutationCount += model.custom.filter(function (m) {
|
|
1017
|
+
return !model.hasCRUD || !["insert", "update", "delete", "upsert"].includes(m.name);
|
|
1018
|
+
}).length;
|
|
1019
|
+
};
|
|
1020
|
+
for (var _iterator3 = allModelMutations[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) _loop2();
|
|
853
1021
|
} catch (err) {
|
|
854
|
-
_didIteratorError3 =
|
|
1022
|
+
_didIteratorError3 = true;
|
|
1023
|
+
_iteratorError3 = err;
|
|
855
1024
|
} finally {
|
|
856
1025
|
try {
|
|
857
|
-
!_iteratorNormalCompletion3 && _iterator3.return != null
|
|
1026
|
+
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
|
|
1027
|
+
_iterator3.return();
|
|
1028
|
+
}
|
|
858
1029
|
} finally {
|
|
859
|
-
if (_didIteratorError3)
|
|
1030
|
+
if (_didIteratorError3) {
|
|
1031
|
+
throw _iteratorError3;
|
|
1032
|
+
}
|
|
860
1033
|
}
|
|
861
1034
|
}
|
|
862
1035
|
if (allModelMutations.length > 0) {
|
|
863
1036
|
var mutationsChanged = writeFileIfChanged((0, import_path.resolve)(generatedDir, "syncedMutations.ts"), (0, import_generate_helpers.generateSyncedMutationsFile)(allModelMutations));
|
|
864
|
-
mutationsChanged
|
|
1037
|
+
if (mutationsChanged) filesChanged++;
|
|
865
1038
|
}
|
|
866
|
-
if (filesChanged > 0 && !silent
|
|
1039
|
+
if (filesChanged > 0 && !silent) {
|
|
1040
|
+
console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`);
|
|
1041
|
+
}
|
|
1042
|
+
if (filesChanged > 0 && after) {
|
|
867
1043
|
var {
|
|
868
1044
|
execSync
|
|
869
1045
|
} = await import("child_process");
|
|
@@ -876,10 +1052,11 @@ async function generate(options) {
|
|
|
876
1052
|
}
|
|
877
1053
|
});
|
|
878
1054
|
} catch (err) {
|
|
879
|
-
silent
|
|
1055
|
+
if (!silent) console.error(`Error running after command: ${err}`);
|
|
880
1056
|
}
|
|
881
1057
|
}
|
|
882
|
-
|
|
1058
|
+
saveCache();
|
|
1059
|
+
return {
|
|
883
1060
|
filesChanged,
|
|
884
1061
|
modelCount: allModelFiles.length,
|
|
885
1062
|
schemaCount: filesWithSchema.length,
|
|
@@ -889,41 +1066,46 @@ async function generate(options) {
|
|
|
889
1066
|
}
|
|
890
1067
|
async function watch(options) {
|
|
891
1068
|
var {
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
1069
|
+
dir,
|
|
1070
|
+
debounce = 1e3
|
|
1071
|
+
} = options;
|
|
1072
|
+
var baseDir = (0, import_path.resolve)(dir);
|
|
1073
|
+
var mutationsDir = (0, import_path.resolve)(baseDir, "mutations");
|
|
1074
|
+
var modelsDir = (0, import_fs.existsSync)(mutationsDir) ? mutationsDir : (0, import_path.resolve)(baseDir, "models");
|
|
1075
|
+
var queriesDir = (0, import_path.resolve)(baseDir, "queries");
|
|
1076
|
+
var generatedDir = (0, import_path.resolve)(baseDir, "generated");
|
|
900
1077
|
await generate({
|
|
901
1078
|
...options,
|
|
902
|
-
silent:
|
|
903
|
-
})
|
|
904
|
-
|
|
905
|
-
var chokidar = await import("chokidar")
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
1079
|
+
silent: true
|
|
1080
|
+
});
|
|
1081
|
+
console.info("\u{1F440} watching...\n");
|
|
1082
|
+
var chokidar = await import("chokidar");
|
|
1083
|
+
var debounceTimer = null;
|
|
1084
|
+
var debouncedRegenerate = function (path, event) {
|
|
1085
|
+
if (debounceTimer) clearTimeout(debounceTimer);
|
|
1086
|
+
console.info(`
|
|
1087
|
+
${event} ${path}`);
|
|
1088
|
+
debounceTimer = setTimeout(function () {
|
|
1089
|
+
generate({
|
|
1090
|
+
...options,
|
|
1091
|
+
silent: false
|
|
1092
|
+
});
|
|
1093
|
+
}, debounce);
|
|
1094
|
+
};
|
|
1095
|
+
var watcher = chokidar.watch([modelsDir, queriesDir], {
|
|
1096
|
+
persistent: true,
|
|
1097
|
+
ignoreInitial: true,
|
|
1098
|
+
ignored: [generatedDir]
|
|
1099
|
+
});
|
|
1100
|
+
watcher.on("change", function (path) {
|
|
922
1101
|
return debouncedRegenerate(path, "\u{1F4DD}");
|
|
923
|
-
})
|
|
1102
|
+
});
|
|
1103
|
+
watcher.on("add", function (path) {
|
|
924
1104
|
return debouncedRegenerate(path, "\u2795");
|
|
925
|
-
})
|
|
1105
|
+
});
|
|
1106
|
+
watcher.on("unlink", function (path) {
|
|
926
1107
|
return debouncedRegenerate(path, "\u{1F5D1}\uFE0F ");
|
|
927
|
-
})
|
|
1108
|
+
});
|
|
1109
|
+
return watcher;
|
|
928
1110
|
}
|
|
929
1111
|
//# sourceMappingURL=generate.native.js.map
|