sb-mig 5.6.1-beta.2 → 5.6.2-beta.1
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/cli/utils/discover.d.ts +1 -1
- package/dist/cli/utils/discover.js +18 -23
- package/dist/rollup/build-on-the-fly.js +31 -23
- package/dist/rollup/setup-rollup.js +5 -5
- package/dist/utils/path-utils.d.ts +11 -0
- package/dist/utils/path-utils.js +8 -0
- package/dist-cjs/utils/path-utils.js +10 -1
- package/package.json +1 -1
|
@@ -28,7 +28,7 @@ interface DiscoverManyByPackageNameRequest {
|
|
|
28
28
|
}
|
|
29
29
|
type DiscoverResult = string[];
|
|
30
30
|
export type { CompareResult, OneFileElement };
|
|
31
|
-
export { normalizeDiscover, compare, filesPattern, } from "../../utils/path-utils.js";
|
|
31
|
+
export { normalizeDiscover, compare, filesPattern, exactFilesPatterns, } from "../../utils/path-utils.js";
|
|
32
32
|
export declare const discoverManyByPackageName: (request: DiscoverManyByPackageNameRequest) => DiscoverResult;
|
|
33
33
|
export declare const discoverOneByPackageName: (request: DiscoverOneByPackageNameRequest) => DiscoverResult;
|
|
34
34
|
export declare const discoverMany: (request: DiscoverManyRequest) => Promise<DiscoverResult>;
|
|
@@ -6,7 +6,7 @@ import storyblokConfig, { SCHEMA } from "../../config/config.js";
|
|
|
6
6
|
import { buildOnTheFly } from "../../rollup/build-on-the-fly.js";
|
|
7
7
|
import { getFileContentWithRequire, readFile } from "../../utils/files.js";
|
|
8
8
|
import { safeGlobSync as globSync } from "../../utils/glob-utils.js";
|
|
9
|
-
import { normalizeDiscover, filesPattern, compare, } from "../../utils/path-utils.js";
|
|
9
|
+
import { normalizeDiscover, filesPattern, exactFilesPatterns, compare, } from "../../utils/path-utils.js";
|
|
10
10
|
export var SCOPE;
|
|
11
11
|
(function (SCOPE) {
|
|
12
12
|
SCOPE["local"] = "local";
|
|
@@ -20,7 +20,7 @@ export var LOOKUP_TYPE;
|
|
|
20
20
|
LOOKUP_TYPE["fileName"] = "fileName";
|
|
21
21
|
})(LOOKUP_TYPE || (LOOKUP_TYPE = {}));
|
|
22
22
|
// Re-export functions for backwards compatibility
|
|
23
|
-
export { normalizeDiscover, compare, filesPattern, } from "../../utils/path-utils.js";
|
|
23
|
+
export { normalizeDiscover, compare, filesPattern, exactFilesPatterns, } from "../../utils/path-utils.js";
|
|
24
24
|
export const discoverManyByPackageName = (request) => {
|
|
25
25
|
const rootDirectory = "./";
|
|
26
26
|
const directory = path.resolve(process.cwd(), rootDirectory);
|
|
@@ -320,21 +320,17 @@ export const discoverStories = (request) => {
|
|
|
320
320
|
export const discoverMigrationConfig = (request) => {
|
|
321
321
|
const rootDirectory = "./";
|
|
322
322
|
const directory = path.resolve(process.cwd(), rootDirectory);
|
|
323
|
-
let
|
|
324
|
-
let listOfFiles = [""];
|
|
323
|
+
let listOfFiles = [];
|
|
325
324
|
switch (request.scope) {
|
|
326
325
|
case SCOPE.local:
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
pattern
|
|
333
|
-
segments: storyblokConfig.componentsDirectories,
|
|
334
|
-
})}`, "**", `${normalizeDiscover({ segments: request.fileNames })}.${storyblokConfig.migrationConfigExt}`);
|
|
335
|
-
listOfFiles = globSync(pattern.replace(/\\/g, "/"), {
|
|
326
|
+
listOfFiles = exactFilesPatterns({
|
|
327
|
+
mainDirectory: directory,
|
|
328
|
+
componentDirectories: storyblokConfig.componentsDirectories,
|
|
329
|
+
fileNames: request.fileNames,
|
|
330
|
+
ext: storyblokConfig.migrationConfigExt,
|
|
331
|
+
}).flatMap((pattern) => globSync(pattern.replace(/\\/g, "/"), {
|
|
336
332
|
follow: true,
|
|
337
|
-
});
|
|
333
|
+
}));
|
|
338
334
|
break;
|
|
339
335
|
default:
|
|
340
336
|
break;
|
|
@@ -384,18 +380,17 @@ export const discoverAllMigrationConfigs = (request) => {
|
|
|
384
380
|
export const discoverVersionMapping = (request) => {
|
|
385
381
|
const rootDirectory = "./";
|
|
386
382
|
const directory = path.resolve(process.cwd(), rootDirectory);
|
|
387
|
-
let
|
|
388
|
-
let listOfFiles = [""];
|
|
383
|
+
let listOfFiles = [];
|
|
389
384
|
switch (request.scope) {
|
|
390
385
|
case SCOPE.all:
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
386
|
+
listOfFiles = exactFilesPatterns({
|
|
387
|
+
mainDirectory: directory,
|
|
388
|
+
componentDirectories: storyblokConfig.componentsDirectories,
|
|
389
|
+
fileNames: request.fileNames,
|
|
390
|
+
ext: "sb.migrations.cjs",
|
|
391
|
+
}).flatMap((pattern) => globSync(pattern.replace(/\\/g, "/"), {
|
|
397
392
|
follow: true,
|
|
398
|
-
});
|
|
393
|
+
}));
|
|
399
394
|
break;
|
|
400
395
|
default:
|
|
401
396
|
break;
|
|
@@ -13,27 +13,35 @@ export const buildOnTheFly = async ({ files }) => {
|
|
|
13
13
|
}
|
|
14
14
|
const projectDir = process.cwd();
|
|
15
15
|
const cacheDir = path.join(`${projectDir}`, `${storyblokConfig.cacheDir}`, `sb-mig`);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
16
|
+
const BATCH_SIZE = 5;
|
|
17
|
+
const total = files.length;
|
|
18
|
+
Logger.log(`Compiling ${total} schema files...`);
|
|
19
|
+
for (let i = 0; i < total; i += BATCH_SIZE) {
|
|
20
|
+
const batch = files.slice(i, i + BATCH_SIZE);
|
|
21
|
+
const batchEnd = Math.min(i + BATCH_SIZE, total);
|
|
22
|
+
Logger.log(`[${i + 1}-${batchEnd}/${total}] Compiling batch...`);
|
|
23
|
+
await Promise.all(batch.map(async (filePath) => {
|
|
24
|
+
const inputOptions = {
|
|
25
|
+
input: filePath,
|
|
26
|
+
plugins: [
|
|
27
|
+
ts({
|
|
28
|
+
transpileOnly: true,
|
|
29
|
+
transpiler: "swc",
|
|
30
|
+
}),
|
|
31
|
+
],
|
|
32
|
+
};
|
|
33
|
+
const outputOptionsList = [
|
|
34
|
+
{
|
|
35
|
+
file: path.join(`${cacheDir}`, `${_extractComponentName(filePath)}.cjs`),
|
|
36
|
+
format: "cjs",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
file: path.join(`${cacheDir}`, `${_extractComponentName(filePath)}.js`),
|
|
40
|
+
format: "es",
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
await build({ inputOptions, outputOptionsList });
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
Logger.success(`Precompile successful! (${total} files)`);
|
|
39
47
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { rollup } from "rollup";
|
|
2
2
|
export async function build({ inputOptions, outputOptionsList }) {
|
|
3
3
|
let bundle;
|
|
4
|
-
let buildFailed = false;
|
|
5
4
|
try {
|
|
6
5
|
bundle = await rollup(inputOptions);
|
|
7
6
|
await generateOutputs({ bundle, outputOptionsList });
|
|
8
7
|
return [];
|
|
9
8
|
}
|
|
10
9
|
catch (error) {
|
|
11
|
-
buildFailed = true;
|
|
12
10
|
console.error(error);
|
|
11
|
+
throw error;
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
finally {
|
|
14
|
+
if (bundle) {
|
|
15
|
+
await bundle.close();
|
|
16
|
+
}
|
|
16
17
|
}
|
|
17
|
-
process.exit(buildFailed ? 1 : 0);
|
|
18
18
|
}
|
|
19
19
|
async function generateOutputs({ bundle, outputOptionsList }) {
|
|
20
20
|
for (const outputOptions of outputOptionsList) {
|
|
@@ -79,6 +79,17 @@ export declare const filesPattern: ({ mainDirectory, componentDirectories, ext,
|
|
|
79
79
|
componentDirectories: string[];
|
|
80
80
|
ext: string;
|
|
81
81
|
}) => string;
|
|
82
|
+
/**
|
|
83
|
+
* Builds glob file patterns for discovering exact file names across directories.
|
|
84
|
+
* Uses one pattern per directory/name pair so relative paths like ../../node_modules
|
|
85
|
+
* are preserved and not corrupted by path.join on brace-expanded segments.
|
|
86
|
+
*/
|
|
87
|
+
export declare const exactFilesPatterns: ({ mainDirectory, componentDirectories, fileNames, ext, }: {
|
|
88
|
+
mainDirectory: string;
|
|
89
|
+
componentDirectories: string[];
|
|
90
|
+
fileNames: string[];
|
|
91
|
+
ext: string;
|
|
92
|
+
}) => string[];
|
|
82
93
|
/**
|
|
83
94
|
* Compares local and external file path arrays.
|
|
84
95
|
* Splits paths to extract file names, filters out duplicates from external
|
package/dist/utils/path-utils.js
CHANGED
|
@@ -70,6 +70,14 @@ export const filesPattern = ({ mainDirectory, componentDirectories, ext, }) => {
|
|
|
70
70
|
? path.join(`${mainDirectory}`, `${componentDirectories[0]}`, "**", `[^_]*.${ext}`)
|
|
71
71
|
: path.join(`${mainDirectory}`, `{${componentDirectories.join(",")}}`, "**", `[^_]*.${ext}`);
|
|
72
72
|
};
|
|
73
|
+
/**
|
|
74
|
+
* Builds glob file patterns for discovering exact file names across directories.
|
|
75
|
+
* Uses one pattern per directory/name pair so relative paths like ../../node_modules
|
|
76
|
+
* are preserved and not corrupted by path.join on brace-expanded segments.
|
|
77
|
+
*/
|
|
78
|
+
export const exactFilesPatterns = ({ mainDirectory, componentDirectories, fileNames, ext, }) => {
|
|
79
|
+
return componentDirectories.flatMap((componentDirectory) => fileNames.map((fileName) => path.join(`${mainDirectory}`, `${componentDirectory}`, "**", `${fileName}.${ext}`)));
|
|
80
|
+
};
|
|
73
81
|
/**
|
|
74
82
|
* Compares local and external file path arrays.
|
|
75
83
|
* Splits paths to extract file names, filters out duplicates from external
|
|
@@ -6,7 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.compare = exports.filesPattern = exports.normalizeDiscover = exports.extractComponentName = void 0;
|
|
9
|
+
exports.compare = exports.exactFilesPatterns = exports.filesPattern = exports.normalizeDiscover = exports.extractComponentName = void 0;
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
/**
|
|
12
12
|
* Extracts the component name from a file path.
|
|
@@ -79,6 +79,15 @@ const filesPattern = ({ mainDirectory, componentDirectories, ext, }) => {
|
|
|
79
79
|
: path_1.default.join(`${mainDirectory}`, `{${componentDirectories.join(",")}}`, "**", `[^_]*.${ext}`);
|
|
80
80
|
};
|
|
81
81
|
exports.filesPattern = filesPattern;
|
|
82
|
+
/**
|
|
83
|
+
* Builds glob file patterns for discovering exact file names across directories.
|
|
84
|
+
* Uses one pattern per directory/name pair so relative paths like ../../node_modules
|
|
85
|
+
* are preserved and not corrupted by path.join on brace-expanded segments.
|
|
86
|
+
*/
|
|
87
|
+
const exactFilesPatterns = ({ mainDirectory, componentDirectories, fileNames, ext, }) => {
|
|
88
|
+
return componentDirectories.flatMap((componentDirectory) => fileNames.map((fileName) => path_1.default.join(`${mainDirectory}`, `${componentDirectory}`, "**", `${fileName}.${ext}`)));
|
|
89
|
+
};
|
|
90
|
+
exports.exactFilesPatterns = exactFilesPatterns;
|
|
82
91
|
/**
|
|
83
92
|
* Compares local and external file path arrays.
|
|
84
93
|
* Splits paths to extract file names, filters out duplicates from external
|
package/package.json
CHANGED