@marsx-dev/launcher 0.0.23 → 0.0.25
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/loader.d.ts +0 -2
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +14 -15
- package/package.json +1 -1
- package/src/loader.ts +15 -15
package/dist/loader.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { ImportProjectConfig } from './configuration';
|
|
2
1
|
import { SfcBlock } from './utils/sfc';
|
|
3
2
|
export declare function readBlockFiles(blocksDir: string): Promise<SfcBlock[]>;
|
|
4
|
-
export declare function readImportedBlockFiles(externalImport: ImportProjectConfig): Promise<SfcBlock[]>;
|
|
5
3
|
export declare function loadAllBlocks(): Promise<SfcBlock[]>;
|
|
6
4
|
//# sourceMappingURL=loader.d.ts.map
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,QAAQ,EAAE,MAAM,aAAa,CAAC;AAoG/D,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,uBASrD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAKzD"}
|
package/dist/loader.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.loadAllBlocks = exports.
|
|
6
|
+
exports.loadAllBlocks = exports.readBlockFiles = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const mongodb_1 = require("mongodb");
|
|
@@ -20,6 +20,15 @@ function getImportedBlocksRoot() {
|
|
|
20
20
|
function getImportedProjectDir(externalImport) {
|
|
21
21
|
return path_1.default.join(getImportedBlocksRoot(), externalImport.name);
|
|
22
22
|
}
|
|
23
|
+
function isImportedBlockFile(filePath) {
|
|
24
|
+
const importedBlocksRoot = getImportedBlocksRoot();
|
|
25
|
+
const absoluteFilePath = path_1.default.resolve(filePath);
|
|
26
|
+
const absoluteImportedRoot = path_1.default.resolve(importedBlocksRoot);
|
|
27
|
+
return absoluteFilePath === absoluteImportedRoot || absoluteFilePath.startsWith(`${absoluteImportedRoot}${path_1.default.sep}`);
|
|
28
|
+
}
|
|
29
|
+
function isSettingsBlockFile(filePath) {
|
|
30
|
+
return path_1.default.parse(filePath).name.endsWith('.settings');
|
|
31
|
+
}
|
|
23
32
|
async function downloadFromExternal(externalImport) {
|
|
24
33
|
const params = { api_key: externalImport.api_key, git_commit_ish: externalImport.git_commit_ish || '' };
|
|
25
34
|
const url = lodash_1.default.trimEnd(externalImport.url, '/');
|
|
@@ -73,7 +82,6 @@ async function downloadSettingsFromDb() {
|
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
84
|
async function saveSettingsBlocks(blocks) {
|
|
76
|
-
await fs_1.promises.rm(path_1.default.join(configuration_1.config.blocksDir, '_settings'), { recursive: true, force: true });
|
|
77
85
|
for (const block of blocks) {
|
|
78
86
|
const serialized = (0, sfc_1.serializeSfc)(block);
|
|
79
87
|
const outputPath = path_1.default.join(configuration_1.config.blocksDir, serialized.filePath);
|
|
@@ -89,25 +97,16 @@ async function readBlockFiles(blocksDir) {
|
|
|
89
97
|
const files = await (0, fileUtils_1.listFilesRecursive)(blocksDir);
|
|
90
98
|
return await Promise.all(files
|
|
91
99
|
.filter(f => !path_1.default.basename(f).startsWith('.'))
|
|
92
|
-
.filter(f =>
|
|
100
|
+
.filter(f => !isImportedBlockFile(f))
|
|
101
|
+
.filter(f => !isSettingsBlockFile(f))
|
|
93
102
|
.map(f => readBlockFile(blocksDir, f)));
|
|
94
103
|
}
|
|
95
104
|
exports.readBlockFiles = readBlockFiles;
|
|
96
|
-
async function readImportedBlockFiles(externalImport) {
|
|
97
|
-
const importedProjectDir = getImportedProjectDir(externalImport);
|
|
98
|
-
if (!(await (0, fileUtils_1.isDirectory)(importedProjectDir))) {
|
|
99
|
-
return [];
|
|
100
|
-
}
|
|
101
|
-
const files = await (0, fileUtils_1.listFilesRecursive)(importedProjectDir);
|
|
102
|
-
return await Promise.all(files.filter(f => !path_1.default.basename(f).startsWith('.')).map(f => readBlockFile(importedProjectDir, f)));
|
|
103
|
-
}
|
|
104
|
-
exports.readImportedBlockFiles = readImportedBlockFiles;
|
|
105
105
|
async function loadAllBlocks() {
|
|
106
|
-
await downloadAll(configuration_1.config.importProjects);
|
|
106
|
+
const externalBlocks = await downloadAll(configuration_1.config.importProjects);
|
|
107
107
|
await saveSettingsBlocks(await downloadSettingsFromDb());
|
|
108
|
-
const externalBlocks = lodash_1.default.flatten(await Promise.all(configuration_1.config.importProjects.map(readImportedBlockFiles)));
|
|
109
108
|
const localBlocks = await readBlockFiles(configuration_1.config.blocksDir);
|
|
110
109
|
return [...externalBlocks, ...localBlocks];
|
|
111
110
|
}
|
|
112
111
|
exports.loadAllBlocks = loadAllBlocks;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsMkJBQW9DO0FBQ3BDLHFDQUFzQztBQUN0QyxvREFBdUI7QUFDdkIsZ0RBQXdCO0FBQ3hCLG1EQUE4RDtBQUM5RCxxQ0FBK0Q7QUFDL0QsaURBQXlFO0FBQ3pFLG1DQUEwRDtBQUcxRCxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQztBQUV4QyxTQUFTLHFCQUFxQjtJQUM1QixPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMsc0JBQU0sQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxjQUFtQztJQUNoRSxPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsUUFBZ0I7SUFDM0MsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO0lBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLG9CQUFvQixHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM5RCxPQUFPLGdCQUFnQixLQUFLLG9CQUFvQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLG9CQUFvQixHQUFHLGNBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3hILENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLFFBQWdCO0lBQzNDLE9BQU8sY0FBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxLQUFLLFVB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
|
package/package.json
CHANGED
package/src/loader.ts
CHANGED
|
@@ -5,7 +5,7 @@ import _ from 'lodash';
|
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { config, ImportProjectConfig } from './configuration';
|
|
7
7
|
import { parseSFC, serializeSfc, SfcBlock } from './utils/sfc';
|
|
8
|
-
import {
|
|
8
|
+
import { listFilesRecursive, writeFileMakeDir } from './utils/fileUtils';
|
|
9
9
|
import { convertV3ToSfc, V3MongoBlock } from './utils/v3';
|
|
10
10
|
|
|
11
11
|
type V4Response = { commit: string; hash: string; blocks: SfcBlock[] };
|
|
@@ -19,6 +19,17 @@ function getImportedProjectDir(externalImport: ImportProjectConfig) {
|
|
|
19
19
|
return path.join(getImportedBlocksRoot(), externalImport.name);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
function isImportedBlockFile(filePath: string) {
|
|
23
|
+
const importedBlocksRoot = getImportedBlocksRoot();
|
|
24
|
+
const absoluteFilePath = path.resolve(filePath);
|
|
25
|
+
const absoluteImportedRoot = path.resolve(importedBlocksRoot);
|
|
26
|
+
return absoluteFilePath === absoluteImportedRoot || absoluteFilePath.startsWith(`${absoluteImportedRoot}${path.sep}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function isSettingsBlockFile(filePath: string) {
|
|
30
|
+
return path.parse(filePath).name.endsWith('.settings');
|
|
31
|
+
}
|
|
32
|
+
|
|
22
33
|
async function downloadFromExternal(externalImport: ImportProjectConfig): Promise<V4Response> {
|
|
23
34
|
const params = { api_key: externalImport.api_key, git_commit_ish: externalImport.git_commit_ish || '' };
|
|
24
35
|
|
|
@@ -80,8 +91,6 @@ async function downloadSettingsFromDb(): Promise<SfcBlock[]> {
|
|
|
80
91
|
}
|
|
81
92
|
|
|
82
93
|
async function saveSettingsBlocks(blocks: SfcBlock[]) {
|
|
83
|
-
await fs.rm(path.join(config.blocksDir, '_settings'), { recursive: true, force: true });
|
|
84
|
-
|
|
85
94
|
for (const block of blocks) {
|
|
86
95
|
const serialized = serializeSfc(block);
|
|
87
96
|
const outputPath = path.join(config.blocksDir, serialized.filePath);
|
|
@@ -100,24 +109,15 @@ export async function readBlockFiles(blocksDir: string) {
|
|
|
100
109
|
return await Promise.all(
|
|
101
110
|
files
|
|
102
111
|
.filter(f => !path.basename(f).startsWith('.'))
|
|
103
|
-
.filter(f =>
|
|
112
|
+
.filter(f => !isImportedBlockFile(f))
|
|
113
|
+
.filter(f => !isSettingsBlockFile(f))
|
|
104
114
|
.map(f => readBlockFile(blocksDir, f)),
|
|
105
115
|
);
|
|
106
116
|
}
|
|
107
117
|
|
|
108
|
-
export async function readImportedBlockFiles(externalImport: ImportProjectConfig) {
|
|
109
|
-
const importedProjectDir = getImportedProjectDir(externalImport);
|
|
110
|
-
if (!(await isDirectory(importedProjectDir))) {
|
|
111
|
-
return [];
|
|
112
|
-
}
|
|
113
|
-
const files = await listFilesRecursive(importedProjectDir);
|
|
114
|
-
return await Promise.all(files.filter(f => !path.basename(f).startsWith('.')).map(f => readBlockFile(importedProjectDir, f)));
|
|
115
|
-
}
|
|
116
|
-
|
|
117
118
|
export async function loadAllBlocks(): Promise<SfcBlock[]> {
|
|
118
|
-
await downloadAll(config.importProjects);
|
|
119
|
+
const externalBlocks = await downloadAll(config.importProjects);
|
|
119
120
|
await saveSettingsBlocks(await downloadSettingsFromDb());
|
|
120
|
-
const externalBlocks = _.flatten(await Promise.all(config.importProjects.map(readImportedBlockFiles)));
|
|
121
121
|
const localBlocks = await readBlockFiles(config.blocksDir);
|
|
122
122
|
return [...externalBlocks, ...localBlocks];
|
|
123
123
|
}
|