directus-template-cli 0.5.0-beta.3 → 0.5.0-beta.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.
|
@@ -17,64 +17,55 @@ async function installExtension(extension) {
|
|
|
17
17
|
}));
|
|
18
18
|
}
|
|
19
19
|
async function loadExtensions(dir) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
core_1.ux.log(result.value);
|
|
55
|
-
}
|
|
20
|
+
const extensions = (0, read_file_1.default)('extensions', dir);
|
|
21
|
+
if (extensions && extensions.length > 0) {
|
|
22
|
+
const installedExtensions = await sdk_2.api.client.request((0, sdk_1.readExtensions)());
|
|
23
|
+
const registryExtensions = extensions.filter(ext => { var _a; return ((_a = ext.meta) === null || _a === void 0 ? void 0 : _a.source) === 'registry' && !ext.bundle; });
|
|
24
|
+
const bundles = [...new Set(extensions.filter(ext => ext.bundle).map(ext => ext.bundle))];
|
|
25
|
+
const localExtensions = extensions.filter(ext => { var _a; return ((_a = ext.meta) === null || _a === void 0 ? void 0 : _a.source) === 'local'; });
|
|
26
|
+
const extensionsToInstall = extensions.filter(ext => {
|
|
27
|
+
var _a;
|
|
28
|
+
return ((_a = ext.meta) === null || _a === void 0 ? void 0 : _a.source) === 'registry'
|
|
29
|
+
&& !ext.bundle
|
|
30
|
+
// @ts-expect-error
|
|
31
|
+
&& !installedExtensions.some(installed => installed.id === ext.id);
|
|
32
|
+
});
|
|
33
|
+
core_1.ux.log(`Found ${extensions.length} extensions total: ${registryExtensions.length} registry extensions (including ${bundles.length} bundles), and ${localExtensions.length} local extensions`);
|
|
34
|
+
if (extensionsToInstall.length > 0) {
|
|
35
|
+
core_1.ux.action.start(`Installing ${extensionsToInstall.length} extensions`);
|
|
36
|
+
const results = await Promise.allSettled(extensionsToInstall.map(async (ext) => {
|
|
37
|
+
var _a, _b, _c;
|
|
38
|
+
try {
|
|
39
|
+
await installExtension({
|
|
40
|
+
id: ext.id,
|
|
41
|
+
// The extension version UUID is the folder name
|
|
42
|
+
version: (_a = ext.meta) === null || _a === void 0 ? void 0 : _a.folder,
|
|
43
|
+
});
|
|
44
|
+
return `Installed ${(_b = ext.schema) === null || _b === void 0 ? void 0 : _b.name}`;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
(0, catch_error_1.default)(error);
|
|
48
|
+
return `Failed to install ${(_c = ext.schema) === null || _c === void 0 ? void 0 : _c.name}`;
|
|
49
|
+
}
|
|
50
|
+
}));
|
|
51
|
+
for (const result of results) {
|
|
52
|
+
if (result.status === 'fulfilled') {
|
|
53
|
+
core_1.ux.log(result.value);
|
|
56
54
|
}
|
|
57
|
-
core_1.ux.action.stop();
|
|
58
|
-
core_1.ux.log('Finished installing extensions');
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
// All extensions are already installed
|
|
62
|
-
core_1.ux.log('All extensions are already installed');
|
|
63
|
-
}
|
|
64
|
-
if (localExtensions.length > 0) {
|
|
65
|
-
core_1.ux.log(`Note: ${localExtensions.length} local extensions need to be installed manually.`);
|
|
66
55
|
}
|
|
56
|
+
core_1.ux.action.stop();
|
|
57
|
+
core_1.ux.log('Finished installing extensions');
|
|
67
58
|
}
|
|
68
59
|
else {
|
|
69
|
-
|
|
60
|
+
// All extensions are already installed
|
|
61
|
+
core_1.ux.log('All extensions are already installed');
|
|
62
|
+
}
|
|
63
|
+
if (localExtensions.length > 0) {
|
|
64
|
+
core_1.ux.log(`Note: ${localExtensions.length} local extensions need to be installed manually.`);
|
|
70
65
|
}
|
|
71
66
|
}
|
|
72
|
-
|
|
73
|
-
(
|
|
74
|
-
context: {
|
|
75
|
-
operation: 'loadExtensions',
|
|
76
|
-
},
|
|
77
|
-
});
|
|
67
|
+
else {
|
|
68
|
+
core_1.ux.log('No extensions found or extensions file is empty. Skipping extension installation.');
|
|
78
69
|
}
|
|
79
70
|
}
|
|
80
71
|
exports.default = loadExtensions;
|
|
@@ -32,7 +32,6 @@ async function loadFolders(dir) {
|
|
|
32
32
|
const { id, ...rest } = folder;
|
|
33
33
|
try {
|
|
34
34
|
await sdk_2.api.client.request((0, sdk_1.updateFolder)(id, rest));
|
|
35
|
-
core_1.ux.log(`Updated relationships for folder: ${folder.name}`);
|
|
36
35
|
}
|
|
37
36
|
catch (error) {
|
|
38
37
|
(0, catch_error_1.default)(error);
|
package/oclif.manifest.json
CHANGED