sb-mig 5.1.4-beta.1 → 5.2.0
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/api/datasources/datasource-entries.js +16 -2
- package/dist/api/datasources/datasources.js +6 -6
- package/dist/api/datasources/datasources.types.d.ts +2 -1
- package/dist/api/migrate.types.d.ts +2 -2
- package/dist/api/roles/roles.types.d.ts +2 -2
- package/dist/cli/datasources/sync.js +15 -12
- package/dist/cli/roles/sync.js +3 -2
- package/dist/cli/utils/discover.d.ts +8 -18
- package/dist/cli/utils/discover.js +51 -109
- package/dist/rollup/build-on-the-fly.js +3 -3
- package/dist/utils/main.js +1 -2
- package/package.json +7 -6
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import storyblokConfig from "../../config/config.js";
|
|
2
3
|
import Logger from "../../utils/logger.js";
|
|
3
4
|
import { isObjectEmpty } from "../../utils/main.js";
|
|
4
5
|
import { getDatasource } from "./datasources.js";
|
|
@@ -66,6 +67,11 @@ export const createDatasourceEntries = (args, config) => {
|
|
|
66
67
|
const _createDatasourceEntry = (args, config) => {
|
|
67
68
|
const { currentDatasource, finalDatasource_entry } = args;
|
|
68
69
|
const { spaceId, sbApi } = config;
|
|
70
|
+
if (storyblokConfig.debug) {
|
|
71
|
+
console.log("############# Entity to Create: ");
|
|
72
|
+
console.log(finalDatasource_entry);
|
|
73
|
+
console.log("################################");
|
|
74
|
+
}
|
|
69
75
|
return sbApi
|
|
70
76
|
.post(`spaces/${spaceId}/datasource_entries/`, {
|
|
71
77
|
datasource_entry: finalDatasource_entry,
|
|
@@ -75,7 +81,11 @@ const _createDatasourceEntry = (args, config) => {
|
|
|
75
81
|
return data;
|
|
76
82
|
})
|
|
77
83
|
.catch((err) => {
|
|
78
|
-
|
|
84
|
+
if (storyblokConfig.debug) {
|
|
85
|
+
console.log("Full Create error: ");
|
|
86
|
+
console.log(err);
|
|
87
|
+
}
|
|
88
|
+
Logger.error(`Unable to create datasource entry in ${currentDatasource.datasource.name} datasource.`);
|
|
79
89
|
});
|
|
80
90
|
};
|
|
81
91
|
export const createDatasourceEntry = (args, config) => {
|
|
@@ -112,7 +122,11 @@ const _updateDatasourceEntry = (args, config) => {
|
|
|
112
122
|
return true;
|
|
113
123
|
})
|
|
114
124
|
.catch((err) => {
|
|
115
|
-
|
|
125
|
+
if (storyblokConfig.debug) {
|
|
126
|
+
console.log("Full update error: ");
|
|
127
|
+
console.log(err);
|
|
128
|
+
}
|
|
129
|
+
Logger.error(`Unable to update datasource entry in ${currentDatasource.datasource.name} datasource.`);
|
|
116
130
|
});
|
|
117
131
|
};
|
|
118
132
|
export const updateDatasourceEntry = (args, config) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Logger from "../../utils/logger.js";
|
|
2
|
-
import {
|
|
2
|
+
import { getFileContentWithRequire, } from "../../utils/main.js";
|
|
3
3
|
import { getAllItemsWithPagination } from "../utils/request.js";
|
|
4
4
|
import { createDatasourceEntries, getDatasourceEntries, } from "./datasource-entries.js";
|
|
5
5
|
// GET
|
|
@@ -108,16 +108,16 @@ export const updateDatasource = (args, config) => {
|
|
|
108
108
|
export const syncDatasources = async (args, config) => {
|
|
109
109
|
const { providedDatasources } = args;
|
|
110
110
|
Logger.log(`Trying to sync provided datasources: `);
|
|
111
|
-
const providedDatasourcesContent =
|
|
112
|
-
|
|
113
|
-
});
|
|
111
|
+
const providedDatasourcesContent = await Promise.all(providedDatasources.map((datasource) => {
|
|
112
|
+
return getFileContentWithRequire({ file: datasource.p });
|
|
113
|
+
}));
|
|
114
114
|
const remoteDatasources = await getAllDatasources(config);
|
|
115
115
|
Promise.all(providedDatasourcesContent.map((datasource) => {
|
|
116
116
|
const datasourceToBeUpdated = remoteDatasources.find((remoteDatasource) => datasource.name === remoteDatasource.name);
|
|
117
117
|
if (datasourceToBeUpdated) {
|
|
118
|
-
return updateDatasource({ datasource, datasourceToBeUpdated }, config);
|
|
118
|
+
return updateDatasource({ datasource: datasource, datasourceToBeUpdated }, config);
|
|
119
119
|
}
|
|
120
|
-
return createDatasource({ datasource }, config);
|
|
120
|
+
return createDatasource({ datasource: datasource }, config);
|
|
121
121
|
}))
|
|
122
122
|
.then((res) => {
|
|
123
123
|
// After create or after update datasource
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OneFileElement } from "../../cli/utils/discover.js";
|
|
1
2
|
import type { RequestBaseConfig } from "../utils/request.js";
|
|
2
3
|
export type GetAllDatasources = (config: RequestBaseConfig) => Promise<any>;
|
|
3
4
|
export type GetDatasource = (args: {
|
|
@@ -11,7 +12,7 @@ export type UpdateDatasource = (args: {
|
|
|
11
12
|
datasourceToBeUpdated: any;
|
|
12
13
|
}, config: RequestBaseConfig) => Promise<any>;
|
|
13
14
|
export type SyncDatasources = (args: {
|
|
14
|
-
providedDatasources:
|
|
15
|
+
providedDatasources: OneFileElement[];
|
|
15
16
|
}, config: RequestBaseConfig) => Promise<any>;
|
|
16
17
|
export type SyncProvidedDatasources = (args: {
|
|
17
18
|
datasources: string[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RequestBaseConfig } from "./utils/request.js";
|
|
2
2
|
import type { SyncDirection } from "../cli/sync.types.js";
|
|
3
|
-
import type {
|
|
4
|
-
export type SyncComponents = (specifiedComponents:
|
|
3
|
+
import type { OneFileElement } from "../cli/utils/discover.js";
|
|
4
|
+
export type SyncComponents = (specifiedComponents: OneFileElement[], presets: boolean, config: RequestBaseConfig) => Promise<any>;
|
|
5
5
|
export type SyncAllComponents = (presets: boolean, config: RequestBaseConfig) => Promise<any>;
|
|
6
6
|
export type SyncProvidedComponents = (presets: boolean, components: string[], packageName: boolean, config: RequestBaseConfig) => Promise<any>;
|
|
7
7
|
export type SyncStories = ({ transmission, stories, toSpaceId, }: {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OneFileElement } from "../../cli/utils/discover.js";
|
|
2
2
|
import type { RequestBaseConfig } from "../utils/request.js";
|
|
3
3
|
export type GetRole = (roleName: string | undefined, config: RequestBaseConfig) => Promise<void>;
|
|
4
4
|
export type GetAllRoles = (config: RequestBaseConfig) => Promise<any>;
|
|
5
5
|
export type CreateRole = (role: any, config: RequestBaseConfig) => void;
|
|
6
6
|
export type UpdateRole = (role: any, config: RequestBaseConfig) => void;
|
|
7
7
|
export type SyncRoles = ({ specifiedRoles }: {
|
|
8
|
-
specifiedRoles:
|
|
8
|
+
specifiedRoles: OneFileElement[];
|
|
9
9
|
}, config: RequestBaseConfig) => Promise<void>;
|
|
10
10
|
export type SyncAllRoles = (config: RequestBaseConfig) => Promise<void>;
|
|
11
11
|
export type SyncProvidedRoles = ({ roles }: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { managementApi } from "../../api/managementApi.js";
|
|
2
|
-
import { discoverDatasources, discoverManyDatasources, LOOKUP_TYPE, SCOPE, } from "../utils/discover.js";
|
|
2
|
+
import { compare, discoverDatasources, discoverManyDatasources, LOOKUP_TYPE, SCOPE, } from "../utils/discover.js";
|
|
3
3
|
export const syncProvidedDatasources = async (args, config) => {
|
|
4
4
|
const { datasources } = args;
|
|
5
5
|
const allLocalDatasources = await discoverManyDatasources({
|
|
@@ -12,26 +12,29 @@ export const syncProvidedDatasources = async (args, config) => {
|
|
|
12
12
|
type: LOOKUP_TYPE.fileName,
|
|
13
13
|
fileNames: datasources,
|
|
14
14
|
});
|
|
15
|
+
// #3: compare results, prefer local ones (so we have to create final external paths array and local array of things to sync from where)
|
|
16
|
+
const { local, external } = compare({
|
|
17
|
+
local: allLocalDatasources,
|
|
18
|
+
external: allExternalDatasources,
|
|
19
|
+
});
|
|
15
20
|
managementApi.datasources.syncDatasources({
|
|
16
|
-
providedDatasources: [
|
|
17
|
-
...allLocalDatasources,
|
|
18
|
-
...allExternalDatasources,
|
|
19
|
-
],
|
|
21
|
+
providedDatasources: [...local, ...external],
|
|
20
22
|
}, config);
|
|
21
23
|
};
|
|
22
|
-
export const syncAllDatasources = (config) => {
|
|
23
|
-
const allLocalDatasources = discoverDatasources({
|
|
24
|
+
export const syncAllDatasources = async (config) => {
|
|
25
|
+
const allLocalDatasources = await discoverDatasources({
|
|
24
26
|
scope: SCOPE.local,
|
|
25
27
|
type: LOOKUP_TYPE.fileName,
|
|
26
28
|
});
|
|
27
|
-
const allExternalDatasources = discoverDatasources({
|
|
29
|
+
const allExternalDatasources = await discoverDatasources({
|
|
28
30
|
scope: SCOPE.external,
|
|
29
31
|
type: LOOKUP_TYPE.fileName,
|
|
30
32
|
});
|
|
33
|
+
const { local, external } = compare({
|
|
34
|
+
local: allLocalDatasources,
|
|
35
|
+
external: allExternalDatasources,
|
|
36
|
+
});
|
|
31
37
|
managementApi.datasources.syncDatasources({
|
|
32
|
-
providedDatasources: [
|
|
33
|
-
...allLocalDatasources,
|
|
34
|
-
...allExternalDatasources,
|
|
35
|
-
],
|
|
38
|
+
providedDatasources: [...local, ...external],
|
|
36
39
|
}, config);
|
|
37
40
|
};
|
package/dist/cli/roles/sync.js
CHANGED
|
@@ -2,12 +2,12 @@ import { managementApi } from "../../api/managementApi.js";
|
|
|
2
2
|
import { compare, discoverManyRoles, discoverRoles, LOOKUP_TYPE, SCOPE, } from "../utils/discover.js";
|
|
3
3
|
export const syncAllRoles = async (config) => {
|
|
4
4
|
// #1: discover all external .roles.sb.js files
|
|
5
|
-
const allLocalSbComponentsSchemaFiles = discoverRoles({
|
|
5
|
+
const allLocalSbComponentsSchemaFiles = await discoverRoles({
|
|
6
6
|
scope: SCOPE.local,
|
|
7
7
|
type: LOOKUP_TYPE.fileName,
|
|
8
8
|
});
|
|
9
9
|
// #2: discover all local .roles.sb.js files
|
|
10
|
-
const allExternalSbComponentsSchemaFiles = discoverRoles({
|
|
10
|
+
const allExternalSbComponentsSchemaFiles = await discoverRoles({
|
|
11
11
|
scope: SCOPE.external,
|
|
12
12
|
type: LOOKUP_TYPE.fileName,
|
|
13
13
|
});
|
|
@@ -37,6 +37,7 @@ export const syncProvidedRoles = async ({ roles }, config) => {
|
|
|
37
37
|
local: allLocalSbComponentsSchemaFiles,
|
|
38
38
|
external: allExternalSbComponentsSchemaFiles,
|
|
39
39
|
});
|
|
40
|
+
console.log({ local, external });
|
|
40
41
|
// #4: sync - do all stuff already done (groups resolving, and so on)
|
|
41
42
|
await managementApi.roles.syncRoles({ specifiedRoles: [...local, ...external] }, config);
|
|
42
43
|
};
|
|
@@ -12,11 +12,6 @@ interface DiscoverRequest {
|
|
|
12
12
|
scope: SCOPE;
|
|
13
13
|
type: LOOKUP_TYPE;
|
|
14
14
|
}
|
|
15
|
-
interface DiscoverOneRequest {
|
|
16
|
-
fileName: string;
|
|
17
|
-
scope: SCOPE;
|
|
18
|
-
type: LOOKUP_TYPE;
|
|
19
|
-
}
|
|
20
15
|
interface DiscoverManyRequest {
|
|
21
16
|
fileNames: string[];
|
|
22
17
|
scope: SCOPE;
|
|
@@ -34,22 +29,19 @@ interface CompareRequest {
|
|
|
34
29
|
local: string[];
|
|
35
30
|
external: string[];
|
|
36
31
|
}
|
|
37
|
-
export interface
|
|
32
|
+
export interface OneFileElement {
|
|
38
33
|
name: string;
|
|
39
34
|
p: string;
|
|
40
35
|
}
|
|
41
36
|
export interface CompareResult {
|
|
42
|
-
local:
|
|
43
|
-
external:
|
|
37
|
+
local: OneFileElement[];
|
|
38
|
+
external: OneFileElement[];
|
|
44
39
|
}
|
|
45
40
|
type DiscoverResult = string[];
|
|
46
41
|
export declare const normalizeDiscover: ({ segments }: {
|
|
47
42
|
segments: string[];
|
|
48
43
|
}) => string | undefined;
|
|
49
|
-
export declare const compare: (request: CompareRequest) =>
|
|
50
|
-
local: OneComponent[];
|
|
51
|
-
external: OneComponent[];
|
|
52
|
-
};
|
|
44
|
+
export declare const compare: (request: CompareRequest) => CompareResult;
|
|
53
45
|
export declare const discoverManyByPackageName: (request: DiscoverManyByPackageNameRequest) => DiscoverResult;
|
|
54
46
|
export declare const discoverOneByPackageName: (request: DiscoverOneByPackageNameRequest) => DiscoverResult;
|
|
55
47
|
export declare const discoverMany: (request: DiscoverManyRequest) => Promise<DiscoverResult>;
|
|
@@ -57,19 +49,17 @@ export declare const discoverManyDatasources: (request: DiscoverManyRequest) =>
|
|
|
57
49
|
export declare const discoverStories: (request: DiscoverManyRequest) => DiscoverResult;
|
|
58
50
|
export declare const discoverMigrationConfig: (request: DiscoverManyRequest) => DiscoverResult;
|
|
59
51
|
export declare const discoverVersionMapping: (request: DiscoverManyRequest) => DiscoverResult;
|
|
60
|
-
export declare const discoverDatasources: (request: DiscoverRequest) => DiscoverResult
|
|
61
|
-
export declare const discoverOne: (request: DiscoverOneRequest) => DiscoverResult;
|
|
52
|
+
export declare const discoverDatasources: (request: DiscoverRequest) => Promise<DiscoverResult>;
|
|
62
53
|
export declare const filesPattern: ({ mainDirectory, componentDirectories, ext, }: {
|
|
63
54
|
mainDirectory: string;
|
|
64
55
|
componentDirectories: string[];
|
|
65
56
|
ext: string;
|
|
66
57
|
}) => string;
|
|
67
58
|
export declare const discover: (request: DiscoverRequest) => Promise<DiscoverResult>;
|
|
68
|
-
export declare const
|
|
69
|
-
export declare const discoverRoles: (request: DiscoverRequest) => DiscoverResult;
|
|
59
|
+
export declare const discoverRoles: (request: DiscoverRequest) => Promise<DiscoverResult>;
|
|
70
60
|
export declare const discoverManyRoles: (request: DiscoverManyRequest) => Promise<DiscoverResult>;
|
|
71
61
|
export declare const discoverAllComponents: () => Promise<{
|
|
72
|
-
local:
|
|
73
|
-
external:
|
|
62
|
+
local: OneFileElement[];
|
|
63
|
+
external: OneFileElement[];
|
|
74
64
|
}>;
|
|
75
65
|
export {};
|
|
@@ -30,16 +30,15 @@ export const normalizeDiscover = ({ segments }) => {
|
|
|
30
30
|
}
|
|
31
31
|
return `{${segments.join(",")}}`;
|
|
32
32
|
};
|
|
33
|
-
// export const compare = (request: CompareRequest): CompareResult => {
|
|
34
33
|
export const compare = (request) => {
|
|
35
|
-
|
|
36
|
-
const splittedLocal =
|
|
34
|
+
const { local, external } = request;
|
|
35
|
+
const splittedLocal = local.map((p) => {
|
|
37
36
|
return {
|
|
38
37
|
name: p.split(path.sep)[p.split(path.sep).length - 1],
|
|
39
38
|
p,
|
|
40
39
|
};
|
|
41
40
|
});
|
|
42
|
-
const splittedExternal =
|
|
41
|
+
const splittedExternal = external.map((p) => {
|
|
43
42
|
return {
|
|
44
43
|
name: p.split(path.sep)[p.split(path.sep).length - 1],
|
|
45
44
|
p,
|
|
@@ -293,7 +292,7 @@ export const discoverManyDatasources = async (request) => {
|
|
|
293
292
|
await buildOnTheFly({ files: listOfFilesToCompile });
|
|
294
293
|
pattern = path.join(directory, ".next", "cache", "sb-mig", "**", `${normalizeDiscover({
|
|
295
294
|
segments: request.fileNames,
|
|
296
|
-
})}
|
|
295
|
+
})}.${storyblokConfig.datasourceExt}`);
|
|
297
296
|
listOFSchemaTSFilesCompiled = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
298
297
|
follow: true,
|
|
299
298
|
});
|
|
@@ -302,7 +301,7 @@ export const discoverManyDatasources = async (request) => {
|
|
|
302
301
|
segments: onlyLocalComponentsDirectories,
|
|
303
302
|
})}`, "**", `${normalizeDiscover({
|
|
304
303
|
segments: request.fileNames,
|
|
305
|
-
})}
|
|
304
|
+
})}.${storyblokConfig.datasourceExt}`);
|
|
306
305
|
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
307
306
|
follow: true,
|
|
308
307
|
});
|
|
@@ -398,7 +397,7 @@ export const discoverVersionMapping = (request) => {
|
|
|
398
397
|
}
|
|
399
398
|
return listOfFiles;
|
|
400
399
|
};
|
|
401
|
-
export const discoverDatasources = (request) => {
|
|
400
|
+
export const discoverDatasources = async (request) => {
|
|
402
401
|
const rootDirectory = "./";
|
|
403
402
|
const directory = path.resolve(process.cwd(), rootDirectory);
|
|
404
403
|
let pattern;
|
|
@@ -406,22 +405,40 @@ export const discoverDatasources = (request) => {
|
|
|
406
405
|
switch (request.scope) {
|
|
407
406
|
case SCOPE.local:
|
|
408
407
|
// ### ALL - LOCAL - fileName ###
|
|
408
|
+
let listOFSchemaTSFilesCompiled = [];
|
|
409
409
|
const onlyLocalComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => !p.includes("node_modules"));
|
|
410
|
+
if (storyblokConfig.schemaType === SCHEMA.TS) {
|
|
411
|
+
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
412
|
+
segments: onlyLocalComponentsDirectories,
|
|
413
|
+
})}`, "**", `[^_]*.sb.datasource.${storyblokConfig.schemaType}`);
|
|
414
|
+
const listOfFilesToCompile = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
415
|
+
follow: true,
|
|
416
|
+
});
|
|
417
|
+
if (storyblokConfig.debug) {
|
|
418
|
+
console.log("############# listOfFileToCompile #############");
|
|
419
|
+
console.log(listOfFilesToCompile);
|
|
420
|
+
console.log("###############################################");
|
|
421
|
+
}
|
|
422
|
+
await buildOnTheFly({ files: listOfFilesToCompile });
|
|
423
|
+
pattern = path.join(directory, ".next", "cache", "sb-mig", "**", `[^_]*.${storyblokConfig.datasourceExt}`);
|
|
424
|
+
listOFSchemaTSFilesCompiled = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
425
|
+
follow: true,
|
|
426
|
+
});
|
|
427
|
+
}
|
|
410
428
|
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
411
429
|
segments: onlyLocalComponentsDirectories,
|
|
412
|
-
})}`, "**", `[^_]*.${storyblokConfig.datasourceExt}`
|
|
413
|
-
);
|
|
430
|
+
})}`, "**", `[^_]*.${storyblokConfig.datasourceExt}`);
|
|
414
431
|
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
415
432
|
follow: true,
|
|
416
433
|
});
|
|
434
|
+
listOfFiles = [...listOfFiles, ...listOFSchemaTSFilesCompiled];
|
|
417
435
|
break;
|
|
418
436
|
case SCOPE.external:
|
|
419
437
|
// ### ALL - EXTERNAL - fileName ###
|
|
420
438
|
const onlyNodeModulesPackagesComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => p.includes("node_modules"));
|
|
421
439
|
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
422
440
|
segments: onlyNodeModulesPackagesComponentsDirectories,
|
|
423
|
-
})}`, "**", `[^_]*.${storyblokConfig.datasourceExt}`
|
|
424
|
-
);
|
|
441
|
+
})}`, "**", `[^_]*.${storyblokConfig.datasourceExt}`);
|
|
425
442
|
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
426
443
|
follow: true,
|
|
427
444
|
});
|
|
@@ -430,50 +447,7 @@ export const discoverDatasources = (request) => {
|
|
|
430
447
|
// ### ALL - LOCAL - fileName ###
|
|
431
448
|
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
432
449
|
segments: storyblokConfig.componentsDirectories,
|
|
433
|
-
})}`, "**", `[^_]*.${storyblokConfig.datasourceExt}`
|
|
434
|
-
);
|
|
435
|
-
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
436
|
-
follow: true,
|
|
437
|
-
});
|
|
438
|
-
break;
|
|
439
|
-
default:
|
|
440
|
-
break;
|
|
441
|
-
}
|
|
442
|
-
return listOfFiles;
|
|
443
|
-
};
|
|
444
|
-
export const discoverOne = (request) => {
|
|
445
|
-
const rootDirectory = "./";
|
|
446
|
-
const directory = path.resolve(process.cwd(), rootDirectory);
|
|
447
|
-
let pattern;
|
|
448
|
-
let listOfFiles = [""];
|
|
449
|
-
switch (request.scope) {
|
|
450
|
-
case SCOPE.local:
|
|
451
|
-
// ### ONE - LOCAL - fileName ###
|
|
452
|
-
const onlyLocalComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => !p.includes("node_modules"));
|
|
453
|
-
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
454
|
-
segments: onlyLocalComponentsDirectories,
|
|
455
|
-
})}`, "**", `${request.fileName}.${storyblokConfig.schemaFileExt}` // all files with 'ext' extension, without files beggining with _
|
|
456
|
-
);
|
|
457
|
-
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
458
|
-
follow: true,
|
|
459
|
-
});
|
|
460
|
-
break;
|
|
461
|
-
case SCOPE.external:
|
|
462
|
-
// ### ONE - EXTERNAL - fileName ###
|
|
463
|
-
const onlyNodeModulesPackagesComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => p.includes("node_modules"));
|
|
464
|
-
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
465
|
-
segments: onlyNodeModulesPackagesComponentsDirectories,
|
|
466
|
-
})}`, "**", `${request.fileName}.${storyblokConfig.schemaFileExt}` // all files with 'ext' extension, without files beggining with _
|
|
467
|
-
);
|
|
468
|
-
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
469
|
-
follow: true,
|
|
470
|
-
});
|
|
471
|
-
break;
|
|
472
|
-
case SCOPE.all:
|
|
473
|
-
// ### ONE - ALL - fileName ###
|
|
474
|
-
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
475
|
-
segments: storyblokConfig.componentsDirectories,
|
|
476
|
-
})}`, "**", `${request.fileName}.${storyblokConfig.schemaFileExt}`);
|
|
450
|
+
})}`, "**", `[^_]*.${storyblokConfig.datasourceExt}`);
|
|
477
451
|
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
478
452
|
follow: true,
|
|
479
453
|
});
|
|
@@ -484,13 +458,9 @@ export const discoverOne = (request) => {
|
|
|
484
458
|
return listOfFiles;
|
|
485
459
|
};
|
|
486
460
|
export const filesPattern = ({ mainDirectory, componentDirectories, ext, }) => {
|
|
487
|
-
const guyToLookForStuff = path.join(`${mainDirectory}`, `{${componentDirectories.join(",")}}`, "**", `[^_]*.${ext}` // all files with 'ext' extension, without files beggining with _
|
|
488
|
-
);
|
|
489
461
|
return componentDirectories.length === 1
|
|
490
|
-
? path.join(`${mainDirectory}`, `${componentDirectories[0]}`, "**", `[^_]*.${ext}`
|
|
491
|
-
)
|
|
492
|
-
: path.join(`${mainDirectory}`, `{${componentDirectories.join(",")}}`, "**", `[^_]*.${ext}` // all files with 'ext' extension, without files beggining with _
|
|
493
|
-
);
|
|
462
|
+
? path.join(`${mainDirectory}`, `${componentDirectories[0]}`, "**", `[^_]*.${ext}`)
|
|
463
|
+
: path.join(`${mainDirectory}`, `{${componentDirectories.join(",")}}`, "**", `[^_]*.${ext}`);
|
|
494
464
|
};
|
|
495
465
|
export const discover = async (request) => {
|
|
496
466
|
const rootDirectory = ".";
|
|
@@ -555,47 +525,7 @@ export const discover = async (request) => {
|
|
|
555
525
|
}
|
|
556
526
|
return listOfFiles;
|
|
557
527
|
};
|
|
558
|
-
export const
|
|
559
|
-
const rootDirectory = "./";
|
|
560
|
-
const directory = path.resolve(process.cwd(), rootDirectory);
|
|
561
|
-
let pattern;
|
|
562
|
-
let listOfFiles = [""];
|
|
563
|
-
switch (request.scope) {
|
|
564
|
-
case SCOPE.local:
|
|
565
|
-
// ### MANY - LOCAL - fileName ###
|
|
566
|
-
const onlyLocalComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => !p.includes("node_modules"));
|
|
567
|
-
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
568
|
-
segments: onlyLocalComponentsDirectories,
|
|
569
|
-
})}`, "**", `${normalizeDiscover({ segments: request.fileNames })}.scss`);
|
|
570
|
-
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
571
|
-
follow: true,
|
|
572
|
-
});
|
|
573
|
-
break;
|
|
574
|
-
case SCOPE.external:
|
|
575
|
-
// ### MANY - EXTERNAL - fileName ###
|
|
576
|
-
const onlyNodeModulesPackagesComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => p.includes("node_modules"));
|
|
577
|
-
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
578
|
-
segments: onlyNodeModulesPackagesComponentsDirectories,
|
|
579
|
-
})}`, "**", `${normalizeDiscover({ segments: request.fileNames })}.scss`);
|
|
580
|
-
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
581
|
-
follow: true,
|
|
582
|
-
});
|
|
583
|
-
break;
|
|
584
|
-
case SCOPE.all:
|
|
585
|
-
// ### MANY - ALL - fileName ###
|
|
586
|
-
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
587
|
-
segments: storyblokConfig.componentsDirectories,
|
|
588
|
-
})}`, "**", `${normalizeDiscover({ segments: request.fileNames })}.scss`);
|
|
589
|
-
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
590
|
-
follow: true,
|
|
591
|
-
});
|
|
592
|
-
break;
|
|
593
|
-
default:
|
|
594
|
-
break;
|
|
595
|
-
}
|
|
596
|
-
return listOfFiles;
|
|
597
|
-
};
|
|
598
|
-
export const discoverRoles = (request) => {
|
|
528
|
+
export const discoverRoles = async (request) => {
|
|
599
529
|
const rootDirectory = ".";
|
|
600
530
|
const directory = path.resolve(process.cwd(), rootDirectory);
|
|
601
531
|
let pattern;
|
|
@@ -603,22 +533,35 @@ export const discoverRoles = (request) => {
|
|
|
603
533
|
switch (request.scope) {
|
|
604
534
|
case SCOPE.local:
|
|
605
535
|
// ### ALL - LOCAL - fileName ###
|
|
536
|
+
let listOFSchemaTSFilesCompiled = [];
|
|
606
537
|
const onlyLocalComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => !p.includes("node_modules"));
|
|
538
|
+
if (storyblokConfig.schemaType === SCHEMA.TS) {
|
|
539
|
+
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
540
|
+
segments: onlyLocalComponentsDirectories,
|
|
541
|
+
})}`, "**", `[^_]*.sb.roles.${storyblokConfig.schemaType}`);
|
|
542
|
+
const listOfFilesToCompile = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
543
|
+
follow: true,
|
|
544
|
+
});
|
|
545
|
+
await buildOnTheFly({ files: listOfFilesToCompile });
|
|
546
|
+
pattern = path.join(directory, ".next", "cache", "sb-mig", "**", `[^_]*.${storyblokConfig.rolesExt}`);
|
|
547
|
+
listOFSchemaTSFilesCompiled = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
548
|
+
follow: true,
|
|
549
|
+
});
|
|
550
|
+
}
|
|
607
551
|
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
608
552
|
segments: onlyLocalComponentsDirectories,
|
|
609
|
-
})}`, "**", `[^_]*.${storyblokConfig.rolesExt}`
|
|
610
|
-
);
|
|
553
|
+
})}`, "**", `[^_]*.${storyblokConfig.rolesExt}`);
|
|
611
554
|
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
612
555
|
follow: true,
|
|
613
556
|
});
|
|
557
|
+
listOfFiles = [...listOfFiles, ...listOFSchemaTSFilesCompiled];
|
|
614
558
|
break;
|
|
615
559
|
case SCOPE.external:
|
|
616
560
|
// ### ALL - EXTERNAL - fileName ###
|
|
617
561
|
const onlyNodeModulesPackagesComponentsDirectories = storyblokConfig.componentsDirectories.filter((p) => p.includes("node_modules"));
|
|
618
562
|
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
619
563
|
segments: onlyNodeModulesPackagesComponentsDirectories,
|
|
620
|
-
})}`, "**", `[^_]*.${storyblokConfig.rolesExt}`
|
|
621
|
-
);
|
|
564
|
+
})}`, "**", `[^_]*.${storyblokConfig.rolesExt}`);
|
|
622
565
|
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
623
566
|
follow: true,
|
|
624
567
|
});
|
|
@@ -627,8 +570,7 @@ export const discoverRoles = (request) => {
|
|
|
627
570
|
// ### ALL - LOCAL - fileName ###
|
|
628
571
|
pattern = path.join(`${directory}`, `${normalizeDiscover({
|
|
629
572
|
segments: storyblokConfig.componentsDirectories,
|
|
630
|
-
})}`, "**", `[^_]*.${storyblokConfig.rolesExt}`
|
|
631
|
-
);
|
|
573
|
+
})}`, "**", `[^_]*.${storyblokConfig.rolesExt}`);
|
|
632
574
|
listOfFiles = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
633
575
|
follow: true,
|
|
634
576
|
});
|
|
@@ -660,7 +602,7 @@ export const discoverManyRoles = async (request) => {
|
|
|
660
602
|
await buildOnTheFly({ files: listOfFilesToCompile });
|
|
661
603
|
pattern = path.join(directory, ".next", "cache", "sb-mig", "**", `${normalizeDiscover({
|
|
662
604
|
segments: request.fileNames,
|
|
663
|
-
})}
|
|
605
|
+
})}.${storyblokConfig.rolesExt}`);
|
|
664
606
|
listOFSchemaTSFilesCompiled = glob.sync(pattern.replace(/\\/g, "/"), {
|
|
665
607
|
follow: true,
|
|
666
608
|
});
|
|
@@ -8,7 +8,7 @@ export const _extractComponentName = (filePath) => {
|
|
|
8
8
|
const separator = "/"; // this guy is like in unix, becasue what glob is returning is always like that... that's why we are NOT using path.sep here...
|
|
9
9
|
const sP = filePath.split(separator);
|
|
10
10
|
const lastElement = sP[sP.length - 1];
|
|
11
|
-
return lastElement.replaceAll(".ts", "")
|
|
11
|
+
return lastElement.replaceAll(".ts", "");
|
|
12
12
|
};
|
|
13
13
|
export const buildOnTheFly = async ({ files }) => {
|
|
14
14
|
if (storyblokConfig.flushCache) {
|
|
@@ -28,11 +28,11 @@ export const buildOnTheFly = async ({ files }) => {
|
|
|
28
28
|
};
|
|
29
29
|
const outputOptionsList = [
|
|
30
30
|
{
|
|
31
|
-
file: path.join(`${cacheDir}`, `${_extractComponentName(filePath)}.
|
|
31
|
+
file: path.join(`${cacheDir}`, `${_extractComponentName(filePath)}.cjs`),
|
|
32
32
|
format: "cjs",
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
file: path.join(`${cacheDir}`, `${_extractComponentName(filePath)}.
|
|
35
|
+
file: path.join(`${cacheDir}`, `${_extractComponentName(filePath)}.js`),
|
|
36
36
|
format: "es",
|
|
37
37
|
},
|
|
38
38
|
];
|
package/dist/utils/main.js
CHANGED
|
@@ -30,8 +30,7 @@ export const getFileContentWithRequire = (data) => {
|
|
|
30
30
|
return fileContent;
|
|
31
31
|
};
|
|
32
32
|
export const getFilesContentWithRequire = (data) => {
|
|
33
|
-
|
|
34
|
-
return data.files.map((file) => require(file));
|
|
33
|
+
return data.files.map((file) => getFileContentWithRequire({ file }));
|
|
35
34
|
};
|
|
36
35
|
export const isObjectEmpty = (obj) => {
|
|
37
36
|
if (obj) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sb-mig",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.2.0",
|
|
4
4
|
"description": "CLI to rule the world. (and handle stuff related to Storyblok CMS)",
|
|
5
5
|
"author": "Marcin Krawczyk <marckraw@icloud.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@commitlint/cli": "^17.7.1",
|
|
73
73
|
"@commitlint/config-conventional": "^17.7.0",
|
|
74
|
+
"@rollup/plugin-node-resolve": "^15.2.0",
|
|
74
75
|
"@ryansonshine/commitizen": "^4.2.8",
|
|
75
76
|
"@ryansonshine/cz-conventional-changelog": "^3.3.4",
|
|
76
77
|
"@semantic-release/changelog": "^6.0.3",
|
|
@@ -84,19 +85,19 @@
|
|
|
84
85
|
"@types/node": "18.16.18",
|
|
85
86
|
"@types/sinon": "^10.0.16",
|
|
86
87
|
"@types/uuid": "^9.0.2",
|
|
87
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
88
|
-
"@typescript-eslint/parser": "^6.
|
|
88
|
+
"@typescript-eslint/eslint-plugin": "^6.4.1",
|
|
89
|
+
"@typescript-eslint/parser": "^6.4.1",
|
|
89
90
|
"chai": "^4.3.7",
|
|
90
91
|
"chokidar-cli": "^3.0.0",
|
|
91
92
|
"eslint": "^8.47.0",
|
|
92
93
|
"eslint-config-prettier": "^9.0.0",
|
|
93
|
-
"eslint-plugin-import": "^2.28.
|
|
94
|
+
"eslint-plugin-import": "^2.28.1",
|
|
94
95
|
"esm": "^3.2.25",
|
|
95
96
|
"husky": "^8.0.3",
|
|
96
97
|
"lint-staged": "^13.2.3",
|
|
97
98
|
"mocha": "^10.2.0",
|
|
98
|
-
"prettier": "^3.0.
|
|
99
|
-
"semantic-release": "^21.0.
|
|
99
|
+
"prettier": "^3.0.2",
|
|
100
|
+
"semantic-release": "^21.0.9",
|
|
100
101
|
"semantic-release-slack-bot": "^4.0.1",
|
|
101
102
|
"sinon": "^15.2.0",
|
|
102
103
|
"tsc-files": "^1.1.4"
|