编译选项

This commit is contained in:
Xu Chang 2022-08-18 19:56:18 +08:00
parent 2bb21d7f59
commit 627e0e1ec1
18 changed files with 211 additions and 725 deletions

View File

@ -1,23 +1,9 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.OakError = void 0;
var tslib_1 = require("tslib");
var OakError = /** @class */ (function (_super) {
__extends(OakError, _super);
tslib_1.__extends(OakError, _super);
function OakError(level, def, message) {
var _this = _super.call(this, message ? message : def && def[1]) || this;
_this.$$level = level;

View File

@ -1,74 +1,13 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildSchema = exports.analyzeEntities = void 0;
var path_1 = __importDefault(require("path"));
var assert_1 = __importDefault(require("assert"));
var tslib_1 = require("tslib");
var path_1 = tslib_1.__importDefault(require("path"));
var assert_1 = tslib_1.__importDefault(require("assert"));
var fs_1 = require("fs");
var fs_extra_1 = require("fs-extra");
var lodash_1 = require("lodash");
var ts = __importStar(require("typescript"));
var ts = tslib_1.__importStar(require("typescript"));
var factory = ts.factory;
var env_1 = require("./env");
var string_1 = require("../utils/string");
@ -155,7 +94,7 @@ function pushStatementIntoActionAst(moduleName, node, sourceFile) {
else {
(0, lodash_1.assign)(ActionAsts, (_a = {},
_a[moduleName] = {
statements: __spreadArray(__spreadArray([], __read(ActionImportStatements()), false), [node], false),
statements: tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(ActionImportStatements()), false), [node], false),
sourceFile: sourceFile,
importedFrom: {},
// actionNames,
@ -188,7 +127,7 @@ function checkActionDefNameConsistent(filename, actionDefNode) {
(0, assert_1.default)(ts.isTypeReferenceNode(type));
var typeArguments = type.typeArguments;
(0, assert_1.default)(typeArguments.length === 2);
var _a = __read(typeArguments, 2), actionNode = _a[0], stateNode = _a[1];
var _a = tslib_1.__read(typeArguments, 2), actionNode = _a[0], stateNode = _a[1];
(0, assert_1.default)(ts.isIdentifier(name), "\u6587\u4EF6".concat(filename, "\u4E2D\u7684ActionDef").concat(name.text, "\u4E0D\u662F\u4E00\u4E2A\u6709\u6548\u7684\u53D8\u91CF"));
(0, assert_1.default)(name.text.endsWith('ActionDef'), "\u6587\u4EF6".concat(filename, "\u4E2D\u7684ActionDef").concat(name.text, "\u672A\u4EE5ActionDef\u7ED3\u5C3E"));
(0, assert_1.default)(ts.isTypeReferenceNode(actionNode) && ts.isTypeReferenceNode(stateNode), "\u6587\u4EF6".concat(filename, "\u4E2D\u7684ActionDef").concat(name.text, "\u7C7B\u578B\u58F0\u660E\u4E2D\u7684action\u548Cstate\u975E\u6CD5"));
@ -271,7 +210,7 @@ function dealWithActions(moduleName, filename, node, program) {
(0, assert_1.default)((0, lodash_1.intersection)(actionNames, env_1.RESERVED_ENTITIES).length === 0, "".concat(filename, "\u4E2D\u7684Action\u547D\u540D\u4E0D\u80FD\u662F\u300C").concat(RESERVED_ACTION_NAMES.join(','), "\u300D\u4E4B\u4E00"));
node.types.forEach(function (ele) {
if (ts.isTypeReferenceNode(ele)) {
actionTexts.push.apply(actionTexts, __spreadArray([], __read(getStringTextFromUnionStringLiterals(moduleName, filename, ele, program)), false));
actionTexts.push.apply(actionTexts, tslib_1.__spreadArray([], tslib_1.__read(getStringTextFromUnionStringLiterals(moduleName, filename, ele, program)), false));
}
else {
(0, assert_1.default)(ts.isLiteralTypeNode(ele) && ts.isStringLiteral(ele.literal), "\u3010".concat(moduleName, "\u3011action\u7684\u5B9A\u4E49\u65E2\u975EType\u4E5F\u4E0D\u662Fstring"));
@ -283,7 +222,7 @@ function dealWithActions(moduleName, filename, node, program) {
if (ts.isIdentifier(node.typeName)) {
(0, assert_1.default)(!RESERVED_ACTION_NAMES.includes(node.typeName.text), "".concat(filename, "\u4E2D\u7684Action\u547D\u540D\u4E0D\u80FD\u662F\u300C").concat(RESERVED_ACTION_NAMES.join(','), "\u300D\u4E4B\u4E00"));
}
actionTexts.push.apply(actionTexts, __spreadArray([], __read(getStringTextFromUnionStringLiterals(moduleName, filename, node, program)), false));
actionTexts.push.apply(actionTexts, tslib_1.__spreadArray([], tslib_1.__read(getStringTextFromUnionStringLiterals(moduleName, filename, node, program)), false));
}
else {
(0, assert_1.default)(ts.isLiteralTypeNode(node) && ts.isStringLiteral(node.literal), "\u3010".concat(moduleName, "\u3011action\u7684\u5B9A\u4E49\u65E2\u975EType\u4E5F\u4E0D\u662Fstring"));
@ -436,7 +375,7 @@ function analyzeEntity(filename, path, program) {
if (type.typeName.text === 'String'
&& typeArguments
&& typeArguments.length === 1) {
var _c = __read(typeArguments, 1), node_1 = _c[0];
var _c = tslib_1.__read(typeArguments, 1), node_1 = _c[0];
if (ts.isLiteralTypeNode(node_1) && ts.isNumericLiteral(node_1.literal)) {
if (parseInt(node_1.literal.text) > 32) {
console.warn("\u300C\u300D\u4E2Dentity\u5C5E\u6027\u5B9A\u4E49\u7684\u957F\u5EA6\u5927\u4E8E32\uFF0C\u8BF7\u786E\u8BA4\u5B83\u4E0D\u662F\u4E00\u4E2A\u53CD\u6307\u5BF9\u8C61");
@ -454,7 +393,7 @@ function analyzeEntity(filename, path, program) {
if (type.typeName.text === 'String'
&& typeArguments
&& typeArguments.length === 1) {
var _d = __read(typeArguments, 1), node_2 = _d[0];
var _d = tslib_1.__read(typeArguments, 1), node_2 = _d[0];
if (ts.isLiteralTypeNode(node_2) && ts.isNumericLiteral(node_2.literal)) {
if (parseInt(node_2.literal.text) !== 64) {
console.warn("\u300C".concat(filename, "\u300D\u4E2DentityId\u5C5E\u6027\u5B9A\u4E49\u7684\u957F\u5EA6\u4E0D\u7B49\u4E8E64\uFF0C\u8BF7\u786E\u8BA4\u5B83\u4E0D\u662F\u4E00\u4E2A\u53CD\u6307\u5BF9\u8C61"));
@ -545,7 +484,7 @@ function analyzeEntity(filename, path, program) {
checkActionDefNameConsistent(filename, declaration);
var typeArguments = declaration.type.typeArguments;
(0, assert_1.default)(typeArguments.length === 2);
var _a = __read(typeArguments, 2), actionNode = _a[0], stateNode = _a[1];
var _a = tslib_1.__read(typeArguments, 2), actionNode = _a[0], stateNode = _a[1];
var checker = program.getTypeChecker();
var symbol = checker.getSymbolAtLocation(actionNode.typeName);
var declaration2_1 = symbol.getDeclarations()[0];
@ -664,7 +603,7 @@ function analyzeEntity(filename, path, program) {
var text = typeName.text;
var text2_1 = text === 'Schema' ? entity : text;
var manyToOneItem = manyToOneSet && manyToOneSet.find(function (_a) {
var _b = __read(_a, 2), refEntity = _b[0], attrName = _b[1];
var _b = tslib_1.__read(_a, 2), refEntity = _b[0], attrName = _b[1];
return refEntity === text2_1 && attrName === name_1.text;
});
if (!manyToOneItem) {
@ -813,7 +752,7 @@ function constructSchema(statements, entity) {
var text = typeName.text;
var text2_2 = text === 'Schema' ? entity : text;
var manyToOneItem = manyToOneSet && manyToOneSet.find(function (_a) {
var _b = __read(_a, 2), refEntity = _b[0], attrName = _b[1];
var _b = tslib_1.__read(_a, 2), refEntity = _b[0], attrName = _b[1];
return refEntity === text2_2 && attrName === attrName;
});
if (manyToOneItem) {
@ -868,7 +807,7 @@ function constructSchema(statements, entity) {
}
};
try {
for (var schemaAttrs_1 = __values(schemaAttrs), schemaAttrs_1_1 = schemaAttrs_1.next(); !schemaAttrs_1_1.done; schemaAttrs_1_1 = schemaAttrs_1.next()) {
for (var schemaAttrs_1 = tslib_1.__values(schemaAttrs), schemaAttrs_1_1 = schemaAttrs_1.next(); !schemaAttrs_1_1.done; schemaAttrs_1_1 = schemaAttrs_1.next()) {
var attr = schemaAttrs_1_1.value;
_loop_1(attr);
}
@ -891,9 +830,9 @@ function constructSchema(statements, entity) {
var foreignKeySet = {};
if (oneToManySet) {
try {
for (var oneToManySet_1 = __values(oneToManySet), oneToManySet_1_1 = oneToManySet_1.next(); !oneToManySet_1_1.done; oneToManySet_1_1 = oneToManySet_1.next()) {
for (var oneToManySet_1 = tslib_1.__values(oneToManySet), oneToManySet_1_1 = oneToManySet_1.next(); !oneToManySet_1_1.done; oneToManySet_1_1 = oneToManySet_1.next()) {
var oneToManyItem = oneToManySet_1_1.value;
var _g = __read(oneToManyItem, 2), entityName = _g[0], foreignKey = _g[1];
var _g = tslib_1.__read(oneToManyItem, 2), entityName = _g[0], foreignKey = _g[1];
if (referenceEntities.indexOf(entityName) === -1) {
referenceEntities.push(entityName);
}
@ -930,7 +869,7 @@ function constructSchema(statements, entity) {
});
// 在这里把需要直接拷贝过来的语句写入
if (SchemaAsts[entity]) {
statements.push.apply(statements, __spreadArray([], __read(SchemaAsts[entity].statements), false));
statements.push.apply(statements, tslib_1.__spreadArray([], tslib_1.__read(SchemaAsts[entity].statements), false));
}
// if (keys(foreignKeySet).length > 0) {
// for (const fkItem in foreignKeySet) {
@ -1050,7 +989,7 @@ function constructFilter(statements, entity) {
default: {
var text2_3 = text === 'Schema' ? entity : text;
var manyToOneItem = manyToOneSet && manyToOneSet.find(function (_a) {
var _b = __read(_a, 1), refEntity = _b[0];
var _b = tslib_1.__read(_a, 1), refEntity = _b[0];
return refEntity === text2_3;
});
if (manyToOneItem) {
@ -1085,7 +1024,7 @@ function constructFilter(statements, entity) {
}
};
try {
for (var schemaAttrs_2 = __values(schemaAttrs), schemaAttrs_2_1 = schemaAttrs_2.next(); !schemaAttrs_2_1.done; schemaAttrs_2_1 = schemaAttrs_2.next()) {
for (var schemaAttrs_2 = tslib_1.__values(schemaAttrs), schemaAttrs_2_1 = schemaAttrs_2.next(); !schemaAttrs_2_1.done; schemaAttrs_2_1 = schemaAttrs_2.next()) {
var attr = schemaAttrs_2_1.value;
_loop_3(attr);
}
@ -1174,7 +1113,7 @@ function constructProjection(statements, entity) {
default: {
var text2_4 = text === 'Schema' ? entity : text;
var manyToOneItem = manyToOneSet && manyToOneSet.find(function (_a) {
var _b = __read(_a, 1), refEntity = _b[0];
var _b = tslib_1.__read(_a, 1), refEntity = _b[0];
return refEntity === text2_4;
});
if (manyToOneItem) {
@ -1213,7 +1152,7 @@ function constructProjection(statements, entity) {
}
};
try {
for (var schemaAttrs_3 = __values(schemaAttrs), schemaAttrs_3_1 = schemaAttrs_3.next(); !schemaAttrs_3_1.done; schemaAttrs_3_1 = schemaAttrs_3.next()) {
for (var schemaAttrs_3 = tslib_1.__values(schemaAttrs), schemaAttrs_3_1 = schemaAttrs_3.next(); !schemaAttrs_3_1.done; schemaAttrs_3_1 = schemaAttrs_3.next()) {
var attr = schemaAttrs_3_1.value;
_loop_4(attr);
}
@ -1245,9 +1184,9 @@ function constructProjection(statements, entity) {
if (oneToManySet) {
var foreignKeySet = {};
try {
for (var oneToManySet_2 = __values(oneToManySet), oneToManySet_2_1 = oneToManySet_2.next(); !oneToManySet_2_1.done; oneToManySet_2_1 = oneToManySet_2.next()) {
for (var oneToManySet_2 = tslib_1.__values(oneToManySet), oneToManySet_2_1 = oneToManySet_2.next(); !oneToManySet_2_1.done; oneToManySet_2_1 = oneToManySet_2.next()) {
var oneToManyItem = oneToManySet_2_1.value;
var _h = __read(oneToManyItem, 2), entityName = _h[0], foreignKey = _h[1];
var _h = tslib_1.__read(oneToManyItem, 2), entityName = _h[0], foreignKey = _h[1];
if (foreignKeySet.hasOwnProperty(entityName)) {
foreignKeySet[entityName].push(foreignKey);
}
@ -1301,7 +1240,7 @@ function constructProjection(statements, entity) {
// Projection正常查询的投影
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("Projection"), undefined, factory.createIntersectionTypeNode([
factory.createTypeLiteralNode(MetaPropertySignaturs.concat(properties.map(function (_a) {
var _b = __read(_a, 3), n = _b[0], q = _b[1], v = _b[2];
var _b = tslib_1.__read(_a, 3), n = _b[0], q = _b[1], v = _b[2];
return factory.createPropertySignature(undefined, n, q ? undefined : factory.createToken(ts.SyntaxKind.QuestionToken), v || factory.createLiteralTypeNode(factory.createNumericLiteral("1")));
}))),
exprNode,
@ -1309,7 +1248,7 @@ function constructProjection(statements, entity) {
// ExportProjection下载查询的投影
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("ExportProjection"), undefined, factory.createIntersectionTypeNode([
factory.createTypeLiteralNode(MetaPropertySignaturs.concat(properties.map(function (_a) {
var _b = __read(_a, 4), n = _b[0], q = _b[1], v = _b[2], v2 = _b[3];
var _b = tslib_1.__read(_a, 4), n = _b[0], q = _b[1], v = _b[2], v2 = _b[3];
return factory.createPropertySignature(undefined, n, factory.createToken(ts.SyntaxKind.QuestionToken), v2 || factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));
}))),
exprNode,
@ -1434,10 +1373,10 @@ function constructQuery(statements, entity) {
var manyToSelf = false;
if (manyToOneSet) {
(0, lodash_1.uniqBy)(manyToOneSet, function (_a) {
var _b = __read(_a, 1), a = _b[0];
var _b = tslib_1.__read(_a, 1), a = _b[0];
return a;
}).forEach(function (_a) {
var _b = __read(_a, 2), oneEntity = _b[0], foreignKey = _b[1];
var _b = tslib_1.__read(_a, 2), oneEntity = _b[0], foreignKey = _b[1];
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("".concat(oneEntity, "IdSubQuery")), undefined, factory.createTypeReferenceNode(factory.createIdentifier("Selection"), [factory.createTypeReferenceNode(factory.createIdentifier("".concat(oneEntity, "IdProjection")), undefined)])));
if (oneEntity === entity) {
manyToSelf = true;
@ -1489,7 +1428,7 @@ function constructSorter(statements, entity) {
default: {
var text2_5 = text === 'Schema' ? entity : text;
var manyToOneItem = manyToOneSet && manyToOneSet.find(function (_a) {
var _b = __read(_a, 1), refEntity = _b[0];
var _b = tslib_1.__read(_a, 1), refEntity = _b[0];
return refEntity === text2_5;
});
if (manyToOneItem) {
@ -1515,7 +1454,7 @@ function constructSorter(statements, entity) {
}
};
try {
for (var schemaAttrs_4 = __values(schemaAttrs), schemaAttrs_4_1 = schemaAttrs_4.next(); !schemaAttrs_4_1.done; schemaAttrs_4_1 = schemaAttrs_4.next()) {
for (var schemaAttrs_4 = tslib_1.__values(schemaAttrs), schemaAttrs_4_1 = schemaAttrs_4.next(); !schemaAttrs_4_1.done; schemaAttrs_4_1 = schemaAttrs_4.next()) {
var attr = schemaAttrs_4_1.value;
_loop_6(attr);
}
@ -1578,9 +1517,9 @@ function constructFullAttrs(statements, entity) {
if (manyToOneSet && manyToOneSet.length) {
var mtoAttrs = [];
try {
for (var manyToOneSet_1 = __values(manyToOneSet), manyToOneSet_1_1 = manyToOneSet_1.next(); !manyToOneSet_1_1.done; manyToOneSet_1_1 = manyToOneSet_1.next()) {
for (var manyToOneSet_1 = tslib_1.__values(manyToOneSet), manyToOneSet_1_1 = manyToOneSet_1.next(); !manyToOneSet_1_1.done; manyToOneSet_1_1 = manyToOneSet_1.next()) {
var item = manyToOneSet_1_1.value;
var _g = __read(item, 2), one = _g[0], key = _g[1];
var _g = tslib_1.__read(item, 2), one = _g[0], key = _g[1];
if (one === entity) {
// 递归引用自身因为typescript本身不支持递归因此这里做一个显式的三层递归应该够用了
mtoAttrs.push(factory.createTemplateLiteralType(factory.createTemplateHead("".concat(key, "."), "".concat(key, ".")), [factory.createTemplateLiteralTypeSpan(factory.createTypeReferenceNode(factory.createIdentifier("OpAttr"), undefined), factory.createTemplateTail("", ""))]), factory.createTemplateLiteralType(factory.createTemplateHead("".concat(key, ".").concat(key, "."), "".concat(key, ".").concat(key, ".")), [factory.createTemplateLiteralTypeSpan(factory.createTypeReferenceNode(factory.createIdentifier("OpAttr"), undefined), factory.createTemplateTail("", ""))]), factory.createTemplateLiteralType(factory.createTemplateHead("".concat(key, ".").concat(key, ".").concat(key, "."), "".concat(key, ".").concat(key, ".").concat(key, ".")), [factory.createTemplateLiteralTypeSpan(factory.createTypeReferenceNode(factory.createIdentifier("OpAttr"), undefined), factory.createTemplateTail("", ""))]));
@ -1598,9 +1537,9 @@ function constructFullAttrs(statements, entity) {
}
finally { if (e_7) throw e_7.error; }
}
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("NativeAttr"), undefined, factory.createUnionTypeNode(__spreadArray([
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("NativeAttr"), undefined, factory.createUnionTypeNode(tslib_1.__spreadArray([
factory.createTypeReferenceNode(factory.createIdentifier("OpAttr"), undefined)
], __read(mtoAttrs), false))));
], tslib_1.__read(mtoAttrs), false))));
}
else {
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("NativeAttr"), undefined, factory.createTypeReferenceNode(factory.createIdentifier("OpAttr"), undefined)));
@ -1608,9 +1547,9 @@ function constructFullAttrs(statements, entity) {
var foreignKeySet = {};
if (oneToManySet && oneToManySet.length > 0) {
try {
for (var oneToManySet_3 = __values(oneToManySet), oneToManySet_3_1 = oneToManySet_3.next(); !oneToManySet_3_1.done; oneToManySet_3_1 = oneToManySet_3.next()) {
for (var oneToManySet_3 = tslib_1.__values(oneToManySet), oneToManySet_3_1 = oneToManySet_3.next(); !oneToManySet_3_1.done; oneToManySet_3_1 = oneToManySet_3.next()) {
var oneToManyItem = oneToManySet_3_1.value;
var _h = __read(oneToManyItem, 2), entityName = _h[0], foreignKey = _h[1];
var _h = tslib_1.__read(oneToManyItem, 2), entityName = _h[0], foreignKey = _h[1];
if (foreignKeySet.hasOwnProperty(entityName)) {
foreignKeySet[entityName].push(foreignKey);
}
@ -1652,9 +1591,9 @@ function constructFullAttrs(statements, entity) {
for (var entityName in foreignKeySet) {
_loop_7(entityName);
}
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("FullAttr"), undefined, factory.createUnionTypeNode(__spreadArray([
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("FullAttr"), undefined, factory.createUnionTypeNode(tslib_1.__spreadArray([
factory.createTypeReferenceNode(factory.createIdentifier("NativeAttr"), undefined)
], __read(otmAttrs_1), false))));
], tslib_1.__read(otmAttrs_1), false))));
}
else {
statements.push(factory.createTypeAliasDeclaration(undefined, [factory.createModifier(ts.SyntaxKind.ExportKeyword)], factory.createIdentifier("FullAttr"), undefined, factory.createTypeReferenceNode(factory.createIdentifier("NativeAttr"), undefined)));
@ -1690,9 +1629,9 @@ function constructActions(statements, entity) {
var foreignKeySet = {};
if (oneToManySet) {
try {
for (var oneToManySet_4 = __values(oneToManySet), oneToManySet_4_1 = oneToManySet_4.next(); !oneToManySet_4_1.done; oneToManySet_4_1 = oneToManySet_4.next()) {
for (var oneToManySet_4 = tslib_1.__values(oneToManySet), oneToManySet_4_1 = oneToManySet_4.next(); !oneToManySet_4_1.done; oneToManySet_4_1 = oneToManySet_4.next()) {
var oneToManyItem = oneToManySet_4_1.value;
var _p = __read(oneToManyItem, 2), entityName = _p[0], foreignKey = _p[1];
var _p = tslib_1.__read(oneToManyItem, 2), entityName = _p[0], foreignKey = _p[1];
if (foreignKeySet.hasOwnProperty(entityName)) {
foreignKeySet[entityName].push(foreignKey);
}
@ -1713,7 +1652,7 @@ function constructActions(statements, entity) {
var foreignKeyAttrNode = [];
if (manyToOneSet) {
try {
for (var manyToOneSet_2 = __values(manyToOneSet), manyToOneSet_2_1 = manyToOneSet_2.next(); !manyToOneSet_2_1.done; manyToOneSet_2_1 = manyToOneSet_2.next()) {
for (var manyToOneSet_2 = tslib_1.__values(manyToOneSet), manyToOneSet_2_1 = manyToOneSet_2.next(); !manyToOneSet_2_1.done; manyToOneSet_2_1 = manyToOneSet_2.next()) {
var one = manyToOneSet_2_1.value;
if (!ReversePointerRelations[entity] || !ReversePointerRelations[entity].includes(one[1])) {
foreignKeyAttrNode.push(factory.createLiteralTypeNode(factory.createStringLiteral("".concat(one[1], "Id"))));
@ -1750,7 +1689,7 @@ function constructActions(statements, entity) {
*/
var upsertOneNodes = [];
try {
for (var manyToOneSet_3 = __values(manyToOneSet), manyToOneSet_3_1 = manyToOneSet_3.next(); !manyToOneSet_3_1.done; manyToOneSet_3_1 = manyToOneSet_3.next()) {
for (var manyToOneSet_3 = tslib_1.__values(manyToOneSet), manyToOneSet_3_1 = manyToOneSet_3.next(); !manyToOneSet_3_1.done; manyToOneSet_3_1 = manyToOneSet_3.next()) {
var one = manyToOneSet_3_1.value;
if (!ReversePointerRelations[entity] || !ReversePointerRelations[entity].includes(one[0])) {
upsertOneNodes.push(factory.createUnionTypeNode([
@ -1779,7 +1718,7 @@ function constructActions(statements, entity) {
var reverseOneNodes = [];
if (ReversePointerRelations[entity]) {
try {
for (var _q = __values(ReversePointerRelations[entity]), _r = _q.next(); !_r.done; _r = _q.next()) {
for (var _q = tslib_1.__values(ReversePointerRelations[entity]), _r = _q.next(); !_r.done; _r = _q.next()) {
var one = _r.value;
reverseOneNodes.push(factory.createTypeLiteralNode([
factory.createPropertySignature(undefined, factory.createIdentifier('entity'), factory.createToken(ts.SyntaxKind.QuestionToken), factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword)),
@ -1889,7 +1828,7 @@ function constructActions(statements, entity) {
foreignKeyAttrNode = [];
if (manyToOneSet) {
try {
for (var manyToOneSet_4 = __values(manyToOneSet), manyToOneSet_4_1 = manyToOneSet_4.next(); !manyToOneSet_4_1.done; manyToOneSet_4_1 = manyToOneSet_4.next()) {
for (var manyToOneSet_4 = tslib_1.__values(manyToOneSet), manyToOneSet_4_1 = manyToOneSet_4.next(); !manyToOneSet_4_1.done; manyToOneSet_4_1 = manyToOneSet_4.next()) {
var one = manyToOneSet_4_1.value;
if (!ReversePointerRelations[entity] || !ReversePointerRelations[entity].includes(one[1])) {
foreignKeyAttrNode.push(factory.createLiteralTypeNode(factory.createStringLiteral("".concat(one[1], "Id"))));
@ -1924,7 +1863,7 @@ function constructActions(statements, entity) {
*/
var upsertOneNodes = [];
try {
for (var manyToOneSet_5 = __values(manyToOneSet), manyToOneSet_5_1 = manyToOneSet_5.next(); !manyToOneSet_5_1.done; manyToOneSet_5_1 = manyToOneSet_5.next()) {
for (var manyToOneSet_5 = tslib_1.__values(manyToOneSet), manyToOneSet_5_1 = manyToOneSet_5.next(); !manyToOneSet_5_1.done; manyToOneSet_5_1 = manyToOneSet_5.next()) {
var one = manyToOneSet_5_1.value;
if (!ReversePointerRelations[entity] || !ReversePointerRelations[entity].includes(one[0])) {
upsertOneNodes.push(factory.createUnionTypeNode([
@ -1961,7 +1900,7 @@ function constructActions(statements, entity) {
if (ReversePointerRelations[entity]) {
var refEntityLitrals = [];
try {
for (var _s = __values(ReversePointerRelations[entity]), _t = _s.next(); !_t.done; _t = _s.next()) {
for (var _s = tslib_1.__values(ReversePointerRelations[entity]), _t = _s.next(); !_t.done; _t = _s.next()) {
var one = _t.value;
refEntityLitrals.push(factory.createLiteralTypeNode(factory.createStringLiteral("".concat((0, string_1.firstLetterLowerCase)(one)))));
reverseOneNodes.push(factory.createTypeLiteralNode([
@ -2070,7 +2009,7 @@ function constructActions(statements, entity) {
*/
var upsertOneNodes = [];
try {
for (var manyToOneSet_6 = __values(manyToOneSet), manyToOneSet_6_1 = manyToOneSet_6.next(); !manyToOneSet_6_1.done; manyToOneSet_6_1 = manyToOneSet_6.next()) {
for (var manyToOneSet_6 = tslib_1.__values(manyToOneSet), manyToOneSet_6_1 = manyToOneSet_6.next(); !manyToOneSet_6_1.done; manyToOneSet_6_1 = manyToOneSet_6.next()) {
var one = manyToOneSet_6_1.value;
if (!ReversePointerRelations[entity] || !ReversePointerRelations[entity].includes(one[0])) {
upsertOneNodes.push(factory.createUnionTypeNode([
@ -2095,7 +2034,7 @@ function constructActions(statements, entity) {
if (ReversePointerRelations[entity]) {
var refEntityLitrals = [];
try {
for (var _u = __values(ReversePointerRelations[entity]), _v = _u.next(); !_v.done; _v = _u.next()) {
for (var _u = tslib_1.__values(ReversePointerRelations[entity]), _v = _u.next(); !_v.done; _v = _u.next()) {
var one = _v.value;
refEntityLitrals.push(factory.createLiteralTypeNode(factory.createStringLiteral("".concat((0, string_1.firstLetterLowerCase)(one)))));
reverseOneNodes.push(factory.createTypeLiteralNode([
@ -2271,10 +2210,10 @@ function outputSubQuery(outputDir, printer) {
var identifier = "".concat(one, "IdSubQuery");
var fromEntites = OneToMany[one] ? (0, lodash_1.uniq)(OneToMany[one]
.filter(function (_a) {
var _b = __read(_a, 2), e = _b[0], f = _b[1];
var _b = tslib_1.__read(_a, 2), e = _b[0], f = _b[1];
return f !== 'entity';
}).map(function (_a) {
var _b = __read(_a, 1), e = _b[0];
var _b = tslib_1.__read(_a, 1), e = _b[0];
return e;
})) : [];
fromEntites.push(one);
@ -2483,7 +2422,7 @@ function constructAttributes(entity) {
default: {
var text2_6 = text === 'Schema' ? entity : text;
var manyToOneItem = manyToOneSet && manyToOneSet.find(function (_a) {
var _b = __read(_a, 2), refEntity = _b[0], attrName = _b[1];
var _b = tslib_1.__read(_a, 2), refEntity = _b[0], attrName = _b[1];
return refEntity === text2_6 && attrName === attrName;
});
if (manyToOneItem) {
@ -2638,7 +2577,7 @@ function outputStorage(outputDir, printer) {
var attributes = constructAttributes(entity);
propertyAssignments.push(factory.createPropertyAssignment(factory.createIdentifier("attributes"), factory.createObjectLiteralExpression(attributes, true)));
if (indexes) {
indexExpressions.push.apply(indexExpressions, __spreadArray([], __read(indexes.elements), false));
indexExpressions.push.apply(indexExpressions, tslib_1.__spreadArray([], tslib_1.__read(indexes.elements), false));
}
if (indexExpressions.length > 0) {
propertyAssignments.push(factory.createPropertyAssignment(factory.createIdentifier("indexes"), factory.createArrayLiteralExpression(indexExpressions, true)));
@ -2676,7 +2615,7 @@ function addReverseRelationship() {
throw new Error("\u300C".concat(reverseEntity, "\u300D\u88AB\u5F15\u7528\u4E3A\u4E00\u4E2A\u53CD\u6307\u5BF9\u8C61\uFF0C\u4F46\u5176\u5B9A\u4E49\u4E2D\u7684entity\u548CentityId\u4E0D\u7B26\u5408\u8981\u6C42"));
}
try {
for (var _b = (e_18 = void 0, __values(ReversePointerRelations[reverseEntity])), _c = _b.next(); !_c.done; _c = _b.next()) {
for (var _b = (e_18 = void 0, tslib_1.__values(ReversePointerRelations[reverseEntity])), _c = _b.next(); !_c.done; _c = _b.next()) {
var one = _c.value;
addRelationship(reverseEntity, one, 'entity', false);
}
@ -2690,25 +2629,18 @@ function addReverseRelationship() {
}
}
}
function outputIndexTs(outputDir) {
var indexTs = "export * from './EntityDict';\n export * from './Storage';\n export * from './ActionDefDict';\n ";
var filename = path_1.default.join(outputDir, 'index.ts');
(0, fs_1.writeFileSync)(filename, indexTs, { flag: 'w' });
}
function outputPackageJson(outputDir) {
var pj = {
"name": process.env.COMPLING_AS_LIB ? "general-app-domain" : "oak-app-domain",
"main": "index.ts"
};
var indexTs = "export * from './EntityDict';\n export * from './Storage';\n export * from './ActionDefDict';\n ";
var filename = path_1.default.join(outputDir, 'index.ts');
(0, fs_1.writeFileSync)(filename, indexTs, { flag: 'w' });
filename = path_1.default.join(outputDir, 'package.json');
var filename = path_1.default.join(outputDir, 'package.json');
(0, fs_1.writeFileSync)(filename, JSON.stringify(pj), { flag: 'w' });
// 执行npm link
/* try {
execSync('npm link', {
cwd: outputDir,
});
}
catch (err) {
console.error(err);
} */
}
function analyzeEntities(inputDir) {
var files = (0, fs_1.readdirSync)(inputDir);
@ -2735,8 +2667,9 @@ function buildSchema(outputDir) {
outputAction(outputDir, printer);
outputEntityDict(outputDir, printer);
outputStorage(outputDir, printer);
//if (!process.env.COMPLING_AS_LIB) {
outputPackageJson(outputDir);
//}
outputIndexTs(outputDir);
if (!process.env.COMPLING_AS_LIB) {
outputPackageJson(outputDir);
}
}
exports.buildSchema = buildSchema;

View File

@ -1,103 +1,23 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CascadeStore = void 0;
var assert_1 = __importDefault(require("assert"));
var tslib_1 = require("tslib");
var assert_1 = tslib_1.__importDefault(require("assert"));
var RowStore_1 = require("../types/RowStore");
var filter_1 = require("./filter");
var relation_1 = require("./relation");
/**这个用来处理级联的select和update对不同能力的 */
var CascadeStore = /** @class */ (function (_super) {
__extends(CascadeStore, _super);
tslib_1.__extends(CascadeStore, _super);
function CascadeStore(storageSchema) {
return _super.call(this, storageSchema) || this;
}
CascadeStore.prototype.cascadeSelect = function (entity, selection, context, option) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var data, projection, oneToMany, oneToManyOnEntity, manyToOne, manyToOneOnEntity, supportMtoJoin, attr, relation, _a, entity2, foreignKey, rows;
var _b, _c, _d, _e, _f, _g, _h, _j;
var _this = this;
return __generator(this, function (_k) {
return tslib_1.__generator(this, function (_k) {
switch (_k.label) {
case 0:
data = selection.data;
@ -148,7 +68,7 @@ var CascadeStore = /** @class */ (function (_super) {
}
}
else {
_a = __read(relation, 2), entity2 = _a[0], foreignKey = _a[1];
_a = tslib_1.__read(relation, 2), entity2 = _a[0], foreignKey = _a[1];
if (foreignKey) {
// 基于属性的一对多
Object.assign(oneToMany, (_h = {},
@ -176,9 +96,9 @@ var CascadeStore = /** @class */ (function (_super) {
(function () {
var attrs = Object.keys(manyToOne);
if (attrs.length > 0) {
return attrs.map(function (attr) { return __awaiter(_this, void 0, void 0, function () {
return attrs.map(function (attr) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var subRows;
return __generator(this, function (_a) {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.cascadeSelect(manyToOne[attr], {
data: data[attr],
@ -208,9 +128,9 @@ var CascadeStore = /** @class */ (function (_super) {
(function () {
var attrs = Object.keys(manyToOneOnEntity);
if (attrs.length > 0) {
return attrs.map(function (attr) { return __awaiter(_this, void 0, void 0, function () {
return attrs.map(function (attr) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var subRows;
return __generator(this, function (_a) {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.cascadeSelect(attr, {
data: data[attr],
@ -239,10 +159,10 @@ var CascadeStore = /** @class */ (function (_super) {
var attrs = Object.keys(oneToMany);
if (attrs.length > 0) {
// 必须一行一行的查询否则indexFrom和count无法准确
return rows.map(function (row) { return __awaiter(_this, void 0, void 0, function () {
return rows.map(function (row) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var _a, _b, _i, attr, _c, entity2, foreignKey, filter2, rows2;
var _d, _e;
return __generator(this, function (_f) {
return tslib_1.__generator(this, function (_f) {
switch (_f.label) {
case 0:
_a = [];
@ -279,10 +199,10 @@ var CascadeStore = /** @class */ (function (_super) {
var attrs = Object.keys(oneToManyOnEntity);
if (attrs.length > 0) {
// 必须一行一行的查询否则indexFrom和count无法准确
return rows.map(function (row) { return __awaiter(_this, void 0, void 0, function () {
return rows.map(function (row) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var _a, _b, _i, attr, filter2, rows2;
var _c;
return __generator(this, function (_d) {
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
_a = [];
@ -347,11 +267,11 @@ var CascadeStore = /** @class */ (function (_super) {
* @param option
*/
CascadeStore.prototype.cascadeUpdate = function (entity, operation, context, option) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var action, data, filter, opData, result, multipleCreate, data_1, data_1_1, dataEle, result2, e_1_1, data2, _loop_1, this_1, _a, _b, _i, attr, operation2, count;
var e_1, _c, _d, _e;
var _this = this;
return __generator(this, function (_f) {
return tslib_1.__generator(this, function (_f) {
switch (_f.label) {
case 0:
action = operation.action, data = operation.data, filter = operation.filter;
@ -362,7 +282,7 @@ var CascadeStore = /** @class */ (function (_super) {
_f.label = 1;
case 1:
_f.trys.push([1, 6, 7, 8]);
data_1 = __values(data), data_1_1 = data_1.next();
data_1 = tslib_1.__values(data), data_1_1 = data_1.next();
_f.label = 2;
case 2:
if (!!data_1_1.done) return [3 /*break*/, 5];
@ -395,7 +315,7 @@ var CascadeStore = /** @class */ (function (_super) {
_loop_1 = function (attr) {
var relation, operationMto, actionMto, dataMto, filterMto, fkId, entity_1, result2, operationMto, actionMto, dataMto, filterMto, _g, _h, fkId, result2, _j, entityOtm_1, foreignKey_1, otmOperations, dealWithOneToMany, otmOperations_1, otmOperations_1_1, oper, e_2_1;
var _k, _l, _m, e_2, _o;
return __generator(this, function (_p) {
return tslib_1.__generator(this, function (_p) {
switch (_p.label) {
case 0:
relation = (0, relation_1.judgeRelation)(this_1.storageSchema, entity, attr);
@ -489,12 +409,12 @@ var CascadeStore = /** @class */ (function (_super) {
return [3 /*break*/, 16];
case 5:
(0, assert_1.default)(relation instanceof Array);
_j = __read(relation, 2), entityOtm_1 = _j[0], foreignKey_1 = _j[1];
_j = tslib_1.__read(relation, 2), entityOtm_1 = _j[0], foreignKey_1 = _j[1];
otmOperations = data2[attr];
dealWithOneToMany = function (otm) { return __awaiter(_this, void 0, void 0, function () {
dealWithOneToMany = function (otm) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var actionOtm, dataOtm, filterOtm, id_1, id_2, id, id_3, id_4, id, result2;
var _a, _b, _c, _d;
return __generator(this, function (_e) {
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
actionOtm = otm.action, dataOtm = otm.data, filterOtm = otm.filter;
@ -608,7 +528,7 @@ var CascadeStore = /** @class */ (function (_super) {
_p.label = 6;
case 6:
_p.trys.push([6, 11, 12, 13]);
otmOperations_1 = (e_2 = void 0, __values(otmOperations)), otmOperations_1_1 = otmOperations_1.next();
otmOperations_1 = (e_2 = void 0, tslib_1.__values(otmOperations)), otmOperations_1_1 = otmOperations_1.next();
_p.label = 7;
case 7:
if (!!otmOperations_1_1.done) return [3 /*break*/, 10];

View File

@ -1,83 +1,8 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TriggerExecutor = void 0;
var assert_1 = __importDefault(require("assert"));
var tslib_1 = require("tslib");
var assert_1 = tslib_1.__importDefault(require("assert"));
var lodash_1 = require("../utils/lodash");
var filter_1 = require("../store/filter");
var Trigger_1 = require("../types/Trigger");
@ -93,7 +18,7 @@ var Trigger_1 = require("../types/Trigger");
'stat': 'select',
}; */
var TriggerExecutor = /** @class */ (function (_super) {
__extends(TriggerExecutor, _super);
tslib_1.__extends(TriggerExecutor, _super);
function TriggerExecutor(contextBuilder, logger) {
if (logger === void 0) { logger = console; }
var _this = _super.call(this) || this;
@ -177,10 +102,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
}
};
TriggerExecutor.prototype.preCommitTrigger = function (entity, operation, trigger, context, option) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, filter, filter2, rowStore, count, _b, _c, _d, _e;
var _f, _g;
return __generator(this, function (_h) {
return tslib_1.__generator(this, function (_h) {
switch (_h.label) {
case 0:
(0, assert_1.default)(trigger.action !== 'select');
@ -248,10 +173,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
};
TriggerExecutor.prototype.preOperation = function (entity, operation, context, option) {
var _a;
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var action, triggers, preTriggers, preTriggers_1, preTriggers_1_1, trigger, number, e_1_1, commitTriggers, commitTriggers_1, commitTriggers_1_1, trigger, e_2_1;
var e_1, _b, e_2, _c;
return __generator(this, function (_d) {
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
action = operation.action;
@ -261,7 +186,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
_d.label = 1;
case 1:
_d.trys.push([1, 6, 7, 8]);
preTriggers_1 = __values(preTriggers), preTriggers_1_1 = preTriggers_1.next();
preTriggers_1 = tslib_1.__values(preTriggers), preTriggers_1_1 = preTriggers_1.next();
_d.label = 2;
case 2:
if (!!preTriggers_1_1.done) return [3 /*break*/, 5];
@ -292,7 +217,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
_d.label = 9;
case 9:
_d.trys.push([9, 14, 15, 16]);
commitTriggers_1 = __values(commitTriggers), commitTriggers_1_1 = commitTriggers_1.next();
commitTriggers_1 = tslib_1.__values(commitTriggers), commitTriggers_1_1 = commitTriggers_1.next();
_d.label = 10;
case 10:
if (!!commitTriggers_1_1.done) return [3 /*break*/, 13];
@ -322,9 +247,9 @@ var TriggerExecutor = /** @class */ (function (_super) {
};
TriggerExecutor.prototype.onCommit = function (trigger, operation, cxtStr, option) {
var _this = this;
return function () { return __awaiter(_this, void 0, void 0, function () {
return function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var context, number, rowStore, filter;
return __generator(this, function (_a) {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.contextBuilder(cxtStr)];
case 1:
@ -356,7 +281,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
else if (operation.filter) {
Object.assign(filter, { filter: operation.filter });
}
return [4 /*yield*/, rowStore.operate(trigger.entity, __assign({ action: 'update', data: {
return [4 /*yield*/, rowStore.operate(trigger.entity, tslib_1.__assign({ action: 'update', data: {
$$triggerTimestamp$$: null,
$$triggerData$$: null,
} }, filter /** as Filter<'update', DeduceFilter<ED[T]['Schema']>> */), context)];
@ -372,9 +297,9 @@ var TriggerExecutor = /** @class */ (function (_super) {
}); };
};
TriggerExecutor.prototype.postCommitTrigger = function (operation, trigger, context, option) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, _b, _c, _d, _e;
return __generator(this, function (_f) {
return tslib_1.__generator(this, function (_f) {
switch (_f.label) {
case 0:
_b = (_a = context).on;
@ -391,10 +316,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
};
TriggerExecutor.prototype.postOperation = function (entity, operation, context, option, result) {
var _a;
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var action, triggers, postTriggers, postTriggers_1, postTriggers_1_1, trigger, number, e_3_1, commitTriggers, commitTriggers_2, commitTriggers_2_1, trigger, e_4_1;
var e_3, _b, e_4, _c;
return __generator(this, function (_d) {
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
action = operation.action;
@ -404,7 +329,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
_d.label = 1;
case 1:
_d.trys.push([1, 6, 7, 8]);
postTriggers_1 = __values(postTriggers), postTriggers_1_1 = postTriggers_1.next();
postTriggers_1 = tslib_1.__values(postTriggers), postTriggers_1_1 = postTriggers_1.next();
_d.label = 2;
case 2:
if (!!postTriggers_1_1.done) return [3 /*break*/, 5];
@ -438,7 +363,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
_d.label = 9;
case 9:
_d.trys.push([9, 14, 15, 16]);
commitTriggers_2 = __values(commitTriggers), commitTriggers_2_1 = commitTriggers_2.next();
commitTriggers_2 = tslib_1.__values(commitTriggers), commitTriggers_2_1 = commitTriggers_2.next();
_d.label = 10;
case 10:
if (!!commitTriggers_2_1.done) return [3 /*break*/, 13];
@ -467,10 +392,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
});
};
TriggerExecutor.prototype.checkpoint = function (context, timestamp) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var result, rowStore, _a, _b, entity, rows, rows_1, rows_1_1, row, $$triggerData$$, _c, name_1, operation, cxtStr, params, trigger, e_5_1, e_6_1;
var e_6, _d, e_5, _e;
return __generator(this, function (_f) {
return tslib_1.__generator(this, function (_f) {
switch (_f.label) {
case 0:
result = 0;
@ -478,7 +403,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
_f.label = 1;
case 1:
_f.trys.push([1, 13, 14, 15]);
_a = __values(this.volatileEntities), _b = _a.next();
_a = tslib_1.__values(this.volatileEntities), _b = _a.next();
_f.label = 2;
case 2:
if (!!_b.done) return [3 /*break*/, 12];
@ -499,7 +424,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
_f.label = 4;
case 4:
_f.trys.push([4, 9, 10, 11]);
rows_1 = (e_5 = void 0, __values(rows)), rows_1_1 = rows_1.next();
rows_1 = (e_5 = void 0, tslib_1.__values(rows)), rows_1_1 = rows_1.next();
_f.label = 5;
case 5:
if (!!rows_1_1.done) return [3 /*break*/, 8];

View File

@ -1,57 +1,8 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UniversalContext = void 0;
var assert_1 = __importDefault(require("assert"));
var tslib_1 = require("tslib");
var assert_1 = tslib_1.__importDefault(require("assert"));
var concurrent_1 = require("../utils/concurrent");
var UniversalContext = /** @class */ (function () {
function UniversalContext(store) {
@ -83,9 +34,9 @@ var UniversalContext = /** @class */ (function () {
* @param options
*/
UniversalContext.prototype.begin = function (options) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a;
return __generator(this, function (_b) {
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, this.rwLock.acquire('X')];
case 1:
@ -105,10 +56,10 @@ var UniversalContext = /** @class */ (function () {
});
};
UniversalContext.prototype.commit = function () {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, _b, e, e_1_1;
var e_1, _c;
return __generator(this, function (_d) {
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
if (!this.uuid) return [3 /*break*/, 10];
@ -121,7 +72,7 @@ var UniversalContext = /** @class */ (function () {
_d.label = 2;
case 2:
_d.trys.push([2, 7, 8, 9]);
_a = __values(this.events.commit), _b = _a.next();
_a = tslib_1.__values(this.events.commit), _b = _a.next();
_d.label = 3;
case 3:
if (!!_b.done) return [3 /*break*/, 6];
@ -153,10 +104,10 @@ var UniversalContext = /** @class */ (function () {
});
};
UniversalContext.prototype.rollback = function () {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, _b, e, e_2_1;
var e_2, _c;
return __generator(this, function (_d) {
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
if (!this.uuid) return [3 /*break*/, 10];
@ -169,7 +120,7 @@ var UniversalContext = /** @class */ (function () {
_d.label = 2;
case 2:
_d.trys.push([2, 7, 8, 9]);
_a = __values(this.events.rollback), _b = _a.next();
_a = tslib_1.__values(this.events.rollback), _b = _a.next();
_d.label = 3;
case 3:
if (!!_b.done) return [3 /*break*/, 6];

View File

@ -1,42 +1,7 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.analyzeActionDefDict = exports.checkFilterContains = exports.getFullProjection = void 0;
var tslib_1 = require("tslib");
var filter_1 = require("./filter");
var types_1 = require("../types");
function getFullProjection(entity, schema) {
@ -57,10 +22,10 @@ function getFullProjection(entity, schema) {
}
exports.getFullProjection = getFullProjection;
function checkFilterContains(entity, schema, contained, context, filter) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var rowStore, filter2, result, data_1;
var _a;
return __generator(this, function (_b) {
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!filter) {
@ -115,8 +80,8 @@ function makeIntrinsicWatchers(schema) {
watchers.push({
entity: entity,
name: "\u5BF9\u8C61".concat(entity, "\u4E0A\u7684\u8FC7\u671F\u81EA\u52A8watcher"),
filter: function () { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
filter: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, {
expired: false,
expiresAt: {
@ -153,10 +118,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
entity: entity,
checker: function (_a, context) {
var operation = _a.operation;
return __awaiter(_this, void 0, void 0, function () {
return tslib_1.__awaiter(_this, void 0, void 0, function () {
var filter, conditionalFilter;
var _b, _c;
return __generator(this, function (_d) {
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
filter = operation.filter;
@ -183,10 +148,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
when: 'before',
fn: function (_a) {
var operation = _a.operation;
return __awaiter(_this, void 0, void 0, function () {
return tslib_1.__awaiter(_this, void 0, void 0, function () {
var _b, data;
var _c;
return __generator(this, function (_d) {
return tslib_1.__generator(this, function (_d) {
_b = operation.data, data = _b === void 0 ? {} : _b;
Object.assign(operation, {
data: Object.assign(data, (_c = {},
@ -210,10 +175,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
when: 'before',
fn: function (_a) {
var operation = _a.operation;
return __awaiter(_this, void 0, void 0, function () {
return tslib_1.__awaiter(_this, void 0, void 0, function () {
var data;
var _b;
return __generator(this, function (_c) {
return tslib_1.__generator(this, function (_c) {
data = operation.data;
Object.assign(data, (_b = {},
_b[attr] = is,

View File

@ -1,31 +1,7 @@
"use strict";
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.repel = exports.contains = exports.combineFilters = exports.addFilterSegment = void 0;
var tslib_1 = require("tslib");
function addFilterSegment() {
var filters = [];
for (var _i = 0; _i < arguments.length; _i++) {
@ -38,7 +14,7 @@ function addFilterSegment() {
for (var k in ele) {
if (k === '$and') {
if (filter.$and) {
(_a = filter.$and).push.apply(_a, __spreadArray([], __read(ele[k]), false));
(_a = filter.$and).push.apply(_a, tslib_1.__spreadArray([], tslib_1.__read(ele[k]), false));
}
else {
filter.$and = ele[k];
@ -46,7 +22,7 @@ function addFilterSegment() {
}
else if (k === '$or') {
if (filter.$or) {
(_b = filter.$or).push.apply(_b, __spreadArray([], __read(ele[k]), false));
(_b = filter.$or).push.apply(_b, tslib_1.__spreadArray([], tslib_1.__read(ele[k]), false));
}
else {
filter.$or = ele[k];
@ -76,7 +52,7 @@ function addFilterSegment() {
}
exports.addFilterSegment = addFilterSegment;
function combineFilters(filters) {
return addFilterSegment.apply(void 0, __spreadArray([], __read(filters), false));
return addFilterSegment.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(filters), false));
}
exports.combineFilters = combineFilters;
/**

View File

@ -1,10 +1,8 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.judgeRelation = void 0;
var assert_1 = __importDefault(require("assert"));
var tslib_1 = require("tslib");
var assert_1 = tslib_1.__importDefault(require("assert"));
var Demand_1 = require("../types/Demand");
var Entity_1 = require("../types/Entity");
/**

View File

@ -1,23 +1,9 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeException = exports.OakCongruentRowExists = exports.OakUserUnpermittedException = exports.OakInputIllegalException = exports.OakRowInconsistencyException = exports.OakUserException = exports.OakExternalException = exports.OakException = void 0;
var tslib_1 = require("tslib");
var OakException = /** @class */ (function (_super) {
__extends(OakException, _super);
tslib_1.__extends(OakException, _super);
function OakException(message) {
var _newTarget = this.constructor;
var _this = _super.call(this, message) || this;
@ -43,7 +29,7 @@ var OakException = /** @class */ (function (_super) {
}(Error));
exports.OakException = OakException;
var OakExternalException = /** @class */ (function (_super) {
__extends(OakExternalException, _super);
tslib_1.__extends(OakExternalException, _super);
function OakExternalException() {
return _super !== null && _super.apply(this, arguments) || this;
}
@ -51,7 +37,7 @@ var OakExternalException = /** @class */ (function (_super) {
}(Error));
exports.OakExternalException = OakExternalException;
var OakUserException = /** @class */ (function (_super) {
__extends(OakUserException, _super);
tslib_1.__extends(OakUserException, _super);
function OakUserException() {
return _super !== null && _super.apply(this, arguments) || this;
}
@ -65,7 +51,7 @@ exports.OakUserException = OakUserException;
*
*/
var OakRowInconsistencyException = /** @class */ (function (_super) {
__extends(OakRowInconsistencyException, _super);
tslib_1.__extends(OakRowInconsistencyException, _super);
function OakRowInconsistencyException(data, message) {
var _this = _super.call(this, message) || this;
_this.data = data;
@ -89,7 +75,7 @@ exports.OakRowInconsistencyException = OakRowInconsistencyException;
* 当输入的数据非法时抛此异常attributes表示非法的属性
*/
var OakInputIllegalException = /** @class */ (function (_super) {
__extends(OakInputIllegalException, _super);
tslib_1.__extends(OakInputIllegalException, _super);
function OakInputIllegalException(attributes, message) {
var _this = _super.call(this, message) || this;
_this.attributes = attributes;
@ -116,7 +102,7 @@ exports.OakInputIllegalException = OakInputIllegalException;
* 用户权限不够时抛的异常
*/
var OakUserUnpermittedException = /** @class */ (function (_super) {
__extends(OakUserUnpermittedException, _super);
tslib_1.__extends(OakUserUnpermittedException, _super);
function OakUserUnpermittedException() {
return _super !== null && _super.apply(this, arguments) || this;
}
@ -128,7 +114,7 @@ exports.OakUserUnpermittedException = OakUserUnpermittedException;
* 要插入行时发现已经有相同的行数据
*/
var OakCongruentRowExists = /** @class */ (function (_super) {
__extends(OakCongruentRowExists, _super);
tslib_1.__extends(OakCongruentRowExists, _super);
function OakCongruentRowExists(data, message) {
var _this = _super.call(this, message) || this;
_this.data = data;

View File

@ -1,40 +1,11 @@
"use strict";
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.execOp = exports.opMultipleParams = exports.isExpression = exports.isMathExpression = exports.isCompareExpression = exports.isBoolExpression = exports.isLogicExpression = exports.isDateExpression = exports.isGeoExpression = void 0;
var assert_1 = __importDefault(require("assert"));
var dayjs_1 = __importDefault(require("dayjs"));
var weekOfYear_1 = __importDefault(require("dayjs/plugin/weekOfYear"));
var dayOfYear_1 = __importDefault(require("dayjs/plugin/dayOfYear"));
var tslib_1 = require("tslib");
var assert_1 = tslib_1.__importDefault(require("assert"));
var dayjs_1 = tslib_1.__importDefault(require("dayjs"));
var weekOfYear_1 = tslib_1.__importDefault(require("dayjs/plugin/weekOfYear"));
var dayOfYear_1 = tslib_1.__importDefault(require("dayjs/plugin/dayOfYear"));
var geo_1 = require("../utils/geo");
dayjs_1.default.extend(weekOfYear_1.default);
dayjs_1.default.extend(dayOfYear_1.default);
@ -226,7 +197,7 @@ function execOp(op, params, obscure) {
}
case '$and': {
try {
for (var params_1 = __values(params), params_1_1 = params_1.next(); !params_1_1.done; params_1_1 = params_1.next()) {
for (var params_1 = tslib_1.__values(params), params_1_1 = params_1.next(); !params_1_1.done; params_1_1 = params_1.next()) {
var p = params_1_1.value;
if (!p) {
return false;
@ -244,7 +215,7 @@ function execOp(op, params, obscure) {
}
case '$or': {
try {
for (var params_2 = __values(params), params_2_1 = params_2.next(); !params_2_1.done; params_2_1 = params_2.next()) {
for (var params_2 = tslib_1.__values(params), params_2_1 = params_2.next(); !params_2_1.done; params_2_1 = params_2.next()) {
var p = params_2_1.value;
if (!!p) {
return true;
@ -359,7 +330,7 @@ function execOp(op, params, obscure) {
}
}
case '$distance': {
var _c = __read(params, 2), geo1 = _c[0], geo2 = _c[1];
var _c = tslib_1.__read(params, 2), geo1 = _c[0], geo2 = _c[1];
var type1 = geo1.type, coordinate1 = geo1.coordinate;
var type2 = geo2.type, coordinate2 = geo2.coordinate;
if (type1 !== 'point' || type2 !== 'point') {

View File

@ -1,34 +1,21 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./Action"), exports);
__exportStar(require("./Aspect"), exports);
__exportStar(require("./Auth"), exports);
__exportStar(require("./Context"), exports);
__exportStar(require("./DataType"), exports);
__exportStar(require("./Demand"), exports);
__exportStar(require("./Entity"), exports);
__exportStar(require("./Expression"), exports);
__exportStar(require("./Geo"), exports);
__exportStar(require("./Logger"), exports);
__exportStar(require("./Polyfill"), exports);
__exportStar(require("./RowStore"), exports);
__exportStar(require("./Storage"), exports);
__exportStar(require("./Trigger"), exports);
__exportStar(require("./Exception"), exports);
__exportStar(require("./Watcher"), exports);
__exportStar(require("./AppLoader"), exports);
__exportStar(require("./Connector"), exports);
var tslib_1 = require("tslib");
tslib_1.__exportStar(require("./Action"), exports);
tslib_1.__exportStar(require("./Aspect"), exports);
tslib_1.__exportStar(require("./Auth"), exports);
tslib_1.__exportStar(require("./Context"), exports);
tslib_1.__exportStar(require("./DataType"), exports);
tslib_1.__exportStar(require("./Demand"), exports);
tslib_1.__exportStar(require("./Entity"), exports);
tslib_1.__exportStar(require("./Expression"), exports);
tslib_1.__exportStar(require("./Geo"), exports);
tslib_1.__exportStar(require("./Logger"), exports);
tslib_1.__exportStar(require("./Polyfill"), exports);
tslib_1.__exportStar(require("./RowStore"), exports);
tslib_1.__exportStar(require("./Storage"), exports);
tslib_1.__exportStar(require("./Trigger"), exports);
tslib_1.__exportStar(require("./Exception"), exports);
tslib_1.__exportStar(require("./Watcher"), exports);
tslib_1.__exportStar(require("./AppLoader"), exports);
tslib_1.__exportStar(require("./Connector"), exports);

View File

@ -1,61 +1,8 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SimpleConnector = void 0;
var assert_1 = __importDefault(require("assert"));
var tslib_1 = require("tslib");
var assert_1 = tslib_1.__importDefault(require("assert"));
var types_1 = require("../types");
function makeContentTypeAndBody(data) {
return {
@ -64,7 +11,7 @@ function makeContentTypeAndBody(data) {
};
}
var SimpleConnector = /** @class */ (function (_super) {
__extends(SimpleConnector, _super);
tslib_1.__extends(SimpleConnector, _super);
function SimpleConnector(serverUrl, makeException, contextBuilder) {
var _this = _super.call(this) || this;
_this.serverUrl = "".concat(serverUrl).concat(SimpleConnector.ROUTER);
@ -73,9 +20,9 @@ var SimpleConnector = /** @class */ (function (_super) {
return _this;
}
SimpleConnector.prototype.callAspect = function (name, params, context) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var cxtStr, _a, contentType, body, response, err, _b, exception, result, opRecords;
return __generator(this, function (_c) {
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0: return [4 /*yield*/, context.toString()];
case 1:

View File

@ -1,11 +1,9 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.assert = void 0;
var tslib_1 = require("tslib");
/**
* 防止assert打包体积过大从这里引用
*/
var assert_1 = __importDefault(require("assert"));
var assert_1 = tslib_1.__importDefault(require("assert"));
exports.assert = assert_1.default;

View File

@ -1,57 +1,8 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RWLock = void 0;
var assert_1 = __importDefault(require("assert"));
var tslib_1 = require("tslib");
var assert_1 = tslib_1.__importDefault(require("assert"));
/**
* 模拟一个读写锁用于同步
* 注意千万不要发生自己等自己
@ -64,10 +15,10 @@ var RWLock = /** @class */ (function () {
this.writeWaiter = [];
}
RWLock.prototype.acquire = function (mode) {
return __awaiter(this, void 0, void 0, function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var p, p;
var _this = this;
return __generator(this, function (_a) {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(mode === 'S')) return [3 /*break*/, 4];
@ -104,7 +55,7 @@ var RWLock = /** @class */ (function () {
this.writeNumber = 0;
if (this.readWaiter.length > 0) {
try {
for (var _b = __values(this.readWaiter), _c = _b.next(); !_c.done; _c = _b.next()) {
for (var _b = tslib_1.__values(this.readWaiter), _c = _b.next(); !_c.done; _c = _b.next()) {
var f = _c.value;
f(undefined);
}

View File

@ -1,32 +1,30 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEqual = exports.pick = exports.cloneDeep = exports.merge = exports.omit = exports.intersection = exports.set = exports.get = exports.uniq = exports.pull = exports.unset = void 0;
var tslib_1 = require("tslib");
/**
* 避免lodash打包体积过大
* 像assign, keys尽量使用Object的函数
*/
var unset_1 = __importDefault(require("lodash/unset"));
var unset_1 = tslib_1.__importDefault(require("lodash/unset"));
exports.unset = unset_1.default;
var pull_1 = __importDefault(require("lodash/pull"));
var pull_1 = tslib_1.__importDefault(require("lodash/pull"));
exports.pull = pull_1.default;
var uniq_1 = __importDefault(require("lodash/uniq"));
var uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
exports.uniq = uniq_1.default;
var get_1 = __importDefault(require("lodash/get"));
var get_1 = tslib_1.__importDefault(require("lodash/get"));
exports.get = get_1.default;
var set_1 = __importDefault(require("lodash/set"));
var set_1 = tslib_1.__importDefault(require("lodash/set"));
exports.set = set_1.default;
var intersection_1 = __importDefault(require("lodash/intersection"));
var intersection_1 = tslib_1.__importDefault(require("lodash/intersection"));
exports.intersection = intersection_1.default;
var omit_1 = __importDefault(require("lodash/omit"));
var omit_1 = tslib_1.__importDefault(require("lodash/omit"));
exports.omit = omit_1.default;
var merge_1 = __importDefault(require("lodash/merge"));
var merge_1 = tslib_1.__importDefault(require("lodash/merge"));
exports.merge = merge_1.default;
var cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
var cloneDeep_1 = tslib_1.__importDefault(require("lodash/cloneDeep"));
exports.cloneDeep = cloneDeep_1.default;
var pick_1 = __importDefault(require("lodash/pick"));
var pick_1 = tslib_1.__importDefault(require("lodash/pick"));
exports.pick = pick_1.default;
var isEqual_1 = __importDefault(require("lodash/isEqual"));
var isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
exports.isEqual = isEqual_1.default;

View File

@ -1,6 +1,6 @@
{
"name": "oak-domain",
"version": "1.0.3",
"version": "1.0.4",
"author": {
"name": "XuChang"
},
@ -29,6 +29,7 @@
"fs-extra": "^10.0.0",
"mocha": "^8.2.1",
"ts-node": "~10.9.1",
"tslib": "^2.4.0",
"typescript": "~4.7.4"
},
"dependencies": {

View File

@ -4973,32 +4973,23 @@ function addReverseRelationship() {
}
}
function outputIndexTs(outputDir: string) {
const indexTs = `export * from './EntityDict';
export * from './Storage';
export * from './ActionDefDict';
`;
const filename = path.join(outputDir, 'index.ts');
writeFileSync(filename, indexTs, { flag: 'w' });
}
function outputPackageJson(outputDir: string) {
const pj = {
"name": process.env.COMPLING_AS_LIB ? "general-app-domain" : "oak-app-domain",
"main": "index.ts"
};
const indexTs = `export * from './EntityDict';
export * from './Storage';
export * from './ActionDefDict';
`;
let filename = path.join(outputDir, 'index.ts');
writeFileSync(filename, indexTs, { flag: 'w' });
filename = path.join(outputDir, 'package.json');
const filename = path.join(outputDir, 'package.json');
writeFileSync(filename, JSON.stringify(pj), { flag: 'w' });
// 执行npm link
/* try {
execSync('npm link', {
cwd: outputDir,
});
}
catch (err) {
console.error(err);
} */
}
export function analyzeEntities(inputDir: string) {
@ -5034,8 +5025,9 @@ export function buildSchema(outputDir: string): void {
outputAction(outputDir, printer);
outputEntityDict(outputDir, printer);
outputStorage(outputDir, printer);
outputIndexTs(outputDir);
//if (!process.env.COMPLING_AS_LIB) {
outputPackageJson(outputDir);
//}
if (!process.env.COMPLING_AS_LIB) {
outputPackageJson(outputDir);
}
}

View File

@ -15,6 +15,7 @@
// "checkJs": true, /* Report errors in .js files. */
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
"declaration": true, /* Generates corresponding '.d.ts' file. */
"importHelpers": true,
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
// "sourceMap": true, /* Generates corresponding '.map' file. */
// "outFile": "./", /* Concatenate and emit output to single file. */