@marsx-dev/launcher 0.0.33 → 0.0.35
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/configuration.js +3 -3
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +38 -38
- package/package.json +1 -1
- package/src/configuration.ts +2 -2
- package/src/loader.ts +45 -39
package/dist/configuration.js
CHANGED
|
@@ -55,8 +55,8 @@ const ConfigSchema = yup.object().shape({
|
|
|
55
55
|
.string()
|
|
56
56
|
.required()
|
|
57
57
|
.transform(v => path_1.default.resolve(v)),
|
|
58
|
-
compileCache: yup.boolean().
|
|
59
|
-
saveImportedBlocks: yup.boolean().
|
|
58
|
+
compileCache: yup.boolean().required(),
|
|
59
|
+
saveImportedBlocks: yup.boolean().required(),
|
|
60
60
|
mongoConn: yup.string().required(),
|
|
61
61
|
mongoDbName: yup.string().required(),
|
|
62
62
|
azureStorageConnection: yup.string().required(),
|
|
@@ -151,4 +151,4 @@ function getEnvVarMapping() {
|
|
|
151
151
|
return result;
|
|
152
152
|
}
|
|
153
153
|
exports.CustomEnvironmentVariables = getEnvVarMapping();
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDbkQsb0RBQWtDO0FBQ2xDLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIseUNBQTJCO0FBQzNCLDZCQUFzQztBQUV0QyxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztBQTZCNUMsTUFBYSxXQUFZLFNBQVEsS0FBSztDQUFHO0FBQXpDLGtDQUF5QztBQUV6QyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDckMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDeEMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztJQUN0QyxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRTtJQUNsRCxTQUFTLEVBQUUsR0FBRztTQUNYLE1BQU0sRUFBRTtTQUNSLFFBQVEsRUFBRTtTQUNWLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxD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
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAQA,OAAO,EAA0B,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAQA,OAAO,EAA0B,QAAQ,EAAE,MAAM,aAAa,CAAC;AA6K/D,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,uBASrD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CASzD"}
|
package/dist/loader.js
CHANGED
|
@@ -16,7 +16,7 @@ const sfc_1 = require("./utils/sfc");
|
|
|
16
16
|
const fileUtils_1 = require("./utils/fileUtils");
|
|
17
17
|
const v3_1 = require("./utils/v3");
|
|
18
18
|
const IMPORTED_BLOCKS_DIR = '_imported';
|
|
19
|
-
let
|
|
19
|
+
let EXTERNAL_BLOCKS_CAHCE = new Map();
|
|
20
20
|
function isSfcBlock(block) {
|
|
21
21
|
return 'path' in block;
|
|
22
22
|
}
|
|
@@ -24,7 +24,8 @@ function getExternalBlockKey(block) {
|
|
|
24
24
|
const folder = isSfcBlock(block) ? block.path.folder : block.Folder;
|
|
25
25
|
const name = isSfcBlock(block) ? block.path.name : block.Name;
|
|
26
26
|
const blockTypeName = isSfcBlock(block) ? block.path.blockTypeName : block.Type;
|
|
27
|
-
|
|
27
|
+
const version = isSfcBlock(block) ? Number(block.metadata['version'] ?? 3) : 3;
|
|
28
|
+
return blockTypeName === 'settings' ? `${folder}/${name}.${blockTypeName}` : `mars${version}_${name}`;
|
|
28
29
|
}
|
|
29
30
|
function getImportedBlocksRoot() {
|
|
30
31
|
return path_1.default.join(configuration_1.config.blocksDir, IMPORTED_BLOCKS_DIR);
|
|
@@ -43,19 +44,18 @@ function isSettingsBlockFile(filePath) {
|
|
|
43
44
|
}
|
|
44
45
|
function rememberExternalBlocks(blocks) {
|
|
45
46
|
for (const block of blocks) {
|
|
46
|
-
|
|
47
|
+
const blockKey = getExternalBlockKey(block);
|
|
48
|
+
EXTERNAL_BLOCKS_CAHCE.set(blockKey, block);
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
function filterFreshExternalBlocks(blocks) {
|
|
50
|
-
const result =
|
|
51
|
-
for (const
|
|
52
|
-
const blockKey = getExternalBlockKey(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
downloadedExternalBlockNames.add(blockKey);
|
|
56
|
-
result.push(block);
|
|
52
|
+
const result = new Map();
|
|
53
|
+
for (const sfcBlock of blocks) {
|
|
54
|
+
const blockKey = getExternalBlockKey(sfcBlock);
|
|
55
|
+
EXTERNAL_BLOCKS_CAHCE.set(blockKey, sfcBlock);
|
|
56
|
+
result.set(blockKey, sfcBlock);
|
|
57
57
|
}
|
|
58
|
-
return result;
|
|
58
|
+
return Array.from(result.values());
|
|
59
59
|
}
|
|
60
60
|
async function downloadFromExternal(externalImport) {
|
|
61
61
|
const params = { api_key: externalImport.api_key, git_commit_ish: externalImport.git_commit_ish || '' };
|
|
@@ -69,15 +69,14 @@ async function downloadFromExternal(externalImport) {
|
|
|
69
69
|
console.log(`${url} does not support V4, fallback to V3`);
|
|
70
70
|
}
|
|
71
71
|
const v3Resp = await axios_1.default.get(`${url}/api/GetExportedAppBlocks`, { params });
|
|
72
|
-
const v3Blocks =
|
|
72
|
+
const v3Blocks = new Map();
|
|
73
73
|
for (const block of v3Resp.data) {
|
|
74
74
|
const blockKey = getExternalBlockKey(block);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
v3Blocks.push((0, v3_1.convertV3ToSfc)(block));
|
|
75
|
+
const sfcBlock = (0, v3_1.convertV3ToSfc)(block);
|
|
76
|
+
v3Blocks.set(blockKey, sfcBlock);
|
|
77
|
+
EXTERNAL_BLOCKS_CAHCE.set(blockKey, sfcBlock);
|
|
79
78
|
}
|
|
80
|
-
return { commit: '', hash: '', blocks: v3Blocks };
|
|
79
|
+
return { commit: '', hash: '', blocks: Array.from(v3Blocks.values()) };
|
|
81
80
|
}
|
|
82
81
|
async function saveImportedBlocks(externalImport, blocks) {
|
|
83
82
|
const importedProjectDir = getImportedProjectDir(externalImport);
|
|
@@ -117,38 +116,37 @@ async function downloadAndSave(externalImport) {
|
|
|
117
116
|
return blocks;
|
|
118
117
|
}
|
|
119
118
|
async function downloadAll(externalImports) {
|
|
120
|
-
|
|
119
|
+
EXTERNAL_BLOCKS_CAHCE = new Map();
|
|
121
120
|
const responses = await Promise.all(externalImports.map(downloadAndSave));
|
|
122
121
|
return lodash_1.default.flatten(responses);
|
|
123
122
|
}
|
|
124
|
-
async function
|
|
123
|
+
async function removeAllLocalSettingsBlocks() {
|
|
124
|
+
const files = await (0, fileUtils_1.listFilesRecursive)(configuration_1.config.blocksDir);
|
|
125
|
+
const settingsFiles = files.filter(filePath => !isImportedBlockFile(filePath)).filter(isSettingsBlockFile);
|
|
126
|
+
await Promise.all(settingsFiles.map(filePath => fs_1.promises.rm(filePath, { force: true })));
|
|
127
|
+
}
|
|
128
|
+
async function saveSettingsBlocks() {
|
|
125
129
|
console.log('Downloading settings from MongoDB');
|
|
126
130
|
const mongoConn = await new mongodb_1.MongoClient(configuration_1.config.mongoConn).connect();
|
|
127
131
|
try {
|
|
132
|
+
await removeAllLocalSettingsBlocks();
|
|
128
133
|
const db = mongoConn.db(configuration_1.config.mongoDbName);
|
|
129
|
-
const settingsBlocks =
|
|
130
|
-
.collection('blocks')
|
|
131
|
-
.find({
|
|
134
|
+
const settingsBlocks = db.collection('blocks').find({
|
|
132
135
|
Type: 'settings',
|
|
133
|
-
})
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
136
|
+
});
|
|
137
|
+
let downloadedCount = 0;
|
|
138
|
+
for await (const block of settingsBlocks) {
|
|
139
|
+
const serialized = (0, sfc_1.serializeSfc)((0, v3_1.convertV3ToSfc)(block));
|
|
140
|
+
const outputPath = path_1.default.join(configuration_1.config.blocksDir, serialized.filePath);
|
|
141
|
+
await (0, fileUtils_1.writeFileMakeDir)(outputPath, serialized.content);
|
|
142
|
+
downloadedCount += 1;
|
|
143
|
+
}
|
|
144
|
+
console.log(`Downloaded ${downloadedCount} settings block(s) from MongoDB`);
|
|
137
145
|
}
|
|
138
146
|
finally {
|
|
139
147
|
await mongoConn.close();
|
|
140
148
|
}
|
|
141
149
|
}
|
|
142
|
-
async function saveSettingsBlocks(blocks) {
|
|
143
|
-
if (configuration_1.config.production) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
for (const block of blocks) {
|
|
147
|
-
const serialized = (0, sfc_1.serializeSfc)(block);
|
|
148
|
-
const outputPath = path_1.default.join(configuration_1.config.blocksDir, serialized.filePath);
|
|
149
|
-
await (0, fileUtils_1.writeFileMakeDir)(outputPath, serialized.content);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
150
|
async function readBlockFile(blocksDir, filePath) {
|
|
153
151
|
const content = await fs_1.promises.readFile(filePath);
|
|
154
152
|
const relPath = path_1.default.relative(blocksDir, filePath);
|
|
@@ -165,9 +163,11 @@ async function readBlockFiles(blocksDir) {
|
|
|
165
163
|
exports.readBlockFiles = readBlockFiles;
|
|
166
164
|
async function loadAllBlocks() {
|
|
167
165
|
const externalBlocks = await downloadAll(configuration_1.config.importProjects);
|
|
168
|
-
|
|
166
|
+
if (!configuration_1.config.production && configuration_1.config.saveImportedBlocks) {
|
|
167
|
+
await saveSettingsBlocks();
|
|
168
|
+
}
|
|
169
169
|
const localBlocks = await readBlockFiles(configuration_1.config.blocksDir);
|
|
170
170
|
return [...externalBlocks, ...localBlocks];
|
|
171
171
|
}
|
|
172
172
|
exports.loadAllBlocks = loadAllBlocks;
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLDJCQUFvQztBQUNwQyxrRkFBOEM7QUFDOUMscUNBQXNDO0FBQ3RDLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIsbURBQThEO0FBQzlELHFDQUErRDtBQUMvRCxpREFBaUY7QUFDakYsbUNBQTBEO0FBRzFELE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDO0FBQ3hDLElBQUkscUJBQXFCLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7QUFFeEQsU0FBUyxVQUFVLENBQUMsS0FBOEI7SUFDaEQsT0FBTyxNQUFNLElBQUksS0FBSyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQThCO0lBQ3pELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDcEUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUM5RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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
|
package/package.json
CHANGED
package/src/configuration.ts
CHANGED
|
@@ -56,8 +56,8 @@ const ConfigSchema = yup.object().shape({
|
|
|
56
56
|
.string()
|
|
57
57
|
.required()
|
|
58
58
|
.transform(v => path.resolve(v)),
|
|
59
|
-
compileCache: yup.boolean().
|
|
60
|
-
saveImportedBlocks: yup.boolean().
|
|
59
|
+
compileCache: yup.boolean().required(),
|
|
60
|
+
saveImportedBlocks: yup.boolean().required(),
|
|
61
61
|
mongoConn: yup.string().required(),
|
|
62
62
|
mongoDbName: yup.string().required(),
|
|
63
63
|
azureStorageConnection: yup.string().required(),
|
package/src/loader.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { convertV3ToSfc, V3MongoBlock } from './utils/v3';
|
|
|
12
12
|
|
|
13
13
|
type V4Response = { commit: string; hash: string; blocks: SfcBlock[] };
|
|
14
14
|
const IMPORTED_BLOCKS_DIR = '_imported';
|
|
15
|
-
let
|
|
15
|
+
let EXTERNAL_BLOCKS_CAHCE = new Map<string, SfcBlock>();
|
|
16
16
|
|
|
17
17
|
function isSfcBlock(block: SfcBlock | V3MongoBlock): block is SfcBlock {
|
|
18
18
|
return 'path' in block;
|
|
@@ -22,7 +22,8 @@ function getExternalBlockKey(block: SfcBlock | V3MongoBlock) {
|
|
|
22
22
|
const folder = isSfcBlock(block) ? block.path.folder : block.Folder;
|
|
23
23
|
const name = isSfcBlock(block) ? block.path.name : block.Name;
|
|
24
24
|
const blockTypeName = isSfcBlock(block) ? block.path.blockTypeName : block.Type;
|
|
25
|
-
|
|
25
|
+
const version = isSfcBlock(block) ? Number(block.metadata['version'] ?? 3) : 3;
|
|
26
|
+
return blockTypeName === 'settings' ? `${folder}/${name}.${blockTypeName}` : `mars${version}_${name}`;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
function getImportedBlocksRoot() {
|
|
@@ -46,22 +47,22 @@ function isSettingsBlockFile(filePath: string) {
|
|
|
46
47
|
|
|
47
48
|
function rememberExternalBlocks(blocks: SfcBlock[]) {
|
|
48
49
|
for (const block of blocks) {
|
|
49
|
-
|
|
50
|
+
const blockKey = getExternalBlockKey(block);
|
|
51
|
+
EXTERNAL_BLOCKS_CAHCE.set(blockKey, block);
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
function filterFreshExternalBlocks(blocks: SfcBlock[]) {
|
|
54
|
-
const result
|
|
56
|
+
const result = new Map<string, SfcBlock>();
|
|
55
57
|
|
|
56
|
-
for (const
|
|
57
|
-
const blockKey = getExternalBlockKey(
|
|
58
|
-
if (downloadedExternalBlockNames.has(blockKey)) continue;
|
|
58
|
+
for (const sfcBlock of blocks) {
|
|
59
|
+
const blockKey = getExternalBlockKey(sfcBlock);
|
|
59
60
|
|
|
60
|
-
|
|
61
|
-
result.
|
|
61
|
+
EXTERNAL_BLOCKS_CAHCE.set(blockKey, sfcBlock);
|
|
62
|
+
result.set(blockKey, sfcBlock);
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
return result;
|
|
65
|
+
return Array.from(result.values());
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
async function downloadFromExternal(externalImport: ImportProjectConfig): Promise<V4Response> {
|
|
@@ -77,17 +78,17 @@ async function downloadFromExternal(externalImport: ImportProjectConfig): Promis
|
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
const v3Resp = await axios.get<V3MongoBlock[]>(`${url}/api/GetExportedAppBlocks`, { params });
|
|
80
|
-
const v3Blocks
|
|
81
|
+
const v3Blocks = new Map<string, SfcBlock>();
|
|
81
82
|
|
|
82
83
|
for (const block of v3Resp.data) {
|
|
83
84
|
const blockKey = getExternalBlockKey(block);
|
|
84
|
-
|
|
85
|
+
const sfcBlock = convertV3ToSfc(block);
|
|
85
86
|
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
v3Blocks.set(blockKey, sfcBlock);
|
|
88
|
+
EXTERNAL_BLOCKS_CAHCE.set(blockKey, sfcBlock);
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
return { commit: '', hash: '', blocks: v3Blocks };
|
|
91
|
+
return { commit: '', hash: '', blocks: Array.from(v3Blocks.values()) };
|
|
91
92
|
}
|
|
92
93
|
|
|
93
94
|
async function saveImportedBlocks(externalImport: ImportProjectConfig, blocks: SfcBlock[]) {
|
|
@@ -134,43 +135,44 @@ async function downloadAndSave(externalImport: ImportProjectConfig): Promise<Sfc
|
|
|
134
135
|
}
|
|
135
136
|
|
|
136
137
|
async function downloadAll(externalImports: ImportProjectConfig[]) {
|
|
137
|
-
|
|
138
|
+
EXTERNAL_BLOCKS_CAHCE = new Map<string, SfcBlock>();
|
|
138
139
|
const responses = await Promise.all(externalImports.map(downloadAndSave));
|
|
139
140
|
return _.flatten(responses);
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
async function
|
|
143
|
+
async function removeAllLocalSettingsBlocks() {
|
|
144
|
+
const files = await listFilesRecursive(config.blocksDir);
|
|
145
|
+
const settingsFiles = files.filter(filePath => !isImportedBlockFile(filePath)).filter(isSettingsBlockFile);
|
|
146
|
+
|
|
147
|
+
await Promise.all(settingsFiles.map(filePath => fs.rm(filePath, { force: true })));
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async function saveSettingsBlocks() {
|
|
143
151
|
console.log('Downloading settings from MongoDB');
|
|
144
152
|
const mongoConn = await new MongoClient(config.mongoConn).connect();
|
|
145
153
|
|
|
146
154
|
try {
|
|
155
|
+
await removeAllLocalSettingsBlocks();
|
|
156
|
+
|
|
147
157
|
const db = mongoConn.db(config.mongoDbName);
|
|
148
|
-
const settingsBlocks =
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
158
|
+
const settingsBlocks = db.collection<V3MongoBlock>('blocks').find({
|
|
159
|
+
Type: 'settings',
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
let downloadedCount = 0;
|
|
163
|
+
for await (const block of settingsBlocks) {
|
|
164
|
+
const serialized = serializeSfc(convertV3ToSfc(block));
|
|
165
|
+
const outputPath = path.join(config.blocksDir, serialized.filePath);
|
|
166
|
+
await writeFileMakeDir(outputPath, serialized.content);
|
|
167
|
+
downloadedCount += 1;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
console.log(`Downloaded ${downloadedCount} settings block(s) from MongoDB`);
|
|
157
171
|
} finally {
|
|
158
172
|
await mongoConn.close();
|
|
159
173
|
}
|
|
160
174
|
}
|
|
161
175
|
|
|
162
|
-
async function saveSettingsBlocks(blocks: SfcBlock[]) {
|
|
163
|
-
if (config.production) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
for (const block of blocks) {
|
|
168
|
-
const serialized = serializeSfc(block);
|
|
169
|
-
const outputPath = path.join(config.blocksDir, serialized.filePath);
|
|
170
|
-
await writeFileMakeDir(outputPath, serialized.content);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
176
|
async function readBlockFile(blocksDir: string, filePath: string): Promise<SfcBlock> {
|
|
175
177
|
const content = await fs.readFile(filePath);
|
|
176
178
|
const relPath = path.relative(blocksDir, filePath);
|
|
@@ -190,7 +192,11 @@ export async function readBlockFiles(blocksDir: string) {
|
|
|
190
192
|
|
|
191
193
|
export async function loadAllBlocks(): Promise<SfcBlock[]> {
|
|
192
194
|
const externalBlocks = await downloadAll(config.importProjects);
|
|
193
|
-
|
|
195
|
+
|
|
196
|
+
if (!config.production && config.saveImportedBlocks) {
|
|
197
|
+
await saveSettingsBlocks();
|
|
198
|
+
}
|
|
199
|
+
|
|
194
200
|
const localBlocks = await readBlockFiles(config.blocksDir);
|
|
195
201
|
return [...externalBlocks, ...localBlocks];
|
|
196
202
|
}
|