@deenruv/cli 1.0.0
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/LICENSE +23 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +64 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add/add.d.ts +1 -0
- package/dist/commands/add/add.js +70 -0
- package/dist/commands/add/add.js.map +1 -0
- package/dist/commands/add/api-extension/add-api-extension.d.ts +9 -0
- package/dist/commands/add/api-extension/add-api-extension.js +524 -0
- package/dist/commands/add/api-extension/add-api-extension.js.map +1 -0
- package/dist/commands/add/api-extension/templates/api-extensions.template.ts +3 -0
- package/dist/commands/add/api-extension/templates/crud-resolver.template.ts +127 -0
- package/dist/commands/add/api-extension/templates/simple-resolver.template.ts +37 -0
- package/dist/commands/add/codegen/add-codegen.d.ts +8 -0
- package/dist/commands/add/codegen/add-codegen.js +113 -0
- package/dist/commands/add/codegen/add-codegen.js.map +1 -0
- package/dist/commands/add/codegen/codegen-config-ref.d.ts +10 -0
- package/dist/commands/add/codegen/codegen-config-ref.js +52 -0
- package/dist/commands/add/codegen/codegen-config-ref.js.map +1 -0
- package/dist/commands/add/codegen/templates/codegen.template.ts +17 -0
- package/dist/commands/add/entity/add-entity.d.ts +17 -0
- package/dist/commands/add/entity/add-entity.js +160 -0
- package/dist/commands/add/entity/add-entity.js.map +1 -0
- package/dist/commands/add/entity/codemods/add-entity-to-plugin/add-entity-to-plugin.d.ts +3 -0
- package/dist/commands/add/entity/codemods/add-entity-to-plugin/add-entity-to-plugin.js +17 -0
- package/dist/commands/add/entity/codemods/add-entity-to-plugin/add-entity-to-plugin.js.map +1 -0
- package/dist/commands/add/entity/templates/entity-translation.template.ts +31 -0
- package/dist/commands/add/entity/templates/entity.template.ts +36 -0
- package/dist/commands/add/job-queue/add-job-queue.d.ts +9 -0
- package/dist/commands/add/job-queue/add-job-queue.js +139 -0
- package/dist/commands/add/job-queue/add-job-queue.js.map +1 -0
- package/dist/commands/add/plugin/create-new-plugin.d.ts +10 -0
- package/dist/commands/add/plugin/create-new-plugin.js +240 -0
- package/dist/commands/add/plugin/create-new-plugin.js.map +1 -0
- package/dist/commands/add/plugin/templates/constants.template.ts +2 -0
- package/dist/commands/add/plugin/templates/plugin.template.ts +30 -0
- package/dist/commands/add/plugin/templates/types.template.ts +7 -0
- package/dist/commands/add/plugin/types.d.ts +8 -0
- package/dist/commands/add/plugin/types.js +3 -0
- package/dist/commands/add/plugin/types.js.map +1 -0
- package/dist/commands/add/service/add-service.d.ts +5 -0
- package/dist/commands/add/service/add-service.js +317 -0
- package/dist/commands/add/service/add-service.js.map +1 -0
- package/dist/commands/add/service/templates/basic-service.template.ts +20 -0
- package/dist/commands/add/service/templates/entity-service.template.ts +182 -0
- package/dist/commands/add/ui-extensions/add-ui-extensions.d.ts +6 -0
- package/dist/commands/add/ui-extensions/add-ui-extensions.js +101 -0
- package/dist/commands/add/ui-extensions/add-ui-extensions.js.map +1 -0
- package/dist/commands/add/ui-extensions/codemods/add-ui-extension-static-prop/add-ui-extension-static-prop.d.ts +2 -0
- package/dist/commands/add/ui-extensions/codemods/add-ui-extension-static-prop/add-ui-extension-static-prop.js +36 -0
- package/dist/commands/add/ui-extensions/codemods/add-ui-extension-static-prop/add-ui-extension-static-prop.js.map +1 -0
- package/dist/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.d.ts +5 -0
- package/dist/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.js +63 -0
- package/dist/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.js.map +1 -0
- package/dist/commands/add/ui-extensions/templates/providers.template.ts +3 -0
- package/dist/commands/add/ui-extensions/templates/routes.template.ts +3 -0
- package/dist/commands/migrate/generate-migration/generate-migration.d.ts +2 -0
- package/dist/commands/migrate/generate-migration/generate-migration.js +112 -0
- package/dist/commands/migrate/generate-migration/generate-migration.js.map +1 -0
- package/dist/commands/migrate/load-deenruv-config-file.d.ts +3 -0
- package/dist/commands/migrate/load-deenruv-config-file.js +66 -0
- package/dist/commands/migrate/load-deenruv-config-file.js.map +1 -0
- package/dist/commands/migrate/migrate.d.ts +1 -0
- package/dist/commands/migrate/migrate.js +50 -0
- package/dist/commands/migrate/migrate.js.map +1 -0
- package/dist/commands/migrate/revert-migration/revert-migration.d.ts +2 -0
- package/dist/commands/migrate/revert-migration/revert-migration.js +31 -0
- package/dist/commands/migrate/revert-migration/revert-migration.js.map +1 -0
- package/dist/commands/migrate/run-migration/run-migration.d.ts +2 -0
- package/dist/commands/migrate/run-migration/run-migration.js +34 -0
- package/dist/commands/migrate/run-migration/run-migration.js.map +1 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.js +17 -0
- package/dist/constants.js.map +1 -0
- package/dist/shared/cli-command.d.ts +24 -0
- package/dist/shared/cli-command.js +22 -0
- package/dist/shared/cli-command.js.map +1 -0
- package/dist/shared/deenruv-config-ref.d.ts +14 -0
- package/dist/shared/deenruv-config-ref.js +69 -0
- package/dist/shared/deenruv-config-ref.js.map +1 -0
- package/dist/shared/deenruv-plugin-ref.d.ts +22 -0
- package/dist/shared/deenruv-plugin-ref.js +184 -0
- package/dist/shared/deenruv-plugin-ref.js.map +1 -0
- package/dist/shared/entity-ref.d.ts +16 -0
- package/dist/shared/entity-ref.js +61 -0
- package/dist/shared/entity-ref.js.map +1 -0
- package/dist/shared/package-json-ref.d.ts +25 -0
- package/dist/shared/package-json-ref.js +181 -0
- package/dist/shared/package-json-ref.js.map +1 -0
- package/dist/shared/service-ref.d.ts +25 -0
- package/dist/shared/service-ref.js +92 -0
- package/dist/shared/service-ref.js.map +1 -0
- package/dist/shared/shared-prompts.d.ts +16 -0
- package/dist/shared/shared-prompts.js +170 -0
- package/dist/shared/shared-prompts.js.map +1 -0
- package/dist/utilities/ast-utils.d.ts +20 -0
- package/dist/utilities/ast-utils.js +173 -0
- package/dist/utilities/ast-utils.js.map +1 -0
- package/dist/utilities/utils.d.ts +2 -0
- package/dist/utilities/utils.js +12 -0
- package/dist/utilities/utils.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addUiExtensionStaticProp = void 0;
|
|
4
|
+
const change_case_1 = require("change-case");
|
|
5
|
+
const constants_1 = require("../../../../../constants");
|
|
6
|
+
const ast_utils_1 = require("../../../../../utilities/ast-utils");
|
|
7
|
+
function addUiExtensionStaticProp(plugin) {
|
|
8
|
+
const pluginClass = plugin.classDeclaration;
|
|
9
|
+
const adminUiExtensionType = constants_1.AdminUiExtensionTypeName;
|
|
10
|
+
const extensionId = (0, change_case_1.paramCase)(pluginClass.getName()).replace(/-plugin$/, "");
|
|
11
|
+
pluginClass
|
|
12
|
+
.addProperty({
|
|
13
|
+
name: "ui",
|
|
14
|
+
isStatic: true,
|
|
15
|
+
type: adminUiExtensionType,
|
|
16
|
+
initializer: `{
|
|
17
|
+
id: '${extensionId}-ui',
|
|
18
|
+
extensionPath: path.join(__dirname, 'ui'),
|
|
19
|
+
routes: [{ route: '${extensionId}', filePath: 'routes.ts' }],
|
|
20
|
+
providers: ['providers.ts'],
|
|
21
|
+
}`,
|
|
22
|
+
})
|
|
23
|
+
.formatText();
|
|
24
|
+
(0, ast_utils_1.addImportsToFile)(pluginClass.getSourceFile(), {
|
|
25
|
+
moduleSpecifier: "@deenruv/ui-devkit/compiler",
|
|
26
|
+
namedImports: [adminUiExtensionType],
|
|
27
|
+
order: 0,
|
|
28
|
+
});
|
|
29
|
+
(0, ast_utils_1.addImportsToFile)(pluginClass.getSourceFile(), {
|
|
30
|
+
moduleSpecifier: "path",
|
|
31
|
+
namespaceImport: "path",
|
|
32
|
+
order: 0,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
exports.addUiExtensionStaticProp = addUiExtensionStaticProp;
|
|
36
|
+
//# sourceMappingURL=add-ui-extension-static-prop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-ui-extension-static-prop.js","sourceRoot":"","sources":["../../../../../../src/commands/add/ui-extensions/codemods/add-ui-extension-static-prop/add-ui-extension-static-prop.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,wDAAoE;AAEpE,kEAAsE;AAMtE,SAAgB,wBAAwB,CAAC,MAAwB;IAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC5C,MAAM,oBAAoB,GAAG,oCAAwB,CAAC;IACtD,MAAM,WAAW,GAAG,IAAA,uBAAS,EAAC,WAAW,CAAC,OAAO,EAAY,CAAC,CAAC,OAAO,CACpE,UAAU,EACV,EAAE,CACH,CAAC;IACF,WAAW;SACR,WAAW,CAAC;QACX,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE;+BACY,WAAW;;6CAEG,WAAW;;sBAElC;KACjB,CAAC;SACD,UAAU,EAAE,CAAC;IAGhB,IAAA,4BAAgB,EAAC,WAAW,CAAC,aAAa,EAAE,EAAE;QAC5C,eAAe,EAAE,6BAA6B;QAC9C,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;IAGH,IAAA,4BAAgB,EAAC,WAAW,CAAC,aAAa,EAAE,EAAE;QAC5C,eAAe,EAAE,MAAM;QACvB,eAAe,EAAE,MAAM;QACvB,KAAK,EAAE,CAAC;KACT,CAAC,CAAC;AACL,CAAC;AAlCD,4DAkCC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateAdminUiPluginInit = void 0;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
const constants_1 = require("../../../../../constants");
|
|
6
|
+
const ast_utils_1 = require("../../../../../utilities/ast-utils");
|
|
7
|
+
function updateAdminUiPluginInit(deenruvConfig, options) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
const adminUiPlugin = (_a = deenruvConfig
|
|
10
|
+
.getPluginsArray()) === null || _a === void 0 ? void 0 : _a.getChildrenOfKind(ts_morph_1.SyntaxKind.CallExpression).find((c) => {
|
|
11
|
+
return c.getExpression().getText() === "AdminUiPlugin.init";
|
|
12
|
+
});
|
|
13
|
+
if (adminUiPlugin) {
|
|
14
|
+
const initObject = adminUiPlugin
|
|
15
|
+
.getArguments()
|
|
16
|
+
.find((a) => a.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression));
|
|
17
|
+
const appProperty = initObject === null || initObject === void 0 ? void 0 : initObject.getProperty("app");
|
|
18
|
+
if (!appProperty) {
|
|
19
|
+
initObject === null || initObject === void 0 ? void 0 : initObject.addProperty({
|
|
20
|
+
name: "app",
|
|
21
|
+
kind: ts_morph_1.StructureKind.PropertyAssignment,
|
|
22
|
+
initializer: `compileUiExtensions({
|
|
23
|
+
outputPath: path.join(__dirname, '../admin-ui'),
|
|
24
|
+
extensions: [
|
|
25
|
+
${options.pluginClassName}.ui,
|
|
26
|
+
],
|
|
27
|
+
devMode: true,
|
|
28
|
+
}),`,
|
|
29
|
+
}).formatText();
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const computeFnCall = appProperty.getFirstChildByKind(ts_morph_1.SyntaxKind.CallExpression);
|
|
33
|
+
if (computeFnCall === null || computeFnCall === void 0 ? void 0 : computeFnCall.getType().getText().includes(constants_1.AdminUiAppConfigName)) {
|
|
34
|
+
const arg = computeFnCall.getArguments()[0];
|
|
35
|
+
if (arg && ts_morph_1.Node.isObjectLiteralExpression(arg)) {
|
|
36
|
+
const extensionsProp = arg.getProperty("extensions");
|
|
37
|
+
if (extensionsProp) {
|
|
38
|
+
(_b = extensionsProp
|
|
39
|
+
.getFirstChildByKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression)) === null || _b === void 0 ? void 0 : _b.addElement(`${options.pluginClassName}.ui`).formatText();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
(0, ast_utils_1.addImportsToFile)(deenruvConfig.sourceFile, {
|
|
45
|
+
moduleSpecifier: "@deenruv/ui-devkit/compiler",
|
|
46
|
+
namedImports: ["compileUiExtensions"],
|
|
47
|
+
order: 0,
|
|
48
|
+
});
|
|
49
|
+
(0, ast_utils_1.addImportsToFile)(deenruvConfig.sourceFile, {
|
|
50
|
+
moduleSpecifier: "path",
|
|
51
|
+
namespaceImport: "path",
|
|
52
|
+
order: 0,
|
|
53
|
+
});
|
|
54
|
+
(0, ast_utils_1.addImportsToFile)(deenruvConfig.sourceFile, {
|
|
55
|
+
moduleSpecifier: options.pluginPath,
|
|
56
|
+
namedImports: [options.pluginClassName],
|
|
57
|
+
});
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
exports.updateAdminUiPluginInit = updateAdminUiPluginInit;
|
|
63
|
+
//# sourceMappingURL=update-admin-ui-plugin-init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-admin-ui-plugin-init.js","sourceRoot":"","sources":["../../../../../../src/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.ts"],"names":[],"mappings":";;;AAAA,uCAKkB;AAElB,wDAAgE;AAEhE,kEAAsE;AAEtE,SAAgB,uBAAuB,CACrC,aAA+B,EAC/B,OAAwD;;IAExD,MAAM,aAAa,GAAG,MAAA,aAAa;SAChC,eAAe,EAAE,0CAChB,iBAAiB,CAAC,qBAAU,CAAC,cAAc,EAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,oBAAoB,CAAC;IAC9D,CAAC,CAAC,CAAC;IACL,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,aAAa;aAC7B,YAAY,EAAE;aACd,IAAI,CAAC,CAAC,CAAC,EAAgC,EAAE,CACxC,CAAC,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAC7C,CAAC;QACJ,MAAM,WAAW,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,UAAU,aAAV,UAAU,uBAAV,UAAU,CACN,WAAW,CAAC;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,wBAAa,CAAC,kBAAkB;gBACtC,WAAW,EAAE;;;8BAGO,OAAO,CAAC,eAAe;;;wBAG7B;aACf,EACA,UAAU,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,WAAW,CAAC,mBAAmB,CACnD,qBAAU,CAAC,cAAc,CAC1B,CAAC;YACF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,gCAAoB,CAAC,EAAE,CAAC;gBACtE,MAAM,GAAG,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,eAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/C,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;oBACrD,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAA,cAAc;6BACX,mBAAmB,CAAC,qBAAU,CAAC,sBAAsB,CAAC,0CACrD,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,KAAK,EAC3C,UAAU,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAA,4BAAgB,EAAC,aAAa,CAAC,UAAU,EAAE;YACzC,eAAe,EAAE,6BAA6B;YAC9C,YAAY,EAAE,CAAC,qBAAqB,CAAC;YACrC,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,IAAA,4BAAgB,EAAC,aAAa,CAAC,UAAU,EAAE;YACzC,eAAe,EAAE,MAAM;YACvB,eAAe,EAAE,MAAM;YACvB,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QAEH,IAAA,4BAAgB,EAAC,aAAa,CAAC,UAAU,EAAE;YACzC,eAAe,EAAE,OAAO,CAAC,UAAU;YACnC,YAAY,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;SACxC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AApED,0DAoEC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateMigrationCommand = void 0;
|
|
7
|
+
const prompts_1 = require("@clack/prompts");
|
|
8
|
+
const unique_1 = require("@deenruv/common/lib/unique");
|
|
9
|
+
const core_1 = require("@deenruv/core");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const cli_command_1 = require("../../../shared/cli-command");
|
|
12
|
+
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
13
|
+
const deenruv_config_ref_1 = require("../../../shared/deenruv-config-ref");
|
|
14
|
+
const load_deenruv_config_file_1 = require("../load-deenruv-config-file");
|
|
15
|
+
const cancelledMessage = "Generate migration cancelled";
|
|
16
|
+
exports.generateMigrationCommand = new cli_command_1.CliCommand({
|
|
17
|
+
id: "generate-migration",
|
|
18
|
+
category: "Other",
|
|
19
|
+
description: "Generate a new database migration",
|
|
20
|
+
run: () => runGenerateMigration(),
|
|
21
|
+
});
|
|
22
|
+
async function runGenerateMigration() {
|
|
23
|
+
const { project, tsConfigPath } = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
|
|
24
|
+
const deenruvConfig = new deenruv_config_ref_1.DeenruvConfigRef(project);
|
|
25
|
+
prompts_1.log.info("Using DeenruvConfig from " + deenruvConfig.getPathRelativeToProjectRoot());
|
|
26
|
+
const name = await (0, prompts_1.text)({
|
|
27
|
+
message: "Enter a meaningful name for the migration",
|
|
28
|
+
initialValue: "",
|
|
29
|
+
placeholder: "add-custom-fields",
|
|
30
|
+
validate: (input) => {
|
|
31
|
+
if (!/^[a-zA-Z][a-zA-Z-_0-9]+$/.test(input)) {
|
|
32
|
+
return "The plugin name must contain only letters, numbers, underscores and dashes";
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
if ((0, prompts_1.isCancel)(name)) {
|
|
37
|
+
(0, prompts_1.cancel)(cancelledMessage);
|
|
38
|
+
process.exit(0);
|
|
39
|
+
}
|
|
40
|
+
const config = await (0, load_deenruv_config_file_1.loadDeenruvConfigFile)(deenruvConfig, tsConfigPath);
|
|
41
|
+
const migrationsDirs = getMigrationsDir(deenruvConfig, config);
|
|
42
|
+
let migrationDir = migrationsDirs[0];
|
|
43
|
+
if (migrationsDirs.length > 1) {
|
|
44
|
+
const migrationDirSelect = await (0, prompts_1.select)({
|
|
45
|
+
message: "Migration file location",
|
|
46
|
+
options: migrationsDirs
|
|
47
|
+
.map((c) => ({
|
|
48
|
+
value: c,
|
|
49
|
+
label: c,
|
|
50
|
+
}))
|
|
51
|
+
.concat({
|
|
52
|
+
value: "other",
|
|
53
|
+
label: "Other",
|
|
54
|
+
}),
|
|
55
|
+
});
|
|
56
|
+
if ((0, prompts_1.isCancel)(migrationDirSelect)) {
|
|
57
|
+
(0, prompts_1.cancel)(cancelledMessage);
|
|
58
|
+
process.exit(0);
|
|
59
|
+
}
|
|
60
|
+
migrationDir = migrationDirSelect;
|
|
61
|
+
}
|
|
62
|
+
if (migrationsDirs.length === 1 || migrationDir === "other") {
|
|
63
|
+
const confirmation = await (0, prompts_1.text)({
|
|
64
|
+
message: "Migration file location",
|
|
65
|
+
initialValue: migrationsDirs[0],
|
|
66
|
+
placeholder: "",
|
|
67
|
+
});
|
|
68
|
+
if ((0, prompts_1.isCancel)(confirmation)) {
|
|
69
|
+
(0, prompts_1.cancel)(cancelledMessage);
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
migrationDir = confirmation;
|
|
73
|
+
}
|
|
74
|
+
const migrationSpinner = (0, prompts_1.spinner)();
|
|
75
|
+
migrationSpinner.start("Generating migration...");
|
|
76
|
+
const migrationName = await (0, core_1.generateMigration)(config, {
|
|
77
|
+
name,
|
|
78
|
+
outputDir: migrationDir,
|
|
79
|
+
});
|
|
80
|
+
const report = typeof migrationName === "string"
|
|
81
|
+
? `New migration generated: ${migrationName}`
|
|
82
|
+
: "No changes in database schema were found, so no migration was generated";
|
|
83
|
+
migrationSpinner.stop(report);
|
|
84
|
+
return {
|
|
85
|
+
project,
|
|
86
|
+
modifiedSourceFiles: [],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function getMigrationsDir(deenruvConfigRef, config) {
|
|
90
|
+
const options = [];
|
|
91
|
+
if (Array.isArray(config.dbConnectionOptions.migrations) &&
|
|
92
|
+
config.dbConnectionOptions.migrations.length) {
|
|
93
|
+
const firstEntry = config.dbConnectionOptions.migrations[0];
|
|
94
|
+
if (typeof firstEntry === "string") {
|
|
95
|
+
options.push(path_1.default.dirname(firstEntry));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const migrationFile = deenruvConfigRef.sourceFile
|
|
99
|
+
.getProject()
|
|
100
|
+
.getSourceFiles()
|
|
101
|
+
.find((sf) => {
|
|
102
|
+
return sf
|
|
103
|
+
.getClasses()
|
|
104
|
+
.find((c) => c.getImplements().find((i) => i.getText() === "MigrationInterface"));
|
|
105
|
+
});
|
|
106
|
+
if (migrationFile) {
|
|
107
|
+
options.push(migrationFile.getDirectory().getPath());
|
|
108
|
+
}
|
|
109
|
+
options.push(path_1.default.join(deenruvConfigRef.sourceFile.getDirectory().getPath(), "../migrations"));
|
|
110
|
+
return (0, unique_1.unique)(options.map((p) => path_1.default.normalize(p)));
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=generate-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/generate-migration/generate-migration.ts"],"names":[],"mappings":";;;;;;AAAA,4CAQwB;AACxB,uDAAoD;AACpD,wCAAiE;AAEjE,gDAAwB;AAExB,6DAA8E;AAC9E,mEAAgE;AAChE,2EAAsE;AACtE,0EAAoE;AAEpE,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;AAE3C,QAAA,wBAAwB,GAAG,IAAI,wBAAU,CAAC;IACrD,EAAE,EAAE,oBAAoB;IACxB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,mCAAmC;IAChD,GAAG,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE;CAClC,CAAC,CAAC;AAEH,KAAK,UAAU,oBAAoB;IACjC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,IAAI,qCAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,aAAG,CAAC,IAAI,CACN,2BAA2B,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAC3E,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,IAAA,cAAI,EAAC;QACtB,OAAO,EAAE,2CAA2C;QACpD,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,4EAA4E,CAAC;YACtF,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,IAAI,IAAA,kBAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;QACnB,IAAA,gBAAM,EAAC,gBAAgB,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAqB,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAExE,MAAM,cAAc,GAAG,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAErC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,kBAAkB,GAAG,MAAM,IAAA,gBAAM,EAAC;YACtC,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,cAAc;iBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;iBACF,MAAM,CAAC;gBACN,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,OAAO;aACf,CAAC;SACL,CAAC,CAAC;QACH,IAAI,IAAA,kBAAQ,EAAC,kBAAkB,CAAC,EAAE,CAAC;YACjC,IAAA,gBAAM,EAAC,gBAAgB,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,YAAY,GAAG,kBAA4B,CAAC;IAC9C,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,MAAM,IAAA,cAAI,EAAC;YAC9B,OAAO,EAAE,yBAAyB;YAClC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;YAC/B,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,IAAI,IAAA,kBAAQ,EAAC,YAAY,CAAC,EAAE,CAAC;YAC3B,IAAA,gBAAM,EAAC,gBAAgB,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,YAAY,GAAG,YAAY,CAAC;IAC9B,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAA,iBAAO,GAAE,CAAC;IACnC,gBAAgB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAiB,EAAC,MAAM,EAAE;QACpD,IAAI;QACJ,SAAS,EAAE,YAAY;KACxB,CAAC,CAAC;IACH,MAAM,MAAM,GACV,OAAO,aAAa,KAAK,QAAQ;QAC/B,CAAC,CAAC,4BAA4B,aAAa,EAAE;QAC7C,CAAC,CAAC,yEAAyE,CAAC;IAChF,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO;QACL,OAAO;QACP,mBAAmB,EAAE,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,gBAAkC,EAClC,MAAqB;IAErB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IACE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC;QACpD,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAC5C,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU;SAC9C,UAAU,EAAE;SACZ,cAAc,EAAE;SAChB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACX,OAAO,EAAE;aACN,UAAU,EAAE;aACZ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,oBAAoB,CAAC,CACpE,CAAC;IACN,CAAC,CAAC,CAAC;IACL,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,IAAI,CACV,cAAI,CAAC,IAAI,CACP,gBAAgB,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EACpD,eAAe,CAChB,CACF,CAAC;IACF,OAAO,IAAA,eAAM,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.loadDeenruvConfigFile = void 0;
|
|
30
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
31
|
+
const ts_node_1 = require("ts-node");
|
|
32
|
+
const ast_utils_1 = require("../../utilities/ast-utils");
|
|
33
|
+
const utils_1 = require("../../utilities/utils");
|
|
34
|
+
async function loadDeenruvConfigFile(deenruvConfig, providedTsConfigPath) {
|
|
35
|
+
await Promise.resolve().then(() => __importStar(require("dotenv/config")));
|
|
36
|
+
if (!(0, utils_1.isRunningInTsNode)()) {
|
|
37
|
+
let tsConfigPath;
|
|
38
|
+
if (providedTsConfigPath) {
|
|
39
|
+
tsConfigPath = providedTsConfigPath;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const tsConfigFile = await (0, ast_utils_1.selectTsConfigFile)();
|
|
43
|
+
tsConfigPath = node_path_1.default.join(process.cwd(), tsConfigFile);
|
|
44
|
+
}
|
|
45
|
+
const compilerOptions = require(tsConfigPath).compilerOptions;
|
|
46
|
+
(0, ts_node_1.register)({
|
|
47
|
+
compilerOptions: Object.assign(Object.assign({}, compilerOptions), { moduleResolution: "NodeNext", module: "NodeNext" }),
|
|
48
|
+
transpileOnly: true,
|
|
49
|
+
});
|
|
50
|
+
if (compilerOptions.paths) {
|
|
51
|
+
const tsConfigPaths = require("tsconfig-paths");
|
|
52
|
+
tsConfigPaths.register({
|
|
53
|
+
baseUrl: "./",
|
|
54
|
+
paths: compilerOptions.paths,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const exportedVarName = deenruvConfig.getConfigObjectVariableName();
|
|
59
|
+
if (!exportedVarName) {
|
|
60
|
+
throw new Error("Could not find the exported variable name in the DeenruvConfig file");
|
|
61
|
+
}
|
|
62
|
+
const config = require(deenruvConfig.sourceFile.getFilePath())[exportedVarName];
|
|
63
|
+
return config;
|
|
64
|
+
}
|
|
65
|
+
exports.loadDeenruvConfigFile = loadDeenruvConfigFile;
|
|
66
|
+
//# sourceMappingURL=load-deenruv-config-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-deenruv-config-file.js","sourceRoot":"","sources":["../../../src/commands/migrate/load-deenruv-config-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0DAA6B;AAC7B,qCAAmC;AAGnC,yDAA+D;AAC/D,iDAA0D;AAEnD,KAAK,UAAU,qBAAqB,CACzC,aAA+B,EAC/B,oBAA6B;IAE7B,wDAAa,eAAe,GAAC,CAAC;IAC9B,IAAI,CAAC,IAAA,yBAAiB,GAAE,EAAE,CAAC;QACzB,IAAI,YAAoB,CAAC;QACzB,IAAI,oBAAoB,EAAE,CAAC;YACzB,YAAY,GAAG,oBAAoB,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAkB,GAAE,CAAC;YAChD,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC;QAC9D,IAAA,kBAAQ,EAAC;YACP,eAAe,kCACV,eAAe,KAClB,gBAAgB,EAAE,UAAU,EAC5B,MAAM,EAAE,UAAU,GACnB;YACD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAChD,aAAa,CAAC,QAAQ,CAAC;gBACrB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,eAAe,CAAC,KAAK;aAC7B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,eAAe,GAAG,aAAa,CAAC,2BAA2B,EAAE,CAAC;IACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAC5D,eAAe,CAChB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AA1CD,sDA0CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function migrateCommand(): Promise<void>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.migrateCommand = void 0;
|
|
7
|
+
const prompts_1 = require("@clack/prompts");
|
|
8
|
+
const picocolors_1 = __importDefault(require("picocolors"));
|
|
9
|
+
const generate_migration_1 = require("./generate-migration/generate-migration");
|
|
10
|
+
const revert_migration_1 = require("./revert-migration/revert-migration");
|
|
11
|
+
const run_migration_1 = require("./run-migration/run-migration");
|
|
12
|
+
const cancelledMessage = "Migrate cancelled.";
|
|
13
|
+
async function migrateCommand() {
|
|
14
|
+
console.log(`\n`);
|
|
15
|
+
(0, prompts_1.intro)(picocolors_1.default.blue("🛠️️ Deenruv migrations"));
|
|
16
|
+
const action = await (0, prompts_1.select)({
|
|
17
|
+
message: "What would you like to do?",
|
|
18
|
+
options: [
|
|
19
|
+
{ value: "generate", label: "Generate a new migration" },
|
|
20
|
+
{ value: "run", label: "Run pending migrations" },
|
|
21
|
+
{ value: "revert", label: "Revert the last migration" },
|
|
22
|
+
],
|
|
23
|
+
});
|
|
24
|
+
if ((0, prompts_1.isCancel)(action)) {
|
|
25
|
+
(0, prompts_1.cancel)(cancelledMessage);
|
|
26
|
+
process.exit(0);
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
process.env.DEENRUV_RUNNING_IN_CLI = "true";
|
|
30
|
+
if (action === "generate") {
|
|
31
|
+
await generate_migration_1.generateMigrationCommand.run();
|
|
32
|
+
}
|
|
33
|
+
if (action === "run") {
|
|
34
|
+
await run_migration_1.runMigrationCommand.run();
|
|
35
|
+
}
|
|
36
|
+
if (action === "revert") {
|
|
37
|
+
await revert_migration_1.revertMigrationCommand.run();
|
|
38
|
+
}
|
|
39
|
+
(0, prompts_1.outro)("✅ Done!");
|
|
40
|
+
process.env.DEENRUV_RUNNING_IN_CLI = undefined;
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
prompts_1.log.error(e.message);
|
|
44
|
+
if (e.stack) {
|
|
45
|
+
prompts_1.log.error(e.stack);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.migrateCommand = migrateCommand;
|
|
50
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/commands/migrate/migrate.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6E;AAC7E,4DAA4B;AAE5B,gFAAmF;AACnF,0EAA6E;AAC7E,iEAAoE;AAEpE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAOvC,KAAK,UAAU,cAAc;IAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,eAAK,EAAC,oBAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAM,EAAC;QAC1B,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,EAAE;YACxD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE;YACjD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE;SACxD;KACF,CAAC,CAAC;IACH,IAAI,IAAA,kBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;QACrB,IAAA,gBAAM,EAAC,gBAAgB,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC;QAC5C,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,6CAAwB,CAAC,GAAG,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,mCAAmB,CAAC,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,yCAAsB,CAAC,GAAG,EAAE,CAAC;QACrC,CAAC;QACD,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,SAAS,CAAC;IACjD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAiB,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAlCD,wCAkCC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.revertMigrationCommand = void 0;
|
|
4
|
+
const prompts_1 = require("@clack/prompts");
|
|
5
|
+
const core_1 = require("@deenruv/core");
|
|
6
|
+
const cli_command_1 = require("../../../shared/cli-command");
|
|
7
|
+
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
8
|
+
const deenruv_config_ref_1 = require("../../../shared/deenruv-config-ref");
|
|
9
|
+
const load_deenruv_config_file_1 = require("../load-deenruv-config-file");
|
|
10
|
+
const cancelledMessage = "Revert migrations cancelled";
|
|
11
|
+
exports.revertMigrationCommand = new cli_command_1.CliCommand({
|
|
12
|
+
id: "run-migration",
|
|
13
|
+
category: "Other",
|
|
14
|
+
description: "Run any pending database migrations",
|
|
15
|
+
run: () => runRevertMigration(),
|
|
16
|
+
});
|
|
17
|
+
async function runRevertMigration() {
|
|
18
|
+
const { project } = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
|
|
19
|
+
const deenruvConfig = new deenruv_config_ref_1.DeenruvConfigRef(project);
|
|
20
|
+
prompts_1.log.info("Using DeenruvConfig from " + deenruvConfig.getPathRelativeToProjectRoot());
|
|
21
|
+
const config = await (0, load_deenruv_config_file_1.loadDeenruvConfigFile)(deenruvConfig);
|
|
22
|
+
const runSpinner = (0, prompts_1.spinner)();
|
|
23
|
+
runSpinner.start("Reverting last migration...");
|
|
24
|
+
await (0, core_1.revertLastMigration)(config);
|
|
25
|
+
runSpinner.stop(`Successfully reverted last migration`);
|
|
26
|
+
return {
|
|
27
|
+
project,
|
|
28
|
+
modifiedSourceFiles: [],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=revert-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revert-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/revert-migration/revert-migration.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,wCAAoD;AAEpD,6DAA8E;AAC9E,mEAAgE;AAChE,2EAAsE;AACtE,0EAAoE;AAEpE,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAE1C,QAAA,sBAAsB,GAAG,IAAI,wBAAU,CAAC;IACnD,EAAE,EAAE,eAAe;IACnB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,qCAAqC;IAClD,GAAG,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;CAChC,CAAC,CAAC;AAEH,KAAK,UAAU,kBAAkB;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,qCAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,aAAG,CAAC,IAAI,CACN,2BAA2B,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAC3E,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAqB,EAAC,aAAa,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChD,MAAM,IAAA,0BAAmB,EAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxD,OAAO;QACL,OAAO;QACP,mBAAmB,EAAE,EAAE;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runMigrationCommand = void 0;
|
|
4
|
+
const prompts_1 = require("@clack/prompts");
|
|
5
|
+
const core_1 = require("@deenruv/core");
|
|
6
|
+
const cli_command_1 = require("../../../shared/cli-command");
|
|
7
|
+
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
8
|
+
const deenruv_config_ref_1 = require("../../../shared/deenruv-config-ref");
|
|
9
|
+
const load_deenruv_config_file_1 = require("../load-deenruv-config-file");
|
|
10
|
+
const cancelledMessage = "Run migrations cancelled";
|
|
11
|
+
exports.runMigrationCommand = new cli_command_1.CliCommand({
|
|
12
|
+
id: "run-migration",
|
|
13
|
+
category: "Other",
|
|
14
|
+
description: "Run any pending database migrations",
|
|
15
|
+
run: () => runRunMigration(),
|
|
16
|
+
});
|
|
17
|
+
async function runRunMigration() {
|
|
18
|
+
const { project } = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
|
|
19
|
+
const deenruvConfig = new deenruv_config_ref_1.DeenruvConfigRef(project);
|
|
20
|
+
prompts_1.log.info("Using DeenruvConfig from " + deenruvConfig.getPathRelativeToProjectRoot());
|
|
21
|
+
const config = await (0, load_deenruv_config_file_1.loadDeenruvConfigFile)(deenruvConfig);
|
|
22
|
+
const runSpinner = (0, prompts_1.spinner)();
|
|
23
|
+
runSpinner.start("Running migrations...");
|
|
24
|
+
const migrationsRan = await (0, core_1.runMigrations)(config);
|
|
25
|
+
const report = migrationsRan.length
|
|
26
|
+
? `Successfully ran ${migrationsRan.length} migrations`
|
|
27
|
+
: "No pending migrations found";
|
|
28
|
+
runSpinner.stop(report);
|
|
29
|
+
return {
|
|
30
|
+
project,
|
|
31
|
+
modifiedSourceFiles: [],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=run-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/run-migration/run-migration.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,wCAA8C;AAE9C,6DAA8E;AAC9E,mEAAgE;AAChE,2EAAsE;AACtE,0EAAoE;AAEpE,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEvC,QAAA,mBAAmB,GAAG,IAAI,wBAAU,CAAC;IAChD,EAAE,EAAE,eAAe;IACnB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,qCAAqC;IAClD,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;CAC7B,CAAC,CAAC;AAEH,KAAK,UAAU,eAAe;IAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,qCAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,aAAG,CAAC,IAAI,CACN,2BAA2B,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAC3E,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAqB,EAAC,aAAa,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM;QACjC,CAAC,CAAC,oBAAoB,aAAa,CAAC,MAAM,aAAa;QACvD,CAAC,CAAC,6BAA6B,CAAC;IAClC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO;QACL,OAAO;QACP,mBAAmB,EAAE,EAAE;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ManipulationSettings } from "ts-morph";
|
|
2
|
+
export declare const defaultManipulationSettings: Partial<ManipulationSettings>;
|
|
3
|
+
export declare const pascalCaseRegex: RegExp;
|
|
4
|
+
export declare const AdminUiExtensionTypeName = "AdminUiExtension";
|
|
5
|
+
export declare const AdminUiAppConfigName = "AdminUiAppConfig";
|
|
6
|
+
export declare const Messages: {
|
|
7
|
+
NoPluginsFound: string;
|
|
8
|
+
NoEntitiesFound: string;
|
|
9
|
+
NoServicesFound: string;
|
|
10
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Messages = exports.AdminUiAppConfigName = exports.AdminUiExtensionTypeName = exports.pascalCaseRegex = exports.defaultManipulationSettings = void 0;
|
|
4
|
+
const ts_morph_1 = require("ts-morph");
|
|
5
|
+
exports.defaultManipulationSettings = {
|
|
6
|
+
quoteKind: ts_morph_1.QuoteKind.Single,
|
|
7
|
+
useTrailingCommas: true,
|
|
8
|
+
};
|
|
9
|
+
exports.pascalCaseRegex = /^[A-Z][a-zA-Z0-9]*$/;
|
|
10
|
+
exports.AdminUiExtensionTypeName = "AdminUiExtension";
|
|
11
|
+
exports.AdminUiAppConfigName = "AdminUiAppConfig";
|
|
12
|
+
exports.Messages = {
|
|
13
|
+
NoPluginsFound: `No plugins were found in this project. Create a plugin first by selecting "[Plugin] Create a new Deenruv plugin"`,
|
|
14
|
+
NoEntitiesFound: `No entities were found in this plugin.`,
|
|
15
|
+
NoServicesFound: `No services were found in this plugin. Create a service first by selecting "[Plugin: Service] Add a new service to a plugin"`,
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,uCAA2D;AAE9C,QAAA,2BAA2B,GAAkC;IACxE,SAAS,EAAE,oBAAS,CAAC,MAAM;IAC3B,iBAAiB,EAAE,IAAI;CACxB,CAAC;AACW,QAAA,eAAe,GAAG,qBAAqB,CAAC;AACxC,QAAA,wBAAwB,GAAG,kBAAkB,CAAC;AAC9C,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAC1C,QAAA,QAAQ,GAAG;IACtB,cAAc,EAAE,kHAAkH;IAClI,eAAe,EAAE,wCAAwC;IACzD,eAAe,EAAE,8HAA8H;CAChJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Project, SourceFile } from "ts-morph";
|
|
2
|
+
import { DeenruvPluginRef } from "./deenruv-plugin-ref";
|
|
3
|
+
export type CommandCategory = `Plugin` | `Plugin: UI` | `Plugin: Entity` | `Plugin: Service` | `Plugin: API` | `Plugin: Job Queue` | `Project: Codegen` | `Other`;
|
|
4
|
+
export interface BaseCliCommandOptions {
|
|
5
|
+
plugin?: DeenruvPluginRef;
|
|
6
|
+
}
|
|
7
|
+
export type CliCommandReturnVal<T extends Record<string, any> = Record<string, any>> = {
|
|
8
|
+
project: Project;
|
|
9
|
+
modifiedSourceFiles: SourceFile[];
|
|
10
|
+
} & T;
|
|
11
|
+
export interface CliCommandOptions<T extends BaseCliCommandOptions, R extends CliCommandReturnVal> {
|
|
12
|
+
id: string;
|
|
13
|
+
category: CommandCategory;
|
|
14
|
+
description: string;
|
|
15
|
+
run: (options?: Partial<T>) => Promise<R>;
|
|
16
|
+
}
|
|
17
|
+
export declare class CliCommand<T extends Record<string, any>, R extends CliCommandReturnVal = CliCommandReturnVal> {
|
|
18
|
+
private options;
|
|
19
|
+
constructor(options: CliCommandOptions<T, R>);
|
|
20
|
+
get id(): string;
|
|
21
|
+
get category(): CommandCategory;
|
|
22
|
+
get description(): string;
|
|
23
|
+
run(options?: Partial<T>): Promise<R>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CliCommand = void 0;
|
|
4
|
+
class CliCommand {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.options = options;
|
|
7
|
+
}
|
|
8
|
+
get id() {
|
|
9
|
+
return this.options.id;
|
|
10
|
+
}
|
|
11
|
+
get category() {
|
|
12
|
+
return this.options.category;
|
|
13
|
+
}
|
|
14
|
+
get description() {
|
|
15
|
+
return this.options.description;
|
|
16
|
+
}
|
|
17
|
+
run(options) {
|
|
18
|
+
return this.options.run(options);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.CliCommand = CliCommand;
|
|
22
|
+
//# sourceMappingURL=cli-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-command.js","sourceRoot":"","sources":["../../src/shared/cli-command.ts"],"names":[],"mappings":";;;AAmCA,MAAa,UAAU;IAIrB,YAAoB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAExD,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,OAAoB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF;AArBD,gCAqBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ObjectLiteralExpression, Project, SourceFile } from "ts-morph";
|
|
2
|
+
export declare class DeenruvConfigRef {
|
|
3
|
+
private project;
|
|
4
|
+
readonly sourceFile: SourceFile;
|
|
5
|
+
readonly configObject: ObjectLiteralExpression;
|
|
6
|
+
constructor(project: Project, options?: {
|
|
7
|
+
checkFileName?: boolean;
|
|
8
|
+
});
|
|
9
|
+
getPathRelativeToProjectRoot(): string;
|
|
10
|
+
getConfigObjectVariableName(): string | undefined;
|
|
11
|
+
getPluginsArray(): import("ts-morph").ArrayLiteralExpression | undefined;
|
|
12
|
+
addToPluginsArray(text: string): void;
|
|
13
|
+
private isDeenruvConfigVariableDeclaration;
|
|
14
|
+
}
|