on-zero 0.16.9 → 0.16.10
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/generate-layout.cjs +53 -0
- package/dist/cjs/generate-layout.native.js +179 -42
- package/dist/cjs/generate-layout.native.js.map +1 -1
- package/dist/cjs/generate-lite.cjs +18 -0
- package/dist/cjs/generate-lite.native.js +339 -281
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +37 -0
- package/dist/cjs/generate-lite.test.native.js +38 -0
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +25 -0
- package/dist/cjs/generate.test.native.js +25 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/useQuery.aggregate.zero.test.cjs +117 -0
- package/dist/cjs/useQuery.aggregate.zero.test.native.js +133 -0
- package/dist/cjs/useQuery.aggregate.zero.test.native.js.map +1 -0
- package/dist/esm/generate-layout.mjs +53 -0
- package/dist/esm/generate-layout.mjs.map +1 -1
- package/dist/esm/generate-layout.native.js +179 -42
- package/dist/esm/generate-layout.native.js.map +1 -1
- package/dist/esm/generate-lite.mjs +18 -0
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +339 -281
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +37 -0
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +38 -0
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +25 -0
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +25 -0
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/useQuery.aggregate.zero.test.mjs +118 -0
- package/dist/esm/useQuery.aggregate.zero.test.mjs.map +1 -0
- package/dist/esm/useQuery.aggregate.zero.test.native.js +131 -0
- package/dist/esm/useQuery.aggregate.zero.test.native.js.map +1 -0
- package/package.json +2 -2
- package/src/generate-layout.ts +89 -0
- package/src/generate-lite.test.ts +35 -0
- package/src/generate-lite.ts +25 -0
- package/src/generate.test.ts +31 -0
- package/src/useQuery.aggregate.zero.test.tsx +115 -0
- 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/useQuery.aggregate.zero.test.d.ts +5 -0
- package/types/useQuery.aggregate.zero.test.d.ts.map +1 -0
|
@@ -462,6 +462,50 @@ function queriedTables(ts, namespace, relations) {
|
|
|
462
462
|
}
|
|
463
463
|
return reached;
|
|
464
464
|
}
|
|
465
|
+
function aggregateTables(ts, namespace) {
|
|
466
|
+
if (!namespace.aggregatePath) return [];
|
|
467
|
+
const source = ts.createSourceFile(namespace.aggregatePath, readFileSync(namespace.aggregatePath, "utf8"), ts.ScriptTarget.Latest, true);
|
|
468
|
+
const unwrap = node => {
|
|
469
|
+
let current = node;
|
|
470
|
+
while (ts.isSatisfiesExpression(current) || ts.isAsExpression(current) || ts.isParenthesizedExpression(current)) {
|
|
471
|
+
current = current.expression;
|
|
472
|
+
}
|
|
473
|
+
return current;
|
|
474
|
+
};
|
|
475
|
+
const tables = /* @__PURE__ */new Set();
|
|
476
|
+
for (const statement of source.statements) {
|
|
477
|
+
if (!ts.isVariableStatement(statement)) continue;
|
|
478
|
+
if (!statement.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword)) {
|
|
479
|
+
continue;
|
|
480
|
+
}
|
|
481
|
+
for (const declaration of statement.declarationList.declarations) {
|
|
482
|
+
if (!ts.isIdentifier(declaration.name) || declaration.name.text !== "aggregates" || !declaration.initializer) {
|
|
483
|
+
continue;
|
|
484
|
+
}
|
|
485
|
+
const definitions = unwrap(declaration.initializer);
|
|
486
|
+
if (!ts.isObjectLiteralExpression(definitions)) {
|
|
487
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} must export aggregates as an object literal`);
|
|
488
|
+
}
|
|
489
|
+
for (const property of definitions.properties) {
|
|
490
|
+
if (!ts.isPropertyAssignment(property)) {
|
|
491
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate definitions must use explicit properties`);
|
|
492
|
+
}
|
|
493
|
+
const definition = unwrap(property.initializer);
|
|
494
|
+
if (!ts.isObjectLiteralExpression(definition)) {
|
|
495
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} must be an object literal`);
|
|
496
|
+
}
|
|
497
|
+
for (const fieldName of ["source", "target"]) {
|
|
498
|
+
const field = definition.properties.find(candidate => ts.isPropertyAssignment(candidate) && propertyName(ts, candidate.name) === fieldName);
|
|
499
|
+
if (!field || !ts.isStringLiteralLike(unwrap(field.initializer))) {
|
|
500
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} ${fieldName} must be a string literal`);
|
|
501
|
+
}
|
|
502
|
+
tables.add(unwrap(field.initializer).text);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
return [...tables].sort();
|
|
508
|
+
}
|
|
465
509
|
function mutationSupportTables(ts, baseDir, sourceRoots, namespace) {
|
|
466
510
|
if (!namespace.modelPath) return [];
|
|
467
511
|
const tables = /* @__PURE__ */new Set();
|
|
@@ -591,6 +635,15 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
591
635
|
const tables = new Set(instance.namespaces.map(namespace => namespace.table).filter(table => table !== null));
|
|
592
636
|
const syncTables = new Set(tables);
|
|
593
637
|
for (const namespace of instance.namespaces) {
|
|
638
|
+
for (const table of aggregateTables(ts, namespace)) {
|
|
639
|
+
const owner = tableOwners.get(table) ?? relatedOwners.get(table);
|
|
640
|
+
if (owner && owner !== instance.name) {
|
|
641
|
+
throw new Error(`[on-zero] ${namespace.name} aggregates in instance '${instance.name}' reach table '${table}' owned by instance '${owner}'`);
|
|
642
|
+
}
|
|
643
|
+
relatedOwners.set(table, instance.name);
|
|
644
|
+
tables.add(table);
|
|
645
|
+
syncTables.add(table);
|
|
646
|
+
}
|
|
594
647
|
for (const reached of queriedTables(ts, namespace, relations)) {
|
|
595
648
|
const owner = tableOwners.get(reached.table) ?? relatedOwners.get(reached.table);
|
|
596
649
|
if (owner && owner !== instance.name) {
|
|
@@ -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","mutationSupportTables","sourceRoots","tables","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","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":[]}
|
|
@@ -943,6 +943,114 @@ function queriedTables(ts, namespace, relations) {
|
|
|
943
943
|
}
|
|
944
944
|
return reached;
|
|
945
945
|
}
|
|
946
|
+
function aggregateTables(ts, namespace) {
|
|
947
|
+
if (!namespace.aggregatePath) return [];
|
|
948
|
+
var source = ts.createSourceFile(namespace.aggregatePath, readFileSync(namespace.aggregatePath, "utf8"), ts.ScriptTarget.Latest, true);
|
|
949
|
+
var unwrap = function unwrap2(node) {
|
|
950
|
+
var current = node;
|
|
951
|
+
while (ts.isSatisfiesExpression(current) || ts.isAsExpression(current) || ts.isParenthesizedExpression(current)) {
|
|
952
|
+
current = current.expression;
|
|
953
|
+
}
|
|
954
|
+
return current;
|
|
955
|
+
};
|
|
956
|
+
var tables = /* @__PURE__ */new Set();
|
|
957
|
+
var _iteratorNormalCompletion = true,
|
|
958
|
+
_didIteratorError = false,
|
|
959
|
+
_iteratorError = void 0;
|
|
960
|
+
try {
|
|
961
|
+
for (var _iterator = source.statements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
962
|
+
var statement = _step.value;
|
|
963
|
+
var _statement_modifiers;
|
|
964
|
+
if (!ts.isVariableStatement(statement)) continue;
|
|
965
|
+
if (!((_statement_modifiers = statement.modifiers) === null || _statement_modifiers === void 0 ? void 0 : _statement_modifiers.some(function (modifier) {
|
|
966
|
+
return modifier.kind === ts.SyntaxKind.ExportKeyword;
|
|
967
|
+
}))) {
|
|
968
|
+
continue;
|
|
969
|
+
}
|
|
970
|
+
var _iteratorNormalCompletion1 = true,
|
|
971
|
+
_didIteratorError1 = false,
|
|
972
|
+
_iteratorError1 = void 0;
|
|
973
|
+
try {
|
|
974
|
+
for (var _iterator1 = statement.declarationList.declarations[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
975
|
+
var declaration = _step1.value;
|
|
976
|
+
if (!ts.isIdentifier(declaration.name) || declaration.name.text !== "aggregates" || !declaration.initializer) {
|
|
977
|
+
continue;
|
|
978
|
+
}
|
|
979
|
+
var definitions = unwrap(declaration.initializer);
|
|
980
|
+
if (!ts.isObjectLiteralExpression(definitions)) {
|
|
981
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} must export aggregates as an object literal`);
|
|
982
|
+
}
|
|
983
|
+
var _iteratorNormalCompletion2 = true,
|
|
984
|
+
_didIteratorError2 = false,
|
|
985
|
+
_iteratorError2 = void 0;
|
|
986
|
+
try {
|
|
987
|
+
for (var _iterator2 = definitions.properties[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
988
|
+
var _loop = function (_i2, _iter2) {
|
|
989
|
+
var fieldName = _iter2[_i2];
|
|
990
|
+
var field = definition.properties.find(function (candidate) {
|
|
991
|
+
return ts.isPropertyAssignment(candidate) && propertyName(ts, candidate.name) === fieldName;
|
|
992
|
+
});
|
|
993
|
+
if (!field || !ts.isStringLiteralLike(unwrap(field.initializer))) {
|
|
994
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} ${fieldName} must be a string literal`);
|
|
995
|
+
}
|
|
996
|
+
tables.add(unwrap(field.initializer).text);
|
|
997
|
+
};
|
|
998
|
+
var property = _step2.value;
|
|
999
|
+
if (!ts.isPropertyAssignment(property)) {
|
|
1000
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate definitions must use explicit properties`);
|
|
1001
|
+
}
|
|
1002
|
+
var definition = unwrap(property.initializer);
|
|
1003
|
+
if (!ts.isObjectLiteralExpression(definition)) {
|
|
1004
|
+
throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} must be an object literal`);
|
|
1005
|
+
}
|
|
1006
|
+
for (var _i = 0, _iter = ["source", "target"]; _i < _iter.length; _i++) _loop(_i, _iter);
|
|
1007
|
+
}
|
|
1008
|
+
} catch (err) {
|
|
1009
|
+
_didIteratorError2 = true;
|
|
1010
|
+
_iteratorError2 = err;
|
|
1011
|
+
} finally {
|
|
1012
|
+
try {
|
|
1013
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
1014
|
+
_iterator2.return();
|
|
1015
|
+
}
|
|
1016
|
+
} finally {
|
|
1017
|
+
if (_didIteratorError2) {
|
|
1018
|
+
throw _iteratorError2;
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
} catch (err) {
|
|
1024
|
+
_didIteratorError1 = true;
|
|
1025
|
+
_iteratorError1 = err;
|
|
1026
|
+
} finally {
|
|
1027
|
+
try {
|
|
1028
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
1029
|
+
_iterator1.return();
|
|
1030
|
+
}
|
|
1031
|
+
} finally {
|
|
1032
|
+
if (_didIteratorError1) {
|
|
1033
|
+
throw _iteratorError1;
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
} catch (err) {
|
|
1039
|
+
_didIteratorError = true;
|
|
1040
|
+
_iteratorError = err;
|
|
1041
|
+
} finally {
|
|
1042
|
+
try {
|
|
1043
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
1044
|
+
_iterator.return();
|
|
1045
|
+
}
|
|
1046
|
+
} finally {
|
|
1047
|
+
if (_didIteratorError) {
|
|
1048
|
+
throw _iteratorError;
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
return [...tables].sort();
|
|
1053
|
+
}
|
|
946
1054
|
function mutationSupportTables(ts, baseDir, sourceRoots, namespace) {
|
|
947
1055
|
if (!namespace.modelPath) return [];
|
|
948
1056
|
var tables = /* @__PURE__ */new Set();
|
|
@@ -1226,16 +1334,16 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
1226
1334
|
_didIteratorError5 = false,
|
|
1227
1335
|
_iteratorError5 = void 0;
|
|
1228
1336
|
try {
|
|
1229
|
-
for (var _iterator5 =
|
|
1230
|
-
var
|
|
1337
|
+
for (var _iterator5 = aggregateTables(ts, namespace2)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
|
|
1338
|
+
var table = _step5.value;
|
|
1231
1339
|
var _tableOwners_get;
|
|
1232
|
-
var owner2 = (_tableOwners_get = tableOwners.get(
|
|
1340
|
+
var owner2 = (_tableOwners_get = tableOwners.get(table)) !== null && _tableOwners_get !== void 0 ? _tableOwners_get : relatedOwners.get(table);
|
|
1233
1341
|
if (owner2 && owner2 !== instance1.name) {
|
|
1234
|
-
throw new Error(`[on-zero] ${namespace2.name}
|
|
1342
|
+
throw new Error(`[on-zero] ${namespace2.name} aggregates in instance '${instance1.name}' reach table '${table}' owned by instance '${owner2}'`);
|
|
1235
1343
|
}
|
|
1236
|
-
relatedOwners.set(
|
|
1237
|
-
|
|
1238
|
-
syncTables.add(
|
|
1344
|
+
relatedOwners.set(table, instance1.name);
|
|
1345
|
+
tables.add(table);
|
|
1346
|
+
syncTables.add(table);
|
|
1239
1347
|
}
|
|
1240
1348
|
} catch (err) {
|
|
1241
1349
|
_didIteratorError5 = true;
|
|
@@ -1251,6 +1359,35 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
1251
1359
|
}
|
|
1252
1360
|
}
|
|
1253
1361
|
}
|
|
1362
|
+
var _iteratorNormalCompletion6 = true,
|
|
1363
|
+
_didIteratorError6 = false,
|
|
1364
|
+
_iteratorError6 = void 0;
|
|
1365
|
+
try {
|
|
1366
|
+
for (var _iterator6 = queriedTables(ts, namespace2, relations)[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
|
|
1367
|
+
var reached = _step6.value;
|
|
1368
|
+
var _tableOwners_get1;
|
|
1369
|
+
var owner3 = (_tableOwners_get1 = tableOwners.get(reached.table)) !== null && _tableOwners_get1 !== void 0 ? _tableOwners_get1 : relatedOwners.get(reached.table);
|
|
1370
|
+
if (owner3 && owner3 !== instance1.name) {
|
|
1371
|
+
throw new Error(`[on-zero] ${namespace2.name}.${reached.query} in instance '${instance1.name}' reaches table '${reached.table}' owned by instance '${owner3}'`);
|
|
1372
|
+
}
|
|
1373
|
+
relatedOwners.set(reached.table, instance1.name);
|
|
1374
|
+
if (reached.root) tables.add(reached.table);
|
|
1375
|
+
syncTables.add(reached.table);
|
|
1376
|
+
}
|
|
1377
|
+
} catch (err) {
|
|
1378
|
+
_didIteratorError6 = true;
|
|
1379
|
+
_iteratorError6 = err;
|
|
1380
|
+
} finally {
|
|
1381
|
+
try {
|
|
1382
|
+
if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
|
|
1383
|
+
_iterator6.return();
|
|
1384
|
+
}
|
|
1385
|
+
} finally {
|
|
1386
|
+
if (_didIteratorError6) {
|
|
1387
|
+
throw _iteratorError6;
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1254
1391
|
}
|
|
1255
1392
|
} catch (err) {
|
|
1256
1393
|
_didIteratorError4 = true;
|
|
@@ -1269,28 +1406,28 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
1269
1406
|
instance1.tables = [...tables].sort();
|
|
1270
1407
|
instance1.syncTables = [...syncTables].sort();
|
|
1271
1408
|
if (instance1.scope) {
|
|
1272
|
-
var
|
|
1273
|
-
|
|
1274
|
-
|
|
1409
|
+
var _iteratorNormalCompletion7 = true,
|
|
1410
|
+
_didIteratorError7 = false,
|
|
1411
|
+
_iteratorError7 = void 0;
|
|
1275
1412
|
try {
|
|
1276
|
-
for (var
|
|
1277
|
-
var
|
|
1413
|
+
for (var _iterator7 = instance1.syncTables[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
|
|
1414
|
+
var table1 = _step7.value;
|
|
1278
1415
|
var _columns_get;
|
|
1279
|
-
if (!((_columns_get = columns.get(
|
|
1280
|
-
throw new Error(`[on-zero] table '${
|
|
1416
|
+
if (!((_columns_get = columns.get(table1)) === null || _columns_get === void 0 ? void 0 : _columns_get.has(instance1.scope))) {
|
|
1417
|
+
throw new Error(`[on-zero] table '${table1}' in instance '${instance1.name}' is missing scope column '${instance1.scope}'`);
|
|
1281
1418
|
}
|
|
1282
1419
|
}
|
|
1283
1420
|
} catch (err) {
|
|
1284
|
-
|
|
1285
|
-
|
|
1421
|
+
_didIteratorError7 = true;
|
|
1422
|
+
_iteratorError7 = err;
|
|
1286
1423
|
} finally {
|
|
1287
1424
|
try {
|
|
1288
|
-
if (!
|
|
1289
|
-
|
|
1425
|
+
if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
|
|
1426
|
+
_iterator7.return();
|
|
1290
1427
|
}
|
|
1291
1428
|
} finally {
|
|
1292
|
-
if (
|
|
1293
|
-
throw
|
|
1429
|
+
if (_didIteratorError7) {
|
|
1430
|
+
throw _iteratorError7;
|
|
1294
1431
|
}
|
|
1295
1432
|
}
|
|
1296
1433
|
}
|
|
@@ -1310,19 +1447,19 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
1310
1447
|
}
|
|
1311
1448
|
}
|
|
1312
1449
|
}
|
|
1313
|
-
var
|
|
1314
|
-
|
|
1315
|
-
|
|
1450
|
+
var _iteratorNormalCompletion8 = true,
|
|
1451
|
+
_didIteratorError8 = false,
|
|
1452
|
+
_iteratorError8 = void 0;
|
|
1316
1453
|
try {
|
|
1317
1454
|
var _loop = function () {
|
|
1318
|
-
var instance2 =
|
|
1455
|
+
var instance2 = _step8.value;
|
|
1319
1456
|
var supportTables = new Set(instance2.declaredSupportTables);
|
|
1320
|
-
var
|
|
1321
|
-
|
|
1322
|
-
|
|
1457
|
+
var _iteratorNormalCompletion9 = true,
|
|
1458
|
+
_didIteratorError9 = false,
|
|
1459
|
+
_iteratorError9 = void 0;
|
|
1323
1460
|
try {
|
|
1324
|
-
for (var
|
|
1325
|
-
var namespace3 =
|
|
1461
|
+
for (var _iterator9 = instance2.namespaces[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
|
|
1462
|
+
var namespace3 = _step9.value;
|
|
1326
1463
|
var _iteratorNormalCompletion12 = true,
|
|
1327
1464
|
_didIteratorError12 = false,
|
|
1328
1465
|
_iteratorError12 = void 0;
|
|
@@ -1350,16 +1487,16 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
1350
1487
|
}
|
|
1351
1488
|
}
|
|
1352
1489
|
} catch (err) {
|
|
1353
|
-
|
|
1354
|
-
|
|
1490
|
+
_didIteratorError9 = true;
|
|
1491
|
+
_iteratorError9 = err;
|
|
1355
1492
|
} finally {
|
|
1356
1493
|
try {
|
|
1357
|
-
if (!
|
|
1358
|
-
|
|
1494
|
+
if (!_iteratorNormalCompletion9 && _iterator9.return != null) {
|
|
1495
|
+
_iterator9.return();
|
|
1359
1496
|
}
|
|
1360
1497
|
} finally {
|
|
1361
|
-
if (
|
|
1362
|
-
throw
|
|
1498
|
+
if (_didIteratorError9) {
|
|
1499
|
+
throw _iteratorError9;
|
|
1363
1500
|
}
|
|
1364
1501
|
}
|
|
1365
1502
|
}
|
|
@@ -1367,18 +1504,18 @@ function discoverDataLayout(ts, baseDir, configPath) {
|
|
|
1367
1504
|
return !instance2.syncTables.includes(table3);
|
|
1368
1505
|
}).sort();
|
|
1369
1506
|
};
|
|
1370
|
-
for (var
|
|
1507
|
+
for (var _iterator8 = instances[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) _loop();
|
|
1371
1508
|
} catch (err) {
|
|
1372
|
-
|
|
1373
|
-
|
|
1509
|
+
_didIteratorError8 = true;
|
|
1510
|
+
_iteratorError8 = err;
|
|
1374
1511
|
} finally {
|
|
1375
1512
|
try {
|
|
1376
|
-
if (!
|
|
1377
|
-
|
|
1513
|
+
if (!_iteratorNormalCompletion8 && _iterator8.return != null) {
|
|
1514
|
+
_iterator8.return();
|
|
1378
1515
|
}
|
|
1379
1516
|
} finally {
|
|
1380
|
-
if (
|
|
1381
|
-
throw
|
|
1517
|
+
if (_didIteratorError8) {
|
|
1518
|
+
throw _iteratorError8;
|
|
1382
1519
|
}
|
|
1383
1520
|
}
|
|
1384
1521
|
}
|