on-zero 0.16.17 → 0.16.19
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/createZeroClient.cjs +44 -11
- package/dist/cjs/createZeroClient.native.js +54 -17
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.cjs +49 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js +53 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.cjs +28 -0
- package/dist/cjs/generate-helpers.native.js +36 -0
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-layout.cjs +62 -53
- package/dist/cjs/generate-layout.native.js +62 -54
- package/dist/cjs/generate-layout.native.js.map +1 -1
- package/dist/cjs/generate-lite.cjs +28 -0
- package/dist/cjs/generate-lite.native.js +89 -33
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +46 -0
- package/dist/cjs/generate-lite.test.native.js +46 -0
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +237 -243
- package/dist/cjs/generate.native.js +352 -353
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +35 -0
- package/dist/cjs/generate.test.native.js +35 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +2 -1
- package/dist/cjs/helpers/createMutators.native.js +3 -1
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.cjs +8 -2
- package/dist/cjs/helpers/recoverZeroClient.native.js +10 -2
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +53 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +55 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/native-typescript.cjs +190 -0
- package/dist/cjs/native-typescript.native.js +255 -0
- package/dist/cjs/native-typescript.native.js.map +1 -0
- package/dist/esm/createZeroClient.mjs +44 -11
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +54 -17
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.mjs +50 -1
- package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +54 -1
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +27 -1
- package/dist/esm/generate-helpers.mjs.map +1 -1
- package/dist/esm/generate-helpers.native.js +35 -1
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-layout.mjs +52 -54
- package/dist/esm/generate-layout.mjs.map +1 -1
- package/dist/esm/generate-layout.native.js +52 -55
- package/dist/esm/generate-layout.native.js.map +1 -1
- package/dist/esm/generate-lite.mjs +29 -1
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +90 -34
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +46 -0
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +46 -0
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +238 -244
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +353 -354
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +35 -0
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +35 -0
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +2 -1
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +3 -1
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.mjs +8 -2
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +10 -2
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs +53 -0
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +55 -0
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/native-typescript.mjs +164 -0
- package/dist/esm/native-typescript.mjs.map +1 -0
- package/dist/esm/native-typescript.native.js +226 -0
- package/dist/esm/native-typescript.native.js.map +1 -0
- package/package.json +4 -3
- package/src/createZeroClient.recovery.test.tsx +56 -1
- package/src/createZeroClient.tsx +54 -15
- package/src/generate-helpers.ts +79 -0
- package/src/generate-layout.ts +64 -108
- package/src/generate-lite.test.ts +49 -0
- package/src/generate-lite.ts +44 -0
- package/src/generate.test.ts +52 -0
- package/src/generate.ts +313 -366
- package/src/helpers/createMutators.ts +14 -3
- package/src/helpers/recoverZeroClient.test.ts +50 -0
- package/src/helpers/recoverZeroClient.ts +12 -2
- package/src/native-typescript.ts +176 -0
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/generate-helpers.d.ts +13 -0
- package/types/generate-helpers.d.ts.map +1 -1
- package/types/generate-layout.d.ts +2 -1
- package/types/generate-layout.d.ts.map +1 -1
- package/types/generate-lite.d.ts +1 -0
- package/types/generate-lite.d.ts.map +1 -1
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/helpers/recoverZeroClient.d.ts.map +1 -1
- package/types/native-typescript.d.ts +11 -0
- package/types/native-typescript.d.ts.map +1 -0
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { existsSync,
|
|
1
|
+
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
2
2
|
import { basename, dirname, relative, resolve, sep } from "node:path";
|
|
3
|
+
import * as ts from "typescript/unstable/ast";
|
|
3
4
|
const isSourceFile = name => name.endsWith(".ts") && !name.endsWith(".d.ts") && !name.endsWith(".test.ts") && !name.endsWith(".spec.ts");
|
|
4
5
|
const toImportPath = (baseDir, path) => relative(baseDir, path).split(sep).join("/").replace(/\.ts$/, "");
|
|
5
6
|
const isWithin = (root, path) => {
|
|
6
7
|
const child = relative(root, path);
|
|
7
8
|
return child === "" || child !== ".." && !child.startsWith(`..${sep}`);
|
|
8
9
|
};
|
|
9
|
-
function propertyName(
|
|
10
|
+
function propertyName(name) {
|
|
10
11
|
if (ts.isIdentifier(name) || ts.isStringLiteral(name) || ts.isNumericLiteral(name)) {
|
|
11
12
|
return name.text;
|
|
12
13
|
}
|
|
13
14
|
return null;
|
|
14
15
|
}
|
|
15
|
-
function readDataConfig(
|
|
16
|
+
function readDataConfig(project, baseDir, configPath) {
|
|
16
17
|
const path = configPath ? resolve(configPath) : resolve(baseDir, "on-zero.config.ts");
|
|
17
18
|
if (!existsSync(path)) {
|
|
18
19
|
if (configPath) throw new Error(`[on-zero] config file does not exist: ${path}`);
|
|
@@ -21,8 +22,8 @@ function readDataConfig(ts, baseDir, configPath) {
|
|
|
21
22
|
if (dirname(path) !== baseDir) {
|
|
22
23
|
throw new Error(`[on-zero] ${path} must be at the data root ${baseDir}`);
|
|
23
24
|
}
|
|
24
|
-
const source =
|
|
25
|
-
if (hasParseErrors(
|
|
25
|
+
const source = project.sourceFile(path);
|
|
26
|
+
if (project.hasParseErrors(path)) throw new Error(`[on-zero] unable to parse ${path}`);
|
|
26
27
|
let config = null;
|
|
27
28
|
for (const statement of source.statements) {
|
|
28
29
|
if (!ts.isExportAssignment(statement) || statement.isExportEquals) continue;
|
|
@@ -41,7 +42,7 @@ function readDataConfig(ts, baseDir, configPath) {
|
|
|
41
42
|
if (!ts.isPropertyAssignment(option)) {
|
|
42
43
|
throw new Error(`[on-zero] ${path} options must use explicit property assignments`);
|
|
43
44
|
}
|
|
44
|
-
const name = propertyName(
|
|
45
|
+
const name = propertyName(option.name);
|
|
45
46
|
if (!name) throw new Error(`[on-zero] ${path} has an unsupported option name`);
|
|
46
47
|
if (rootOptions.has(name)) throw new Error(`[on-zero] ${path} repeats option '${name}'`);
|
|
47
48
|
rootOptions.set(name, option.initializer);
|
|
@@ -58,7 +59,7 @@ function readDataConfig(ts, baseDir, configPath) {
|
|
|
58
59
|
if (!ts.isPropertyAssignment(property)) {
|
|
59
60
|
throw new Error(`[on-zero] ${path} instances must use explicit property assignments`);
|
|
60
61
|
}
|
|
61
|
-
const name = propertyName(
|
|
62
|
+
const name = propertyName(property.name);
|
|
62
63
|
if (!name) throw new Error(`[on-zero] ${path} has an unsupported instance name`);
|
|
63
64
|
if (!ts.isObjectLiteralExpression(property.initializer)) {
|
|
64
65
|
throw new Error(`[on-zero] instance '${name}' must be an object`);
|
|
@@ -74,7 +75,7 @@ function readDataConfig(ts, baseDir, configPath) {
|
|
|
74
75
|
if (!ts.isPropertyAssignment(option)) {
|
|
75
76
|
throw new Error(`[on-zero] instance '${name}' options must be assignments`);
|
|
76
77
|
}
|
|
77
|
-
const optionName = propertyName(
|
|
78
|
+
const optionName = propertyName(option.name);
|
|
78
79
|
if (!optionName) throw new Error(`[on-zero] instance '${name}' has an invalid option`);
|
|
79
80
|
if (seen.has(optionName)) {
|
|
80
81
|
throw new Error(`[on-zero] instance '${name}' repeats option '${optionName}'`);
|
|
@@ -141,16 +142,13 @@ function readDataConfig(ts, baseDir, configPath) {
|
|
|
141
142
|
instances
|
|
142
143
|
};
|
|
143
144
|
}
|
|
144
|
-
function
|
|
145
|
-
return Boolean(source.parseDiagnostics?.length);
|
|
146
|
-
}
|
|
147
|
-
function namespaceExportKinds(ts, baseDir, path) {
|
|
145
|
+
function namespaceExportKinds(project, baseDir, path) {
|
|
148
146
|
const none = {
|
|
149
147
|
model: false,
|
|
150
148
|
query: false
|
|
151
149
|
};
|
|
152
|
-
const source =
|
|
153
|
-
if (hasParseErrors(
|
|
150
|
+
const source = project.sourceFile(path);
|
|
151
|
+
if (project.hasParseErrors(path)) {
|
|
154
152
|
const displayPath = relative(dirname(baseDir), path).split(sep).join("/");
|
|
155
153
|
console.warn(`[on-zero] ignoring ${displayPath}: no recognized data exports`);
|
|
156
154
|
return none;
|
|
@@ -204,7 +202,7 @@ function namespaceExportKinds(ts, baseDir, path) {
|
|
|
204
202
|
}
|
|
205
203
|
}
|
|
206
204
|
let found = false;
|
|
207
|
-
|
|
205
|
+
node.forEachChild(child => {
|
|
208
206
|
if (!found && reachesQuery(child)) found = true;
|
|
209
207
|
});
|
|
210
208
|
return found;
|
|
@@ -215,8 +213,8 @@ function namespaceExportKinds(ts, baseDir, path) {
|
|
|
215
213
|
query
|
|
216
214
|
};
|
|
217
215
|
}
|
|
218
|
-
function mutationTable(
|
|
219
|
-
const source =
|
|
216
|
+
function mutationTable(project, path, namespace) {
|
|
217
|
+
const source = project.sourceFile(path);
|
|
220
218
|
let schemaTable = null;
|
|
221
219
|
for (const statement of source.statements) {
|
|
222
220
|
if (!ts.isVariableStatement(statement)) continue;
|
|
@@ -227,24 +225,24 @@ function mutationTable(ts, path, namespace) {
|
|
|
227
225
|
if (!ts.isIdentifier(declaration.name) || !declaration.initializer) continue;
|
|
228
226
|
if (declaration.name.text === "mutate" && ts.isCallExpression(declaration.initializer)) {
|
|
229
227
|
const firstArgument = declaration.initializer.arguments[0];
|
|
230
|
-
if (firstArgument && ts.
|
|
228
|
+
if (firstArgument && ts.isStringLiteral(firstArgument)) {
|
|
231
229
|
return firstArgument.text;
|
|
232
230
|
}
|
|
233
231
|
}
|
|
234
232
|
if (declaration.name.text !== "schema") continue;
|
|
235
233
|
const visit = node => {
|
|
236
|
-
if (ts.isCallExpression(node) && node.expression.getText(source) === "table" && node.arguments[0] && ts.
|
|
234
|
+
if (ts.isCallExpression(node) && node.expression.getText(source) === "table" && node.arguments[0] && ts.isStringLiteral(node.arguments[0])) {
|
|
237
235
|
schemaTable = node.arguments[0].text;
|
|
238
236
|
return;
|
|
239
237
|
}
|
|
240
|
-
|
|
238
|
+
node.forEachChild(visit);
|
|
241
239
|
};
|
|
242
240
|
visit(declaration.initializer);
|
|
243
241
|
}
|
|
244
242
|
}
|
|
245
243
|
return schemaTable ?? namespace;
|
|
246
244
|
}
|
|
247
|
-
function discoverNamespaces(
|
|
245
|
+
function discoverNamespaces(project, baseDir, instance, instanceDirs) {
|
|
248
246
|
const namespaces = [];
|
|
249
247
|
for (const entry of readdirSync(instance.dir, {
|
|
250
248
|
withFileTypes: true
|
|
@@ -252,7 +250,7 @@ function discoverNamespaces(ts, baseDir, instance, instanceDirs) {
|
|
|
252
250
|
if (entry.isFile()) {
|
|
253
251
|
if (!isSourceFile(entry.name) || entry.name === "on-zero.config.ts") continue;
|
|
254
252
|
const path = resolve(instance.dir, entry.name);
|
|
255
|
-
const kinds = namespaceExportKinds(
|
|
253
|
+
const kinds = namespaceExportKinds(project, baseDir, path);
|
|
256
254
|
if (!kinds.model && !kinds.query) continue;
|
|
257
255
|
const name = basename(entry.name, ".ts");
|
|
258
256
|
namespaces.push({
|
|
@@ -263,7 +261,7 @@ function discoverNamespaces(ts, baseDir, instance, instanceDirs) {
|
|
|
263
261
|
// missing mutations.ts leaves modelPath null
|
|
264
262
|
modelPath: kinds.model ? path : null,
|
|
265
263
|
aggregatePath: null,
|
|
266
|
-
table: kinds.model ? mutationTable(
|
|
264
|
+
table: kinds.model ? mutationTable(project, path, name) : null,
|
|
267
265
|
sourcePaths: [path]
|
|
268
266
|
});
|
|
269
267
|
continue;
|
|
@@ -289,7 +287,7 @@ function discoverNamespaces(ts, baseDir, instance, instanceDirs) {
|
|
|
289
287
|
queryPath: hasQueries ? queryPath : null,
|
|
290
288
|
modelPath: hasMutations ? modelPath : null,
|
|
291
289
|
aggregatePath: hasAggregates ? aggregatePath : null,
|
|
292
|
-
table: hasMutations ? mutationTable(
|
|
290
|
+
table: hasMutations ? mutationTable(project, modelPath, entry.name) : null,
|
|
293
291
|
sourcePaths: [hasQueries && queryPath, hasMutations && modelPath, hasAggregates && aggregatePath].filter(path => Boolean(path))
|
|
294
292
|
});
|
|
295
293
|
}
|
|
@@ -311,13 +309,13 @@ function metadataPaths(baseDir) {
|
|
|
311
309
|
}
|
|
312
310
|
return paths.sort();
|
|
313
311
|
}
|
|
314
|
-
function relationTargets(
|
|
312
|
+
function relationTargets(project, paths) {
|
|
315
313
|
const relations = /* @__PURE__ */new Map();
|
|
316
314
|
for (const path of paths.filter(path2 => basename(path2) === "relations.ts")) {
|
|
317
|
-
const source =
|
|
315
|
+
const source = project.sourceFile(path);
|
|
318
316
|
const visit = node => {
|
|
319
317
|
if (!ts.isCallExpression(node) || node.expression.getText(source) !== "defineRelations") {
|
|
320
|
-
|
|
318
|
+
node.forEachChild(visit);
|
|
321
319
|
return;
|
|
322
320
|
}
|
|
323
321
|
const factory = node.arguments[1];
|
|
@@ -346,21 +344,21 @@ function relationTargets(ts, paths) {
|
|
|
346
344
|
}
|
|
347
345
|
return relations;
|
|
348
346
|
}
|
|
349
|
-
function tableColumns(
|
|
347
|
+
function tableColumns(project, paths, namespaces) {
|
|
350
348
|
const columns = /* @__PURE__ */new Map();
|
|
351
349
|
const sources = /* @__PURE__ */new Set([...paths, ...namespaces.flatMap(namespace => namespace.sourcePaths)]);
|
|
352
350
|
for (const path of sources) {
|
|
353
|
-
const source =
|
|
351
|
+
const source = project.sourceFile(path);
|
|
354
352
|
const visit = node => {
|
|
355
353
|
if (!ts.isVariableDeclaration(node) || !ts.isIdentifier(node.name) || !node.initializer) {
|
|
356
|
-
|
|
354
|
+
node.forEachChild(visit);
|
|
357
355
|
return;
|
|
358
356
|
}
|
|
359
357
|
const tableNames = /* @__PURE__ */new Set([node.name.text]);
|
|
360
358
|
let foundColumns = null;
|
|
361
359
|
const inspect = candidate => {
|
|
362
360
|
if (!ts.isCallExpression(candidate)) {
|
|
363
|
-
|
|
361
|
+
candidate.forEachChild(inspect);
|
|
364
362
|
return;
|
|
365
363
|
}
|
|
366
364
|
for (const argument of candidate.arguments) {
|
|
@@ -373,18 +371,18 @@ function tableColumns(ts, paths, namespaces) {
|
|
|
373
371
|
};
|
|
374
372
|
inspect(node.initializer);
|
|
375
373
|
if (foundColumns) {
|
|
376
|
-
const names = new Set(foundColumns.properties.map(property => property.name?.getText(source).replace(/^['"]|['"]$/g, "")).filter(name => Boolean(name)));
|
|
374
|
+
const names = new Set(foundColumns.properties.map(property => ts.isSpreadAssignment(property) ? null : property.name?.getText(source).replace(/^['"]|['"]$/g, "")).filter(name => Boolean(name)));
|
|
377
375
|
for (const tableName of tableNames) columns.set(tableName, names);
|
|
378
376
|
}
|
|
379
|
-
|
|
377
|
+
node.forEachChild(visit);
|
|
380
378
|
};
|
|
381
379
|
visit(source);
|
|
382
380
|
}
|
|
383
381
|
return columns;
|
|
384
382
|
}
|
|
385
|
-
function queriedTables(
|
|
383
|
+
function queriedTables(project, namespace, relations) {
|
|
386
384
|
if (!namespace.queryPath) return [];
|
|
387
|
-
const source =
|
|
385
|
+
const source = project.sourceFile(namespace.queryPath);
|
|
388
386
|
const reached = [];
|
|
389
387
|
const functions = /* @__PURE__ */new Map();
|
|
390
388
|
const exported = /* @__PURE__ */new Set();
|
|
@@ -447,7 +445,7 @@ function queriedTables(ts, namespace, relations) {
|
|
|
447
445
|
visiting.delete(key);
|
|
448
446
|
}
|
|
449
447
|
}
|
|
450
|
-
|
|
448
|
+
node.forEachChild(child => visit(child, currentTable, query));
|
|
451
449
|
};
|
|
452
450
|
for (const name of exported) {
|
|
453
451
|
if (["mutate", "schema", "where"].includes(name)) continue;
|
|
@@ -462,9 +460,9 @@ function queriedTables(ts, namespace, relations) {
|
|
|
462
460
|
}
|
|
463
461
|
return reached;
|
|
464
462
|
}
|
|
465
|
-
function aggregateTables(
|
|
463
|
+
function aggregateTables(project, namespace) {
|
|
466
464
|
if (!namespace.aggregatePath) return [];
|
|
467
|
-
const source =
|
|
465
|
+
const source = project.sourceFile(namespace.aggregatePath);
|
|
468
466
|
const unwrap = node => {
|
|
469
467
|
let current = node;
|
|
470
468
|
while (ts.isSatisfiesExpression(current) || ts.isAsExpression(current) || ts.isParenthesizedExpression(current)) {
|
|
@@ -495,8 +493,8 @@ function aggregateTables(ts, namespace) {
|
|
|
495
493
|
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} must be an object literal`);
|
|
496
494
|
}
|
|
497
495
|
for (const fieldName of ["source", "target"]) {
|
|
498
|
-
const field = definition.properties.find(candidate => ts.isPropertyAssignment(candidate) && propertyName(
|
|
499
|
-
if (!field || !ts.
|
|
496
|
+
const field = definition.properties.find(candidate => ts.isPropertyAssignment(candidate) && propertyName(candidate.name) === fieldName);
|
|
497
|
+
if (!field || !ts.isStringLiteral(unwrap(field.initializer))) {
|
|
500
498
|
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} ${fieldName} must be a string literal`);
|
|
501
499
|
}
|
|
502
500
|
tables.add(unwrap(field.initializer).text);
|
|
@@ -506,14 +504,14 @@ function aggregateTables(ts, namespace) {
|
|
|
506
504
|
}
|
|
507
505
|
return [...tables].sort();
|
|
508
506
|
}
|
|
509
|
-
function mutationSupportTables(
|
|
507
|
+
function mutationSupportTables(project, baseDir, sourceRoots, namespace) {
|
|
510
508
|
if (!namespace.modelPath) return [];
|
|
511
509
|
const tables = /* @__PURE__ */new Set();
|
|
512
510
|
const visited = /* @__PURE__ */new Set();
|
|
513
511
|
const scan = path => {
|
|
514
512
|
if (visited.has(path)) return;
|
|
515
513
|
visited.add(path);
|
|
516
|
-
const source =
|
|
514
|
+
const source = project.sourceFile(path);
|
|
517
515
|
const visit = node => {
|
|
518
516
|
if (ts.isPropertyAccessExpression(node) && ts.isPropertyAccessExpression(node.expression) && ["mutate", "query"].includes(node.expression.name.text)) {
|
|
519
517
|
const transaction = node.expression.expression;
|
|
@@ -533,7 +531,7 @@ function mutationSupportTables(ts, baseDir, sourceRoots, namespace) {
|
|
|
533
531
|
}
|
|
534
532
|
}
|
|
535
533
|
}
|
|
536
|
-
|
|
534
|
+
node.forEachChild(visit);
|
|
537
535
|
};
|
|
538
536
|
visit(source);
|
|
539
537
|
};
|
|
@@ -559,7 +557,7 @@ function assertNoInstanceFiles(roots) {
|
|
|
559
557
|
};
|
|
560
558
|
for (const root of roots) walk(root);
|
|
561
559
|
}
|
|
562
|
-
function assertNoUnclaimedNamespaces(
|
|
560
|
+
function assertNoUnclaimedNamespaces(project, baseDir, configPath, instanceDirs) {
|
|
563
561
|
const walk = dir => {
|
|
564
562
|
if (instanceDirs.some(instanceDir => isWithin(instanceDir, dir))) return;
|
|
565
563
|
for (const entry of readdirSync(dir, {
|
|
@@ -574,7 +572,7 @@ function assertNoUnclaimedNamespaces(ts, baseDir, configPath, instanceDirs) {
|
|
|
574
572
|
if (!entry.isFile() || !isSourceFile(entry.name) || path === configPath || entry.name === "instance.ts") {
|
|
575
573
|
continue;
|
|
576
574
|
}
|
|
577
|
-
const kinds = namespaceExportKinds(
|
|
575
|
+
const kinds = namespaceExportKinds(project, baseDir, path);
|
|
578
576
|
if (kinds.model || kinds.query) {
|
|
579
577
|
throw new Error(`[on-zero] data namespace ${path} is outside every instance directory declared in ${configPath}`);
|
|
580
578
|
}
|
|
@@ -582,8 +580,8 @@ function assertNoUnclaimedNamespaces(ts, baseDir, configPath, instanceDirs) {
|
|
|
582
580
|
};
|
|
583
581
|
walk(baseDir);
|
|
584
582
|
}
|
|
585
|
-
function discoverDataLayout(
|
|
586
|
-
const config = readDataConfig(
|
|
583
|
+
function discoverDataLayout(project, baseDir, configPath) {
|
|
584
|
+
const config = readDataConfig(project, baseDir, configPath);
|
|
587
585
|
const configured = config?.instances ?? [{
|
|
588
586
|
name: "default",
|
|
589
587
|
dir: baseDir,
|
|
@@ -593,7 +591,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
593
591
|
const sourceRoots = [... /* @__PURE__ */new Set([baseDir, ...configured.map(instance => instance.dir)])];
|
|
594
592
|
assertNoInstanceFiles(sourceRoots);
|
|
595
593
|
if (config) {
|
|
596
|
-
assertNoUnclaimedNamespaces(
|
|
594
|
+
assertNoUnclaimedNamespaces(project, baseDir, config.path, configured.map(instance => instance.dir));
|
|
597
595
|
}
|
|
598
596
|
const instances = configured.map(instance => ({
|
|
599
597
|
name: instance.name,
|
|
@@ -607,7 +605,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
607
605
|
}));
|
|
608
606
|
const instanceDirs = new Set(instances.map(instance => instance.dir));
|
|
609
607
|
for (const instance of instances) {
|
|
610
|
-
instance.namespaces = discoverNamespaces(
|
|
608
|
+
instance.namespaces = discoverNamespaces(project, baseDir, instance, instanceDirs);
|
|
611
609
|
}
|
|
612
610
|
const namespaces = instances.flatMap(instance => instance.namespaces);
|
|
613
611
|
const namespaceOwners = /* @__PURE__ */new Map();
|
|
@@ -628,14 +626,14 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
628
626
|
tableOwners.set(namespace.table, namespace.instance);
|
|
629
627
|
}
|
|
630
628
|
const metadata = metadataPaths(baseDir);
|
|
631
|
-
const relations = relationTargets(
|
|
632
|
-
const columns = tableColumns(
|
|
629
|
+
const relations = relationTargets(project, metadata);
|
|
630
|
+
const columns = tableColumns(project, metadata, namespaces);
|
|
633
631
|
const relatedOwners = /* @__PURE__ */new Map();
|
|
634
632
|
for (const instance of instances) {
|
|
635
633
|
const tables = new Set(instance.namespaces.map(namespace => namespace.table).filter(table => table !== null));
|
|
636
634
|
const syncTables = new Set(tables);
|
|
637
635
|
for (const namespace of instance.namespaces) {
|
|
638
|
-
for (const table of aggregateTables(
|
|
636
|
+
for (const table of aggregateTables(project, namespace)) {
|
|
639
637
|
const owner = tableOwners.get(table) ?? relatedOwners.get(table);
|
|
640
638
|
if (owner && owner !== instance.name) {
|
|
641
639
|
throw new Error(`[on-zero] ${namespace.name} aggregates in instance '${instance.name}' reach table '${table}' owned by instance '${owner}'`);
|
|
@@ -644,7 +642,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
644
642
|
tables.add(table);
|
|
645
643
|
syncTables.add(table);
|
|
646
644
|
}
|
|
647
|
-
for (const reached of queriedTables(
|
|
645
|
+
for (const reached of queriedTables(project, namespace, relations)) {
|
|
648
646
|
const owner = tableOwners.get(reached.table) ?? relatedOwners.get(reached.table);
|
|
649
647
|
if (owner && owner !== instance.name) {
|
|
650
648
|
throw new Error(`[on-zero] ${namespace.name}.${reached.query} in instance '${instance.name}' reaches table '${reached.table}' owned by instance '${owner}'`);
|
|
@@ -667,7 +665,7 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
667
665
|
for (const instance of instances) {
|
|
668
666
|
const supportTables = new Set(instance.declaredSupportTables);
|
|
669
667
|
for (const namespace of instance.namespaces) {
|
|
670
|
-
for (const table of mutationSupportTables(
|
|
668
|
+
for (const table of mutationSupportTables(project, baseDir, sourceRoots, namespace)) {
|
|
671
669
|
if (tableOwners.has(table) || relatedOwners.has(table)) continue;
|
|
672
670
|
if (!instance.syncTables.includes(table)) {
|
|
673
671
|
supportTables.add(table);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["existsSync","readFileSync","readdirSync","statSync","basename","dirname","relative","resolve","sep","isSourceFile","name","endsWith","toImportPath","baseDir","path","split","join","replace","isWithin","root","child","startsWith","propertyName","ts","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","configPath","Error","source","createSourceFile","ScriptTarget","Latest","hasParseErrors","config","statement","statements","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","value","arguments","isObjectLiteralExpression","rootOptions","Map","option","properties","isPropertyAssignment","has","set","initializer","keys","instancesNode","get","instances","property","some","instance","dir","scope","supportTables","seen","Set","optionName","add","isArrayLiteralExpression","table","elements","push","isDirectory","length","duplicate","find","candidate","Boolean","parseDiagnostics","namespaceExportKinds","none","model","query","displayPath","console","warn","functions","exported","isVariableStatement","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","visiting","reachesQuery","node","isPropertyAccessExpression","helper","found","delete","forEachChild","mutationTable","namespace","schemaTable","firstArgument","isStringLiteralLike","visit","discoverNamespaces","instanceDirs","namespaces","entry","withFileTypes","sort","a","b","localeCompare","isFile","kinds","queryPath","modelPath","aggregatePath","sourcePaths","folder","hasQueries","hasMutations","hasAggregates","includes","filter","metadataPaths","paths","relations","databaseDir","relationTargets","path2","factory","isParenthesizedExpression","tableProperty","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","isVariableDeclaration","tableNames","foundColumns","inspect","argument","test","names","map","tableName","queriedTables","reached","rootTable","match","currentTable","nameArg","sourceTable","target","callback","key","helperRoot","queryRoot","aggregateTables","unwrap","current","isSatisfiesExpression","isAsExpression","tables","definitions","definition","fieldName","field","mutationSupportTables","sourceRoots","visited","scan","transaction","isImportDeclaration","isExportDeclaration","moduleSpecifier","specifier","unresolved","slice","assertNoInstanceFiles","roots","walk","assertNoUnclaimedNamespaces","instanceDir","discoverDataLayout","configured","syncTables","declaredSupportTables","namespaceOwners","owner","tableOwners","metadata","relatedOwners","namespaceImportPath"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["existsSync","readdirSync","statSync","basename","dirname","relative","resolve","sep","ts","isSourceFile","name","endsWith","toImportPath","baseDir","path","split","join","replace","isWithin","root","child","startsWith","propertyName","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","project","configPath","Error","source","sourceFile","hasParseErrors","config","statement","statements","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","value","arguments","isObjectLiteralExpression","rootOptions","Map","option","properties","isPropertyAssignment","has","set","initializer","keys","instancesNode","get","instances","property","some","instance","dir","scope","supportTables","seen","Set","optionName","add","isArrayLiteralExpression","table","elements","push","isDirectory","length","duplicate","find","candidate","namespaceExportKinds","none","model","query","displayPath","console","warn","functions","exported","isVariableStatement","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","visiting","reachesQuery","node","isPropertyAccessExpression","helper","found","delete","forEachChild","mutationTable","namespace","schemaTable","firstArgument","visit","discoverNamespaces","instanceDirs","namespaces","entry","withFileTypes","sort","a","b","localeCompare","isFile","kinds","queryPath","modelPath","aggregatePath","sourcePaths","folder","hasQueries","hasMutations","hasAggregates","includes","filter","Boolean","metadataPaths","paths","relations","databaseDir","relationTargets","path2","factory","isParenthesizedExpression","tableProperty","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","isVariableDeclaration","tableNames","foundColumns","inspect","argument","test","names","map","isSpreadAssignment","tableName","queriedTables","reached","rootTable","match","currentTable","nameArg","sourceTable","target","callback","key","helperRoot","queryRoot","aggregateTables","unwrap","current","isSatisfiesExpression","isAsExpression","tables","definitions","definition","fieldName","field","mutationSupportTables","sourceRoots","visited","scan","transaction","isImportDeclaration","isExportDeclaration","moduleSpecifier","specifier","unresolved","slice","assertNoInstanceFiles","roots","walk","assertNoUnclaimedNamespaces","instanceDir","discoverDataLayout","configured","syncTables","declaredSupportTables","namespaceOwners","owner","tableOwners","metadata","relatedOwners","namespaceImportPath"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|