@vendure/cli 2.2.1 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/add/api-extension/add-api-extension.js +8 -7
- package/dist/commands/add/api-extension/add-api-extension.js.map +1 -1
- package/dist/commands/add/codegen/add-codegen.js +12 -5
- package/dist/commands/add/codegen/add-codegen.js.map +1 -1
- package/dist/commands/add/codegen/codegen-config-ref.d.ts +3 -3
- package/dist/commands/add/codegen/codegen-config-ref.js +5 -6
- package/dist/commands/add/codegen/codegen-config-ref.js.map +1 -1
- package/dist/commands/add/entity/add-entity.js +20 -15
- package/dist/commands/add/entity/add-entity.js.map +1 -1
- package/dist/commands/add/job-queue/add-job-queue.js +37 -37
- package/dist/commands/add/job-queue/add-job-queue.js.map +1 -1
- package/dist/commands/add/plugin/create-new-plugin.d.ts +4 -2
- package/dist/commands/add/plugin/create-new-plugin.js +54 -38
- package/dist/commands/add/plugin/create-new-plugin.js.map +1 -1
- package/dist/commands/add/plugin/templates/plugin.template.ts +25 -25
- package/dist/commands/add/service/add-service.js +54 -27
- package/dist/commands/add/service/add-service.js.map +1 -1
- package/dist/commands/add/ui-extensions/add-ui-extensions.js +19 -6
- package/dist/commands/add/ui-extensions/add-ui-extensions.js.map +1 -1
- package/dist/commands/migrate/generate-migration/generate-migration.js +64 -3
- package/dist/commands/migrate/generate-migration/generate-migration.js.map +1 -1
- package/dist/commands/migrate/load-vendure-config-file.d.ts +2 -1
- package/dist/commands/migrate/load-vendure-config-file.js +10 -3
- package/dist/commands/migrate/load-vendure-config-file.js.map +1 -1
- package/dist/commands/migrate/revert-migration/revert-migration.js +1 -1
- package/dist/commands/migrate/revert-migration/revert-migration.js.map +1 -1
- package/dist/commands/migrate/run-migration/run-migration.js +1 -1
- package/dist/commands/migrate/run-migration/run-migration.js.map +1 -1
- package/dist/shared/package-json-ref.d.ts +8 -0
- package/dist/shared/package-json-ref.js +62 -6
- package/dist/shared/package-json-ref.js.map +1 -1
- package/dist/shared/shared-prompts.d.ts +4 -1
- package/dist/shared/shared-prompts.js +6 -2
- package/dist/shared/shared-prompts.js.map +1 -1
- package/dist/shared/vendure-plugin-ref.d.ts +5 -1
- package/dist/shared/vendure-plugin-ref.js +34 -3
- package/dist/shared/vendure-plugin-ref.js.map +1 -1
- package/dist/utilities/ast-utils.d.ts +5 -2
- package/dist/utilities/ast-utils.js +11 -8
- package/dist/utilities/ast-utils.js.map +1 -1
- package/package.json +4 -4
|
@@ -32,6 +32,7 @@ const change_case_1 = require("change-case");
|
|
|
32
32
|
const fs = __importStar(require("fs-extra"));
|
|
33
33
|
const path_1 = __importDefault(require("path"));
|
|
34
34
|
const cli_command_1 = require("../../../shared/cli-command");
|
|
35
|
+
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
35
36
|
const vendure_config_ref_1 = require("../../../shared/vendure-config-ref");
|
|
36
37
|
const vendure_plugin_ref_1 = require("../../../shared/vendure-plugin-ref");
|
|
37
38
|
const ast_utils_1 = require("../../../utilities/ast-utils");
|
|
@@ -50,9 +51,9 @@ exports.createNewPluginCommand = new cli_command_1.CliCommand({
|
|
|
50
51
|
});
|
|
51
52
|
const cancelledMessage = 'Plugin setup cancelled.';
|
|
52
53
|
async function createNewPlugin() {
|
|
53
|
-
var _a;
|
|
54
54
|
const options = { name: '', customEntityName: '', pluginDir: '' };
|
|
55
55
|
(0, prompts_1.intro)('Adding a new Vendure plugin!');
|
|
56
|
+
const { project } = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
|
|
56
57
|
if (!options.name) {
|
|
57
58
|
const name = await (0, prompts_1.text)({
|
|
58
59
|
message: 'What is the name of the plugin?',
|
|
@@ -71,7 +72,8 @@ async function createNewPlugin() {
|
|
|
71
72
|
options.name = name;
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
const
|
|
75
|
+
const existingPluginDir = findExistingPluginsDir(project);
|
|
76
|
+
const pluginDir = getPluginDirName(options.name, existingPluginDir);
|
|
75
77
|
const confirmation = await (0, prompts_1.text)({
|
|
76
78
|
message: 'Plugin location',
|
|
77
79
|
initialValue: pluginDir,
|
|
@@ -87,7 +89,7 @@ async function createNewPlugin() {
|
|
|
87
89
|
process.exit(0);
|
|
88
90
|
}
|
|
89
91
|
options.pluginDir = confirmation;
|
|
90
|
-
const { plugin,
|
|
92
|
+
const { plugin, modifiedSourceFiles } = await generatePlugin(project, options);
|
|
91
93
|
const configSpinner = (0, prompts_1.spinner)();
|
|
92
94
|
configSpinner.start('Updating VendureConfig...');
|
|
93
95
|
await (0, utils_1.pauseForPromptDisplay)();
|
|
@@ -109,9 +111,6 @@ async function createNewPlugin() {
|
|
|
109
111
|
add_codegen_1.addCodegenCommand,
|
|
110
112
|
];
|
|
111
113
|
let allModifiedSourceFiles = [...modifiedSourceFiles];
|
|
112
|
-
const pluginClassName = plugin.name;
|
|
113
|
-
let workingPlugin = plugin;
|
|
114
|
-
let workingProject = project;
|
|
115
114
|
while (!done) {
|
|
116
115
|
const featureType = await (0, prompts_1.select)({
|
|
117
116
|
message: `Add features to ${options.name}?`,
|
|
@@ -130,17 +129,9 @@ async function createNewPlugin() {
|
|
|
130
129
|
done = true;
|
|
131
130
|
}
|
|
132
131
|
else {
|
|
133
|
-
const newProject = (0, ast_utils_1.getTsMorphProject)();
|
|
134
|
-
workingProject = newProject;
|
|
135
|
-
const newPlugin = (_a = newProject
|
|
136
|
-
.getSourceFile(workingPlugin.getSourceFile().getFilePath())) === null || _a === void 0 ? void 0 : _a.getClass(pluginClassName);
|
|
137
|
-
if (!newPlugin) {
|
|
138
|
-
throw new Error(`Could not find class "${pluginClassName}" in the new project`);
|
|
139
|
-
}
|
|
140
|
-
workingPlugin = new vendure_plugin_ref_1.VendurePluginRef(newPlugin);
|
|
141
132
|
const command = followUpCommands.find(c => c.id === featureType);
|
|
142
133
|
try {
|
|
143
|
-
const result = await command.run({ plugin
|
|
134
|
+
const result = await command.run({ plugin });
|
|
144
135
|
allModifiedSourceFiles = result.modifiedSourceFiles;
|
|
145
136
|
for (const sourceFile of allModifiedSourceFiles) {
|
|
146
137
|
sourceFile.organizeImports();
|
|
@@ -150,7 +141,6 @@ async function createNewPlugin() {
|
|
|
150
141
|
prompts_1.log.error(`Error adding feature "${command.id}"`);
|
|
151
142
|
prompts_1.log.error(e.stack);
|
|
152
143
|
}
|
|
153
|
-
await workingProject.save();
|
|
154
144
|
}
|
|
155
145
|
}
|
|
156
146
|
return {
|
|
@@ -159,51 +149,77 @@ async function createNewPlugin() {
|
|
|
159
149
|
};
|
|
160
150
|
}
|
|
161
151
|
exports.createNewPlugin = createNewPlugin;
|
|
162
|
-
async function generatePlugin(options) {
|
|
163
|
-
var _a, _b;
|
|
152
|
+
async function generatePlugin(project, options) {
|
|
153
|
+
var _a, _b, _c, _d;
|
|
164
154
|
const nameWithoutPlugin = options.name.replace(/-?plugin$/i, '');
|
|
165
155
|
const normalizedName = nameWithoutPlugin + '-plugin';
|
|
166
156
|
const templateContext = Object.assign(Object.assign({}, options), { pluginName: (0, change_case_1.pascalCase)(normalizedName), pluginInitOptionsName: (0, change_case_1.constantCase)(normalizedName) + '_OPTIONS' });
|
|
167
157
|
const projectSpinner = (0, prompts_1.spinner)();
|
|
168
158
|
projectSpinner.start('Generating plugin scaffold...');
|
|
169
159
|
await (0, utils_1.pauseForPromptDisplay)();
|
|
170
|
-
const
|
|
171
|
-
const pluginFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/plugin.template.ts'));
|
|
160
|
+
const pluginFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/plugin.template.ts'), path_1.default.join(options.pluginDir, (0, change_case_1.paramCase)(nameWithoutPlugin) + '.plugin.ts'));
|
|
172
161
|
const pluginClass = pluginFile.getClass('TemplatePlugin');
|
|
173
162
|
if (!pluginClass) {
|
|
174
163
|
throw new Error('Could not find the plugin class in the generated file');
|
|
175
164
|
}
|
|
165
|
+
(_a = pluginFile.getImportDeclaration('./constants.template')) === null || _a === void 0 ? void 0 : _a.setModuleSpecifier('./constants');
|
|
166
|
+
(_b = pluginFile.getImportDeclaration('./types.template')) === null || _b === void 0 ? void 0 : _b.setModuleSpecifier('./types');
|
|
176
167
|
pluginClass.rename(templateContext.pluginName);
|
|
177
|
-
const typesFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/types.template.ts'));
|
|
178
|
-
const constantsFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/constants.template.ts'));
|
|
179
|
-
(
|
|
180
|
-
.getVariableDeclaration('TEMPLATE_PLUGIN_OPTIONS')) === null ||
|
|
181
|
-
(
|
|
182
|
-
.getVariableDeclaration('loggerCtx')) === null ||
|
|
183
|
-
typesFile.move(path_1.default.join(options.pluginDir, 'types.ts'));
|
|
184
|
-
pluginFile.move(path_1.default.join(options.pluginDir, (0, change_case_1.paramCase)(nameWithoutPlugin) + '.plugin.ts'));
|
|
185
|
-
constantsFile.move(path_1.default.join(options.pluginDir, 'constants.ts'));
|
|
168
|
+
const typesFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/types.template.ts'), path_1.default.join(options.pluginDir, 'types.ts'));
|
|
169
|
+
const constantsFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/constants.template.ts'), path_1.default.join(options.pluginDir, 'constants.ts'));
|
|
170
|
+
(_c = constantsFile
|
|
171
|
+
.getVariableDeclaration('TEMPLATE_PLUGIN_OPTIONS')) === null || _c === void 0 ? void 0 : _c.rename(templateContext.pluginInitOptionsName).set({ initializer: `Symbol('${templateContext.pluginInitOptionsName}')` });
|
|
172
|
+
(_d = constantsFile
|
|
173
|
+
.getVariableDeclaration('loggerCtx')) === null || _d === void 0 ? void 0 : _d.set({ initializer: `'${templateContext.pluginName}'` });
|
|
186
174
|
projectSpinner.stop('Generated plugin scaffold');
|
|
187
175
|
await project.save();
|
|
188
176
|
return {
|
|
189
|
-
project,
|
|
190
177
|
modifiedSourceFiles: [pluginFile, typesFile, constantsFile],
|
|
191
178
|
plugin: new vendure_plugin_ref_1.VendurePluginRef(pluginClass),
|
|
192
179
|
};
|
|
193
180
|
}
|
|
194
181
|
exports.generatePlugin = generatePlugin;
|
|
195
|
-
function
|
|
182
|
+
function findExistingPluginsDir(project) {
|
|
183
|
+
const pluginClasses = (0, ast_utils_1.getPluginClasses)(project);
|
|
184
|
+
if (pluginClasses.length === 0) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const pluginDirs = pluginClasses.map(c => {
|
|
188
|
+
return c.getSourceFile().getDirectoryPath();
|
|
189
|
+
});
|
|
190
|
+
const prefix = findCommonPath(pluginDirs);
|
|
191
|
+
const suffixStartIndex = prefix.length;
|
|
192
|
+
const rest = pluginDirs[0].substring(suffixStartIndex).replace(/^\//, '').split('/');
|
|
193
|
+
const suffix = rest.length > 1 ? rest.slice(1).join('/') : '';
|
|
194
|
+
return { prefix, suffix };
|
|
195
|
+
}
|
|
196
|
+
function getPluginDirName(name, existingPluginDirPattern) {
|
|
196
197
|
const cwd = process.cwd();
|
|
197
|
-
const pathParts = cwd.split(path_1.default.sep);
|
|
198
|
-
const currentlyInPluginsDir = pathParts[pathParts.length - 1] === 'plugins';
|
|
199
|
-
const currentlyInRootDir = fs.pathExistsSync(path_1.default.join(cwd, 'package.json'));
|
|
200
198
|
const nameWithoutPlugin = name.replace(/-?plugin$/i, '');
|
|
201
|
-
if (
|
|
202
|
-
return path_1.default.join(
|
|
199
|
+
if (existingPluginDirPattern) {
|
|
200
|
+
return path_1.default.join(existingPluginDirPattern.prefix, (0, change_case_1.paramCase)(nameWithoutPlugin), existingPluginDirPattern.suffix);
|
|
203
201
|
}
|
|
204
|
-
|
|
202
|
+
else {
|
|
205
203
|
return path_1.default.join(cwd, 'src', 'plugins', (0, change_case_1.paramCase)(nameWithoutPlugin));
|
|
206
204
|
}
|
|
207
|
-
|
|
205
|
+
}
|
|
206
|
+
function findCommonPath(paths) {
|
|
207
|
+
if (paths.length === 0) {
|
|
208
|
+
return '';
|
|
209
|
+
}
|
|
210
|
+
const pathSegmentsList = paths.map(p => p.split('/'));
|
|
211
|
+
const minLength = Math.min(...pathSegmentsList.map(segments => segments.length));
|
|
212
|
+
const commonPath = [];
|
|
213
|
+
for (let i = 0; i < minLength; i++) {
|
|
214
|
+
const currentSegment = pathSegmentsList[0][i];
|
|
215
|
+
const isCommon = pathSegmentsList.every(segments => segments[i] === currentSegment);
|
|
216
|
+
if (isCommon) {
|
|
217
|
+
commonPath.push(currentSegment);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return commonPath.join('/');
|
|
208
224
|
}
|
|
209
225
|
//# sourceMappingURL=create-new-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-new-plugin.js","sourceRoot":"","sources":["../../../../src/commands/add/plugin/create-new-plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAqF;AACrF,6CAAkE;AAClE,6CAA+B;AAC/B,gDAAwB;
|
|
1
|
+
{"version":3,"file":"create-new-plugin.js","sourceRoot":"","sources":["../../../../src/commands/add/plugin/create-new-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { PluginCommonModule, Type, VendurePlugin } from '@vendure/core';
|
|
2
|
-
|
|
3
|
-
import { TEMPLATE_PLUGIN_OPTIONS } from './constants.template';
|
|
4
|
-
import { PluginInitOptions } from './types.template';
|
|
5
|
-
|
|
6
|
-
@VendurePlugin({
|
|
7
|
-
imports: [PluginCommonModule],
|
|
8
|
-
providers: [{ provide: TEMPLATE_PLUGIN_OPTIONS, useFactory: () => TemplatePlugin.options }],
|
|
9
|
-
configuration: config => {
|
|
10
|
-
// Plugin-specific configuration
|
|
11
|
-
// such as custom fields, custom permissions,
|
|
12
|
-
// strategies etc. can be configured here by
|
|
13
|
-
// modifying the `config` object.
|
|
14
|
-
return config;
|
|
15
|
-
},
|
|
16
|
-
compatibility: '^2.0.0',
|
|
17
|
-
})
|
|
18
|
-
export class TemplatePlugin {
|
|
19
|
-
static options: PluginInitOptions;
|
|
20
|
-
|
|
21
|
-
static init(options: PluginInitOptions): Type<TemplatePlugin> {
|
|
22
|
-
this.options = options;
|
|
23
|
-
return TemplatePlugin;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
import { PluginCommonModule, Type, VendurePlugin } from '@vendure/core';
|
|
2
|
+
|
|
3
|
+
import { TEMPLATE_PLUGIN_OPTIONS } from './constants.template';
|
|
4
|
+
import { PluginInitOptions } from './types.template';
|
|
5
|
+
|
|
6
|
+
@VendurePlugin({
|
|
7
|
+
imports: [PluginCommonModule],
|
|
8
|
+
providers: [{ provide: TEMPLATE_PLUGIN_OPTIONS, useFactory: () => TemplatePlugin.options }],
|
|
9
|
+
configuration: config => {
|
|
10
|
+
// Plugin-specific configuration
|
|
11
|
+
// such as custom fields, custom permissions,
|
|
12
|
+
// strategies etc. can be configured here by
|
|
13
|
+
// modifying the `config` object.
|
|
14
|
+
return config;
|
|
15
|
+
},
|
|
16
|
+
compatibility: '^2.0.0',
|
|
17
|
+
})
|
|
18
|
+
export class TemplatePlugin {
|
|
19
|
+
static options: PluginInitOptions;
|
|
20
|
+
|
|
21
|
+
static init(options: PluginInitOptions): Type<TemplatePlugin> {
|
|
22
|
+
this.options = options;
|
|
23
|
+
return TemplatePlugin;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -7,6 +7,7 @@ exports.addServiceCommand = void 0;
|
|
|
7
7
|
const prompts_1 = require("@clack/prompts");
|
|
8
8
|
const change_case_1 = require("change-case");
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const ts_morph_1 = require("ts-morph");
|
|
10
11
|
const constants_1 = require("../../../constants");
|
|
11
12
|
const cli_command_1 = require("../../../shared/cli-command");
|
|
12
13
|
const service_ref_1 = require("../../../shared/service-ref");
|
|
@@ -22,9 +23,9 @@ exports.addServiceCommand = new cli_command_1.CliCommand({
|
|
|
22
23
|
run: options => addService(options),
|
|
23
24
|
});
|
|
24
25
|
async function addService(providedOptions) {
|
|
25
|
-
var _a;
|
|
26
|
+
var _a, _b;
|
|
26
27
|
const providedVendurePlugin = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.plugin;
|
|
27
|
-
const project = await (0, shared_prompts_1.analyzeProject)({ providedVendurePlugin, cancelledMessage });
|
|
28
|
+
const { project } = await (0, shared_prompts_1.analyzeProject)({ providedVendurePlugin, cancelledMessage });
|
|
28
29
|
const vendurePlugin = providedVendurePlugin !== null && providedVendurePlugin !== void 0 ? providedVendurePlugin : (await (0, shared_prompts_1.selectPlugin)(project, cancelledMessage));
|
|
29
30
|
const modifiedSourceFiles = [];
|
|
30
31
|
const type = (_a = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.type) !== null && _a !== void 0 ? _a : (await (0, prompts_1.select)({
|
|
@@ -84,8 +85,9 @@ async function addService(providedOptions) {
|
|
|
84
85
|
}
|
|
85
86
|
options.serviceName = name;
|
|
86
87
|
serviceSpinner.start(`Creating ${options.serviceName}...`);
|
|
88
|
+
const serviceSourceFilePath = getServiceFilePath(vendurePlugin, options.serviceName);
|
|
87
89
|
await (0, utils_1.pauseForPromptDisplay)();
|
|
88
|
-
serviceSourceFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/basic-service.template.ts'));
|
|
90
|
+
serviceSourceFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/basic-service.template.ts'), serviceSourceFilePath);
|
|
89
91
|
serviceClassDeclaration = serviceSourceFile
|
|
90
92
|
.getClass('BasicServiceTemplate')
|
|
91
93
|
.rename(options.serviceName);
|
|
@@ -93,7 +95,8 @@ async function addService(providedOptions) {
|
|
|
93
95
|
else {
|
|
94
96
|
serviceSpinner.start(`Creating ${options.serviceName}...`);
|
|
95
97
|
await (0, utils_1.pauseForPromptDisplay)();
|
|
96
|
-
|
|
98
|
+
const serviceSourceFilePath = getServiceFilePath(vendurePlugin, options.serviceName);
|
|
99
|
+
serviceSourceFile = (0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/entity-service.template.ts'), serviceSourceFilePath);
|
|
97
100
|
serviceClassDeclaration = serviceSourceFile
|
|
98
101
|
.getClass('EntityServiceTemplate')
|
|
99
102
|
.rename(options.serviceName);
|
|
@@ -132,9 +135,29 @@ async function addService(providedOptions) {
|
|
|
132
135
|
customizeUpdateMethod(serviceClassDeclaration, entityRef);
|
|
133
136
|
removedUnusedConstructorArgs(serviceClassDeclaration, entityRef);
|
|
134
137
|
}
|
|
138
|
+
const pluginOptions = vendurePlugin.getPluginOptions();
|
|
139
|
+
if (pluginOptions) {
|
|
140
|
+
(0, ast_utils_1.addImportsToFile)(serviceSourceFile, {
|
|
141
|
+
moduleSpecifier: pluginOptions.constantDeclaration.getSourceFile(),
|
|
142
|
+
namedImports: [pluginOptions.constantDeclaration.getName()],
|
|
143
|
+
});
|
|
144
|
+
(0, ast_utils_1.addImportsToFile)(serviceSourceFile, {
|
|
145
|
+
moduleSpecifier: pluginOptions.typeDeclaration.getSourceFile(),
|
|
146
|
+
namedImports: [pluginOptions.typeDeclaration.getName()],
|
|
147
|
+
});
|
|
148
|
+
(0, ast_utils_1.addImportsToFile)(serviceSourceFile, {
|
|
149
|
+
moduleSpecifier: '@nestjs/common',
|
|
150
|
+
namedImports: ['Inject'],
|
|
151
|
+
});
|
|
152
|
+
(_b = serviceClassDeclaration
|
|
153
|
+
.getConstructors()[0]) === null || _b === void 0 ? void 0 : _b.addParameter({
|
|
154
|
+
scope: ts_morph_1.Scope.Private,
|
|
155
|
+
name: 'options',
|
|
156
|
+
type: pluginOptions.typeDeclaration.getName(),
|
|
157
|
+
decorators: [{ name: 'Inject', arguments: [pluginOptions.constantDeclaration.getName()] }],
|
|
158
|
+
}).formatText();
|
|
159
|
+
}
|
|
135
160
|
modifiedSourceFiles.push(serviceSourceFile);
|
|
136
|
-
const serviceFileName = (0, change_case_1.paramCase)(options.serviceName).replace(/-service$/, '.service');
|
|
137
|
-
serviceSourceFile === null || serviceSourceFile === void 0 ? void 0 : serviceSourceFile.move(path_1.default.join(vendurePlugin.getPluginDir().getPath(), 'services', `${serviceFileName}.ts`));
|
|
138
161
|
serviceSpinner.message(`Registering service with plugin...`);
|
|
139
162
|
vendurePlugin.addProvider(options.serviceName);
|
|
140
163
|
(0, ast_utils_1.addImportsToFile)(vendurePlugin.classDeclaration.getSourceFile(), {
|
|
@@ -149,15 +172,19 @@ async function addService(providedOptions) {
|
|
|
149
172
|
serviceRef: new service_ref_1.ServiceRef(serviceClassDeclaration),
|
|
150
173
|
};
|
|
151
174
|
}
|
|
175
|
+
function getServiceFilePath(plugin, serviceName) {
|
|
176
|
+
const serviceFileName = (0, change_case_1.paramCase)(serviceName).replace(/-service$/, '.service');
|
|
177
|
+
return path_1.default.join(plugin.getPluginDir().getPath(), 'services', `${serviceFileName}.ts`);
|
|
178
|
+
}
|
|
152
179
|
function customizeFindOneMethod(serviceClassDeclaration, entityRef) {
|
|
153
180
|
const findOneMethod = serviceClassDeclaration.getMethod('findOne');
|
|
154
181
|
findOneMethod
|
|
155
182
|
.setBodyText(writer => {
|
|
156
|
-
writer.write(` return this.connection
|
|
157
|
-
.getRepository(ctx, ${entityRef.name})
|
|
158
|
-
.findOne({
|
|
159
|
-
where: { id },
|
|
160
|
-
relations,
|
|
183
|
+
writer.write(` return this.connection
|
|
184
|
+
.getRepository(ctx, ${entityRef.name})
|
|
185
|
+
.findOne({
|
|
186
|
+
where: { id },
|
|
187
|
+
relations,
|
|
161
188
|
})`);
|
|
162
189
|
if (entityRef.isTranslatable()) {
|
|
163
190
|
writer.write(`.then(entity => entity && this.translator.translate(entity, ctx));`);
|
|
@@ -206,14 +233,14 @@ function customizeCreateMethod(serviceClassDeclaration, entityRef) {
|
|
|
206
233
|
.setBodyText(writer => {
|
|
207
234
|
var _a;
|
|
208
235
|
if (entityRef.isTranslatable()) {
|
|
209
|
-
writer.write(`const newEntity = await this.translatableSaver.create({
|
|
210
|
-
ctx,
|
|
211
|
-
input,
|
|
212
|
-
entityType: ${entityRef.name},
|
|
213
|
-
translationType: ${(_a = entityRef.getTranslationClass()) === null || _a === void 0 ? void 0 : _a.getName()},
|
|
214
|
-
beforeSave: async f => {
|
|
215
|
-
// Any pre-save logic can go here
|
|
216
|
-
},
|
|
236
|
+
writer.write(`const newEntity = await this.translatableSaver.create({
|
|
237
|
+
ctx,
|
|
238
|
+
input,
|
|
239
|
+
entityType: ${entityRef.name},
|
|
240
|
+
translationType: ${(_a = entityRef.getTranslationClass()) === null || _a === void 0 ? void 0 : _a.getName()},
|
|
241
|
+
beforeSave: async f => {
|
|
242
|
+
// Any pre-save logic can go here
|
|
243
|
+
},
|
|
217
244
|
});`);
|
|
218
245
|
}
|
|
219
246
|
else {
|
|
@@ -235,14 +262,14 @@ function customizeUpdateMethod(serviceClassDeclaration, entityRef) {
|
|
|
235
262
|
.setBodyText(writer => {
|
|
236
263
|
var _a;
|
|
237
264
|
if (entityRef.isTranslatable()) {
|
|
238
|
-
writer.write(`const updatedEntity = await this.translatableSaver.update({
|
|
239
|
-
ctx,
|
|
240
|
-
input,
|
|
241
|
-
entityType: ${entityRef.name},
|
|
242
|
-
translationType: ${(_a = entityRef.getTranslationClass()) === null || _a === void 0 ? void 0 : _a.getName()},
|
|
243
|
-
beforeSave: async f => {
|
|
244
|
-
// Any pre-save logic can go here
|
|
245
|
-
},
|
|
265
|
+
writer.write(`const updatedEntity = await this.translatableSaver.update({
|
|
266
|
+
ctx,
|
|
267
|
+
input,
|
|
268
|
+
entityType: ${entityRef.name},
|
|
269
|
+
translationType: ${(_a = entityRef.getTranslationClass()) === null || _a === void 0 ? void 0 : _a.getName()},
|
|
270
|
+
beforeSave: async f => {
|
|
271
|
+
// Any pre-save logic can go here
|
|
272
|
+
},
|
|
246
273
|
});`);
|
|
247
274
|
}
|
|
248
275
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-service.js","sourceRoot":"","sources":["../../../../src/commands/add/service/add-service.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA8E;AAC9E,6CAAwC;AACxC,gDAAwB;
|
|
1
|
+
{"version":3,"file":"add-service.js","sourceRoot":"","sources":["../../../../src/commands/add/service/add-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.addUiExtensionsCommand = void 0;
|
|
7
7
|
const prompts_1 = require("@clack/prompts");
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
9
|
const path_1 = __importDefault(require("path"));
|
|
9
10
|
const cli_command_1 = require("../../../shared/cli-command");
|
|
10
11
|
const package_json_ref_1 = require("../../../shared/package-json-ref");
|
|
@@ -21,7 +22,7 @@ exports.addUiExtensionsCommand = new cli_command_1.CliCommand({
|
|
|
21
22
|
});
|
|
22
23
|
async function addUiExtensions(options) {
|
|
23
24
|
const providedVendurePlugin = options === null || options === void 0 ? void 0 : options.plugin;
|
|
24
|
-
const project = await (0, shared_prompts_1.analyzeProject)({ providedVendurePlugin });
|
|
25
|
+
const { project } = await (0, shared_prompts_1.analyzeProject)({ providedVendurePlugin });
|
|
25
26
|
const vendurePlugin = providedVendurePlugin !== null && providedVendurePlugin !== void 0 ? providedVendurePlugin : (await (0, shared_prompts_1.selectPlugin)(project, 'Add UI extensions cancelled'));
|
|
26
27
|
const packageJson = new package_json_ref_1.PackageJson(project);
|
|
27
28
|
if (vendurePlugin.hasUiExtensions()) {
|
|
@@ -31,7 +32,15 @@ async function addUiExtensions(options) {
|
|
|
31
32
|
(0, add_ui_extension_static_prop_1.addUiExtensionStaticProp)(vendurePlugin);
|
|
32
33
|
prompts_1.log.success('Updated the plugin class');
|
|
33
34
|
const installSpinner = (0, prompts_1.spinner)();
|
|
34
|
-
|
|
35
|
+
const packageManager = packageJson.determinePackageManager();
|
|
36
|
+
const packageJsonFile = packageJson.locatePackageJsonWithVendureDependency();
|
|
37
|
+
prompts_1.log.info(`Detected package manager: ${packageManager}`);
|
|
38
|
+
if (!packageJsonFile) {
|
|
39
|
+
(0, prompts_1.cancel)(`Could not locate package.json file with a dependency on Vendure.`);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
prompts_1.log.info(`Detected package.json: ${packageJsonFile}`);
|
|
43
|
+
installSpinner.start(`Installing dependencies using ${packageManager}...`);
|
|
35
44
|
try {
|
|
36
45
|
const version = packageJson.determineVendureVersion();
|
|
37
46
|
await packageJson.installPackages([
|
|
@@ -47,10 +56,14 @@ async function addUiExtensions(options) {
|
|
|
47
56
|
}
|
|
48
57
|
installSpinner.stop('Dependencies installed');
|
|
49
58
|
const pluginDir = vendurePlugin.getPluginDir().getPath();
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
const providersFileDest = path_1.default.join(pluginDir, 'ui', 'providers.ts');
|
|
60
|
+
if (!fs_extra_1.default.existsSync(providersFileDest)) {
|
|
61
|
+
(0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/providers.template.ts'), providersFileDest);
|
|
62
|
+
}
|
|
63
|
+
const routesFileDest = path_1.default.join(pluginDir, 'ui', 'routes.ts');
|
|
64
|
+
if (!fs_extra_1.default.existsSync(routesFileDest)) {
|
|
65
|
+
(0, ast_utils_1.createFile)(project, path_1.default.join(__dirname, 'templates/routes.template.ts'), routesFileDest);
|
|
66
|
+
}
|
|
54
67
|
prompts_1.log.success('Created UI extension scaffold');
|
|
55
68
|
const vendureConfig = new vendure_config_ref_1.VendureConfigRef(project);
|
|
56
69
|
if (!vendureConfig) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-ui-extensions.js","sourceRoot":"","sources":["../../../../src/commands/add/ui-extensions/add-ui-extensions.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"add-ui-extensions.js","sourceRoot":"","sources":["../../../../src/commands/add/ui-extensions/add-ui-extensions.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmE;AACnE,wDAA0B;AAC1B,gDAAwB;AAExB,6DAA8E;AAC9E,uEAA+D;AAC/D,mEAA8E;AAC9E,2EAAsE;AAEtE,4DAAiF;AAEjF,uHAAgH;AAChH,oHAA6G;AAMhG,QAAA,sBAAsB,GAAG,IAAI,wBAAU,CAAyB;IACzE,EAAE,EAAE,mBAAmB;IACvB,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,4BAA4B;IACzC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;CAC3C,CAAC,CAAC;AAEH,KAAK,UAAU,eAAe,CAAC,OAAgC;IAC3D,MAAM,qBAAqB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACpE,MAAM,aAAa,GACf,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,CAAC,MAAM,IAAA,6BAAY,EAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAC1F,MAAM,WAAW,GAAG,IAAI,8BAAW,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,aAAa,CAAC,eAAe,EAAE,EAAE,CAAC;QAClC,IAAA,eAAK,EAAC,kDAAkD,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC;IAChD,CAAC;IACD,IAAA,uDAAwB,EAAC,aAAa,CAAC,CAAC;IAExC,aAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAA,iBAAO,GAAE,CAAC;IACjC,MAAM,cAAc,GAAG,WAAW,CAAC,uBAAuB,EAAE,CAAC;IAC7D,MAAM,eAAe,GAAG,WAAW,CAAC,sCAAsC,EAAE,CAAC;IAC7E,aAAG,CAAC,IAAI,CAAC,6BAA6B,cAAc,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,IAAA,gBAAM,EAAC,kEAAkE,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,aAAG,CAAC,IAAI,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;IACtD,cAAc,CAAC,KAAK,CAAC,iCAAiC,cAAc,KAAK,CAAC,CAAC;IAC3E,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,uBAAuB,EAAE,CAAC;QACtD,MAAM,WAAW,CAAC,eAAe,CAAC;YAC9B;gBACI,GAAG,EAAE,oBAAoB;gBACzB,eAAe,EAAE,IAAI;gBACrB,OAAO;aACV;SACJ,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,aAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,OAAiB,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,CAAC;IAEzD,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACrE,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpC,IAAA,sBAAU,EAAC,OAAO,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iCAAiC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,CAAC,kBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACjC,IAAA,sBAAU,EAAC,OAAO,EAAE,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9F,CAAC;IAED,aAAG,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAI,qCAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,aAAG,CAAC,OAAO,CACP,kIAAkI,CACrI,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAA,iCAAqB,EAAC;YACrC,EAAE,EAAE,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE;YAClD,IAAI,EAAE,aAAa,CAAC,UAAU;SACjC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,qDAAuB,EAAC,aAAa,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;QACxF,IAAI,OAAO,EAAE,CAAC;YACV,aAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,aAAG,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC;YAClE,IAAA,cAAI,EACA,6EAA6E;gBACzE,SAAS,eAAe,2CAA2C,EACvE,MAAM,CACT,CAAC;QACN,CAAC;IACL,CAAC;IAED,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;AAC9F,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.generateMigrationCommand = void 0;
|
|
4
7
|
const prompts_1 = require("@clack/prompts");
|
|
8
|
+
const unique_1 = require("@vendure/common/lib/unique");
|
|
5
9
|
const core_1 = require("@vendure/core");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
6
11
|
const cli_command_1 = require("../../../shared/cli-command");
|
|
7
12
|
const shared_prompts_1 = require("../../../shared/shared-prompts");
|
|
8
13
|
const vendure_config_ref_1 = require("../../../shared/vendure-config-ref");
|
|
@@ -15,7 +20,7 @@ exports.generateMigrationCommand = new cli_command_1.CliCommand({
|
|
|
15
20
|
run: () => runGenerateMigration(),
|
|
16
21
|
});
|
|
17
22
|
async function runGenerateMigration() {
|
|
18
|
-
const project = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
|
|
23
|
+
const { project, tsConfigPath } = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
|
|
19
24
|
const vendureConfig = new vendure_config_ref_1.VendureConfigRef(project);
|
|
20
25
|
prompts_1.log.info('Using VendureConfig from ' + vendureConfig.getPathRelativeToProjectRoot());
|
|
21
26
|
const name = await (0, prompts_1.text)({
|
|
@@ -32,10 +37,43 @@ async function runGenerateMigration() {
|
|
|
32
37
|
(0, prompts_1.cancel)(cancelledMessage);
|
|
33
38
|
process.exit(0);
|
|
34
39
|
}
|
|
35
|
-
const config = await (0, load_vendure_config_file_1.loadVendureConfigFile)(vendureConfig);
|
|
40
|
+
const config = await (0, load_vendure_config_file_1.loadVendureConfigFile)(vendureConfig, tsConfigPath);
|
|
41
|
+
const migrationsDirs = getMigrationsDir(vendureConfig, 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
|
+
}
|
|
36
74
|
const migrationSpinner = (0, prompts_1.spinner)();
|
|
37
75
|
migrationSpinner.start('Generating migration...');
|
|
38
|
-
const migrationName = await (0, core_1.generateMigration)(config, { name, outputDir:
|
|
76
|
+
const migrationName = await (0, core_1.generateMigration)(config, { name, outputDir: migrationDir });
|
|
39
77
|
const report = typeof migrationName === 'string'
|
|
40
78
|
? `New migration generated: ${migrationName}`
|
|
41
79
|
: 'No changes in database schema were found, so no migration was generated';
|
|
@@ -45,4 +83,27 @@ async function runGenerateMigration() {
|
|
|
45
83
|
modifiedSourceFiles: [],
|
|
46
84
|
};
|
|
47
85
|
}
|
|
86
|
+
function getMigrationsDir(vendureConfigRef, config) {
|
|
87
|
+
const options = [];
|
|
88
|
+
if (Array.isArray(config.dbConnectionOptions.migrations) &&
|
|
89
|
+
config.dbConnectionOptions.migrations.length) {
|
|
90
|
+
const firstEntry = config.dbConnectionOptions.migrations[0];
|
|
91
|
+
if (typeof firstEntry === 'string') {
|
|
92
|
+
options.push(path_1.default.dirname(firstEntry));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const migrationFile = vendureConfigRef.sourceFile
|
|
96
|
+
.getProject()
|
|
97
|
+
.getSourceFiles()
|
|
98
|
+
.find(sf => {
|
|
99
|
+
return sf
|
|
100
|
+
.getClasses()
|
|
101
|
+
.find(c => c.getImplements().find(i => i.getText() === 'MigrationInterface'));
|
|
102
|
+
});
|
|
103
|
+
if (migrationFile) {
|
|
104
|
+
options.push(migrationFile.getDirectory().getPath());
|
|
105
|
+
}
|
|
106
|
+
options.push(path_1.default.join(vendureConfigRef.sourceFile.getDirectory().getPath(), '../migrations'));
|
|
107
|
+
return (0, unique_1.unique)(options.map(p => path_1.default.normalize(p)));
|
|
108
|
+
}
|
|
48
109
|
//# sourceMappingURL=generate-migration.js.map
|