@vendure/cli 2.2.2 → 2.2.4
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/add.js +1 -1
- package/dist/commands/add/add.js.map +1 -1
- 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 +26 -15
- package/dist/commands/add/entity/add-entity.js.map +1 -1
- package/dist/commands/add/job-queue/add-job-queue.js +5 -5
- 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 +57 -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 +33 -6
- 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 +61 -5
- 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 +31 -0
- 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,80 @@ 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
|
+
if (pluginClasses.length === 1) {
|
|
188
|
+
return { prefix: path_1.default.dirname(pluginClasses[0].getSourceFile().getDirectoryPath()), suffix: '' };
|
|
189
|
+
}
|
|
190
|
+
const pluginDirs = pluginClasses.map(c => {
|
|
191
|
+
return c.getSourceFile().getDirectoryPath();
|
|
192
|
+
});
|
|
193
|
+
const prefix = findCommonPath(pluginDirs);
|
|
194
|
+
const suffixStartIndex = prefix.length;
|
|
195
|
+
const rest = pluginDirs[0].substring(suffixStartIndex).replace(/^\//, '').split('/');
|
|
196
|
+
const suffix = rest.length > 1 ? rest.slice(1).join('/') : '';
|
|
197
|
+
return { prefix, suffix };
|
|
198
|
+
}
|
|
199
|
+
function getPluginDirName(name, existingPluginDirPattern) {
|
|
196
200
|
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
201
|
const nameWithoutPlugin = name.replace(/-?plugin$/i, '');
|
|
201
|
-
if (
|
|
202
|
-
return path_1.default.join(
|
|
202
|
+
if (existingPluginDirPattern) {
|
|
203
|
+
return path_1.default.join(existingPluginDirPattern.prefix, (0, change_case_1.paramCase)(nameWithoutPlugin), existingPluginDirPattern.suffix);
|
|
203
204
|
}
|
|
204
|
-
|
|
205
|
+
else {
|
|
205
206
|
return path_1.default.join(cwd, 'src', 'plugins', (0, change_case_1.paramCase)(nameWithoutPlugin));
|
|
206
207
|
}
|
|
207
|
-
|
|
208
|
+
}
|
|
209
|
+
function findCommonPath(paths) {
|
|
210
|
+
if (paths.length === 0) {
|
|
211
|
+
return '';
|
|
212
|
+
}
|
|
213
|
+
const pathSegmentsList = paths.map(p => p.split('/'));
|
|
214
|
+
const minLength = Math.min(...pathSegmentsList.map(segments => segments.length));
|
|
215
|
+
const commonPath = [];
|
|
216
|
+
for (let i = 0; i < minLength; i++) {
|
|
217
|
+
const currentSegment = pathSegmentsList[0][i];
|
|
218
|
+
const isCommon = pathSegmentsList.every(segments => segments[i] === currentSegment);
|
|
219
|
+
if (isCommon) {
|
|
220
|
+
commonPath.push(currentSegment);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return commonPath.join('/');
|
|
208
227
|
}
|
|
209
228
|
//# 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,6 +172,10 @@ 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
|
|
@@ -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":"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"}
|
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/generate-migration/generate-migration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/generate-migration/generate-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import { VendureConfig } from '@vendure/core';
|
|
1
2
|
import { VendureConfigRef } from '../../shared/vendure-config-ref';
|
|
2
|
-
export declare function loadVendureConfigFile(vendureConfig: VendureConfigRef): Promise<
|
|
3
|
+
export declare function loadVendureConfigFile(vendureConfig: VendureConfigRef, providedTsConfigPath?: string): Promise<VendureConfig>;
|
|
@@ -31,11 +31,18 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
31
31
|
const ts_node_1 = require("ts-node");
|
|
32
32
|
const ast_utils_1 = require("../../utilities/ast-utils");
|
|
33
33
|
const utils_1 = require("../../utilities/utils");
|
|
34
|
-
async function loadVendureConfigFile(vendureConfig) {
|
|
34
|
+
async function loadVendureConfigFile(vendureConfig, providedTsConfigPath) {
|
|
35
35
|
await Promise.resolve().then(() => __importStar(require('dotenv/config')));
|
|
36
36
|
if (!(0, utils_1.isRunningInTsNode)()) {
|
|
37
|
-
|
|
38
|
-
|
|
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;
|
|
39
46
|
(0, ts_node_1.register)({
|
|
40
47
|
compilerOptions: Object.assign(Object.assign({}, compilerOptions), { moduleResolution: 'NodeNext', module: 'NodeNext' }),
|
|
41
48
|
transpileOnly: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-vendure-config-file.js","sourceRoot":"","sources":["../../../src/commands/migrate/load-vendure-config-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"load-vendure-config-file.js","sourceRoot":"","sources":["../../../src/commands/migrate/load-vendure-config-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0DAA6B;AAC7B,qCAAmC;AAGnC,yDAA+D;AAC/D,iDAA0D;AAEnD,KAAK,UAAU,qBAAqB,CACvC,aAA+B,EAC/B,oBAA6B;IAE7B,wDAAa,eAAe,GAAC,CAAC;IAC9B,IAAI,CAAC,IAAA,yBAAiB,GAAE,EAAE,CAAC;QACvB,IAAI,YAAoB,CAAC;QACzB,IAAI,oBAAoB,EAAE,CAAC;YACvB,YAAY,GAAG,oBAAoB,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAkB,GAAE,CAAC;YAChD,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC;QAC9D,IAAA,kBAAQ,EAAC;YACL,eAAe,kCAAO,eAAe,KAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAE;YACzF,aAAa,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;YAExB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAChD,aAAa,CAAC,QAAQ,CAAC;gBACnB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,eAAe,CAAC,KAAK;aAC/B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,MAAM,eAAe,GAAG,aAAa,CAAC,2BAA2B,EAAE,CAAC;IACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC;AAClB,CAAC;AAnCD,sDAmCC"}
|