sb-mig 2.9.0 → 2.9.13
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/README.md +72 -20
- package/lib/api/componentPresets.d.ts +1 -1
- package/lib/api/componentPresets.js +6 -9
- package/lib/api/components.js +25 -20
- package/lib/api/datasources.js +53 -46
- package/lib/api/migrate.d.ts +2 -2
- package/lib/api/migrate.js +69 -64
- package/lib/api/mutateComponents.js +10 -8
- package/lib/api/presets.js +11 -7
- package/lib/api/resolvePresets.js +7 -7
- package/lib/api/roles.d.ts +1 -1
- package/lib/api/roles.js +39 -32
- package/lib/api/spaces.js +8 -6
- package/lib/commands/backup.d.ts +1 -1
- package/lib/commands/backup.js +75 -75
- package/lib/commands/debug.js +10 -3
- package/lib/commands/sync.js +43 -43
- package/lib/config/StoryblokComponentsConfig.js +44 -44
- package/lib/config/config.js +16 -16
- package/lib/core.js +5 -5
- package/lib/index.js +1 -0
- package/lib/utils/discover.d.ts +1 -1
- package/lib/utils/discover.js +46 -44
- package/lib/utils/discover2.js +100 -91
- package/lib/utils/files.js +21 -15
- package/lib/utils/logger.js +5 -5
- package/lib/utils/others.js +2 -1
- package/oclif.manifest.json +1 -1
- package/package.json +18 -30
- package/CHANGELOG.md +0 -968
package/lib/api/migrate.js
CHANGED
|
@@ -10,11 +10,11 @@ const discover2_1 = require("../utils/discover2");
|
|
|
10
10
|
const { componentDirectory } = config_1.default;
|
|
11
11
|
const _uniqueValuesFrom = (array) => [...new Set(array)];
|
|
12
12
|
const _checkAndPrepareGroups = async (groupsToCheck) => {
|
|
13
|
-
const componentsGroups = await components_1.getAllComponentsGroups();
|
|
13
|
+
const componentsGroups = await (0, components_1.getAllComponentsGroups)();
|
|
14
14
|
const groupExist = (groupName) => componentsGroups.component_groups.find((group) => group.name === groupName);
|
|
15
15
|
groupsToCheck.forEach(async (groupName) => {
|
|
16
16
|
if (!groupExist(groupName)) {
|
|
17
|
-
await components_1.createComponentsGroup(groupName);
|
|
17
|
+
await (0, components_1.createComponentsGroup)(groupName);
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
};
|
|
@@ -28,21 +28,21 @@ const _resolveGroups = async (component, existedGroups, remoteComponentsGroups)
|
|
|
28
28
|
return { ...component, component_group_uuid };
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
|
-
|
|
32
|
-
logger_1.default.log(
|
|
33
|
-
const specifiedComponentsContent = specifiedComponents.map(component => discover2_1.getFileContent({ file: component.path }));
|
|
31
|
+
const sync2Components = async ({ specifiedComponents, presets }) => {
|
|
32
|
+
logger_1.default.log('sync2Components: ');
|
|
33
|
+
const specifiedComponentsContent = specifiedComponents.map(component => (0, discover2_1.getFileContent)({ file: component.path }));
|
|
34
34
|
const groupsToCheck = _uniqueValuesFrom(specifiedComponentsContent
|
|
35
|
-
.filter(
|
|
36
|
-
.map(
|
|
35
|
+
.filter(component => component.component_group_name)
|
|
36
|
+
.map(component => component.component_group_name));
|
|
37
37
|
await _checkAndPrepareGroups(groupsToCheck);
|
|
38
38
|
// after checkAndPrepareGroups remoteComponents will have synced groups with local groups
|
|
39
39
|
// updates of the groups had to happen before creation of them, cause creation/updates of components
|
|
40
40
|
// happens async, so if one component will have the same group, as other one
|
|
41
41
|
// it will be race of condition kinda issue - we will never now, if the group for current processed component
|
|
42
42
|
// already exist or is being created by other request
|
|
43
|
-
const remoteComponents = await components_1.getAllComponents();
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
const remoteComponents = await (0, components_1.getAllComponents)();
|
|
44
|
+
const componentsToUpdate = [];
|
|
45
|
+
const componentsToCreate = [];
|
|
46
46
|
for (const component of specifiedComponentsContent) {
|
|
47
47
|
const shouldBeUpdated = remoteComponents.components.find((remoteComponent) => component.name === remoteComponent.name);
|
|
48
48
|
if (shouldBeUpdated) {
|
|
@@ -52,48 +52,49 @@ exports.sync2Components = async ({ specifiedComponents, presets }) => {
|
|
|
52
52
|
componentsToCreate.push(component);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
const componentsGroups = await components_1.getAllComponentsGroups();
|
|
55
|
+
const componentsGroups = await (0, components_1.getAllComponentsGroups)();
|
|
56
56
|
componentsToUpdate.length > 0 && Promise.all(componentsToUpdate
|
|
57
|
-
.map(
|
|
58
|
-
logger_1.default.log(
|
|
59
|
-
res.map(
|
|
57
|
+
.map(component => _resolveGroups(component, groupsToCheck, componentsGroups))).then(res => {
|
|
58
|
+
logger_1.default.log('Components to update after check: ');
|
|
59
|
+
res.map(component => {
|
|
60
60
|
logger_1.default.warning(` ${component.name}`);
|
|
61
|
-
mutateComponents_1.updateComponent(component, presets);
|
|
61
|
+
(0, mutateComponents_1.updateComponent)(component, presets);
|
|
62
62
|
});
|
|
63
63
|
});
|
|
64
64
|
componentsToCreate.length > 0 && Promise.all(componentsToCreate
|
|
65
|
-
.map(
|
|
66
|
-
logger_1.default.log(
|
|
67
|
-
res.map(
|
|
65
|
+
.map(component => _resolveGroups(component, groupsToCheck, componentsGroups))).then(res => {
|
|
66
|
+
logger_1.default.log('Components to create after check: ');
|
|
67
|
+
res.map(component => {
|
|
68
68
|
logger_1.default.warning(` ${component.name}`);
|
|
69
|
-
mutateComponents_1.createComponent(component, presets);
|
|
69
|
+
(0, mutateComponents_1.createComponent)(component, presets);
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
72
|
};
|
|
73
|
-
exports.
|
|
73
|
+
exports.sync2Components = sync2Components;
|
|
74
|
+
const syncComponents = async (specifiedComponents, ext, presets, packageName, local) => {
|
|
74
75
|
if (packageName) {
|
|
75
|
-
specifiedComponents = discover_1.findComponentsByPackageName(ext, specifiedComponents, local);
|
|
76
|
+
specifiedComponents = (0, discover_1.findComponentsByPackageName)(ext, specifiedComponents, local);
|
|
76
77
|
}
|
|
77
78
|
logger_1.default.log(`Trying to sync specified components from '${componentDirectory}'`);
|
|
78
79
|
let localComponents;
|
|
79
80
|
if (ext) {
|
|
80
|
-
localComponents = discover_1.findComponentsWithExt(ext);
|
|
81
|
+
localComponents = (0, discover_1.findComponentsWithExt)(ext);
|
|
81
82
|
}
|
|
82
83
|
else {
|
|
83
|
-
localComponents = discover_1.findComponents(componentDirectory);
|
|
84
|
+
localComponents = (0, discover_1.findComponents)(componentDirectory);
|
|
84
85
|
}
|
|
85
86
|
const groupsToCheck = _uniqueValuesFrom(localComponents
|
|
86
|
-
.filter(
|
|
87
|
-
.map(
|
|
87
|
+
.filter(component => component.component_group_name)
|
|
88
|
+
.map(component => component.component_group_name));
|
|
88
89
|
await _checkAndPrepareGroups(groupsToCheck);
|
|
89
90
|
// after checkAndPrepareGroups remoteComponents will have synced groups with local groups
|
|
90
91
|
// updates of the groups had to happen before creation of them, cause creation/updates of components
|
|
91
92
|
// happens async, so if one component will have the same group, as other one
|
|
92
93
|
// it will be race of condition kinda issue - we will never now, if the group for current processed component
|
|
93
94
|
// already exist or is being created by other request
|
|
94
|
-
const remoteComponents = await components_1.getAllComponents();
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
const remoteComponents = await (0, components_1.getAllComponents)();
|
|
96
|
+
const componentsToUpdate = [];
|
|
97
|
+
const componentsToCreate = [];
|
|
97
98
|
for (const component of localComponents) {
|
|
98
99
|
const shouldBeUpdated = remoteComponents.components.find((remoteComponent) => component.name === remoteComponent.name);
|
|
99
100
|
if (shouldBeUpdated) {
|
|
@@ -103,113 +104,117 @@ exports.syncComponents = async (specifiedComponents, ext, presets, packageName,
|
|
|
103
104
|
componentsToCreate.push(component);
|
|
104
105
|
}
|
|
105
106
|
}
|
|
106
|
-
const componentsGroups = await components_1.getAllComponentsGroups();
|
|
107
|
+
const componentsGroups = await (0, components_1.getAllComponentsGroups)();
|
|
107
108
|
Promise.all(componentsToUpdate
|
|
108
|
-
.filter(
|
|
109
|
+
.filter(c => {
|
|
109
110
|
const temp = specifiedComponents.find((component) => component === c.name);
|
|
110
111
|
if (temp) {
|
|
111
112
|
specifiedComponents = specifiedComponents.filter((component) => component !== temp);
|
|
112
113
|
}
|
|
113
114
|
return temp;
|
|
114
115
|
})
|
|
115
|
-
.map(
|
|
116
|
-
logger_1.default.log(
|
|
117
|
-
res.map(
|
|
116
|
+
.map(component => _resolveGroups(component, groupsToCheck, componentsGroups))).then(res => {
|
|
117
|
+
logger_1.default.log('Components to update after check: ');
|
|
118
|
+
res.map(component => {
|
|
118
119
|
logger_1.default.warning(` ${component.name}`);
|
|
119
|
-
mutateComponents_1.updateComponent(component, presets);
|
|
120
|
+
(0, mutateComponents_1.updateComponent)(component, presets);
|
|
120
121
|
});
|
|
121
122
|
});
|
|
122
123
|
Promise.all(componentsToCreate
|
|
123
|
-
.filter(
|
|
124
|
+
.filter(c => {
|
|
124
125
|
const temp = specifiedComponents.find((component) => component === c.name);
|
|
125
126
|
return temp;
|
|
126
127
|
})
|
|
127
|
-
.map(
|
|
128
|
-
logger_1.default.log(
|
|
129
|
-
res.map(
|
|
128
|
+
.map(component => _resolveGroups(component, groupsToCheck, componentsGroups))).then(res => {
|
|
129
|
+
logger_1.default.log('Components to create after check: ');
|
|
130
|
+
res.map(component => {
|
|
130
131
|
logger_1.default.warning(` ${component.name}`);
|
|
131
|
-
mutateComponents_1.createComponent(component, presets);
|
|
132
|
+
(0, mutateComponents_1.createComponent)(component, presets);
|
|
132
133
|
});
|
|
133
134
|
});
|
|
134
135
|
};
|
|
135
|
-
exports.
|
|
136
|
+
exports.syncComponents = syncComponents;
|
|
137
|
+
const syncProvidedComponents = ({ components, presets, packageName }) => {
|
|
136
138
|
if (!packageName) {
|
|
137
139
|
// #1: discover all external .sb.js files
|
|
138
|
-
const allLocalSbComponentsSchemaFiles = discover2_1.discoverMany({
|
|
140
|
+
const allLocalSbComponentsSchemaFiles = (0, discover2_1.discoverMany)({
|
|
139
141
|
scope: discover2_1.SCOPE.local,
|
|
140
142
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
141
|
-
fileNames: components
|
|
143
|
+
fileNames: components,
|
|
142
144
|
});
|
|
143
145
|
// #2: discover all local .sb.js files
|
|
144
|
-
const allExternalSbComponentsSchemaFiles = discover2_1.discoverMany({
|
|
146
|
+
const allExternalSbComponentsSchemaFiles = (0, discover2_1.discoverMany)({
|
|
145
147
|
scope: discover2_1.SCOPE.external,
|
|
146
148
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
147
|
-
fileNames: components
|
|
149
|
+
fileNames: components,
|
|
148
150
|
});
|
|
149
151
|
// #3: compare results, prefer local ones (so we have to create final external paths array and local array of things to sync from where)
|
|
150
|
-
const { local, external } = discover2_1.compare({
|
|
152
|
+
const { local, external } = (0, discover2_1.compare)({
|
|
151
153
|
local: allLocalSbComponentsSchemaFiles,
|
|
152
154
|
external: allExternalSbComponentsSchemaFiles,
|
|
153
155
|
});
|
|
154
156
|
// #4: sync - do all stuff already done (groups resolving, and so on)
|
|
155
|
-
exports.sync2Components({
|
|
157
|
+
(0, exports.sync2Components)({
|
|
156
158
|
presets,
|
|
157
|
-
specifiedComponents: [...local, ...external]
|
|
159
|
+
specifiedComponents: [...local, ...external],
|
|
158
160
|
});
|
|
159
161
|
}
|
|
160
162
|
else {
|
|
161
163
|
// implement discovering and syncrhonizing with packageName
|
|
162
164
|
// #1: discover all external .sb.js files
|
|
163
|
-
const allLocalSbComponentsSchemaFiles = discover2_1.discoverManyByPackageName({
|
|
165
|
+
const allLocalSbComponentsSchemaFiles = (0, discover2_1.discoverManyByPackageName)({
|
|
164
166
|
scope: discover2_1.SCOPE.local,
|
|
165
|
-
packageNames: components
|
|
167
|
+
packageNames: components,
|
|
166
168
|
});
|
|
167
169
|
// #2: discover all local .sb.js files
|
|
168
|
-
const allExternalSbComponentsSchemaFiles = discover2_1.discoverManyByPackageName({
|
|
170
|
+
const allExternalSbComponentsSchemaFiles = (0, discover2_1.discoverManyByPackageName)({
|
|
169
171
|
scope: discover2_1.SCOPE.external,
|
|
170
|
-
packageNames: components
|
|
172
|
+
packageNames: components,
|
|
171
173
|
});
|
|
172
174
|
// #3: compare results, prefer local ones (so we have to create final external paths array and local array of things to sync from where)
|
|
173
|
-
const { local, external } = discover2_1.compare({
|
|
175
|
+
const { local, external } = (0, discover2_1.compare)({
|
|
174
176
|
local: allLocalSbComponentsSchemaFiles,
|
|
175
177
|
external: allExternalSbComponentsSchemaFiles,
|
|
176
178
|
});
|
|
177
179
|
// #4: sync - do all stuff already done (groups resolving, and so on)
|
|
178
|
-
exports.sync2Components({
|
|
180
|
+
(0, exports.sync2Components)({
|
|
179
181
|
presets,
|
|
180
|
-
specifiedComponents: [...local, ...external]
|
|
182
|
+
specifiedComponents: [...local, ...external],
|
|
181
183
|
});
|
|
182
184
|
}
|
|
183
185
|
};
|
|
184
|
-
exports.
|
|
186
|
+
exports.syncProvidedComponents = syncProvidedComponents;
|
|
187
|
+
const sync2AllComponents = ({ presets }) => {
|
|
185
188
|
// #1: discover all external .sb.js files
|
|
186
|
-
const allLocalSbComponentsSchemaFiles = discover2_1.discover({
|
|
189
|
+
const allLocalSbComponentsSchemaFiles = (0, discover2_1.discover)({
|
|
187
190
|
scope: discover2_1.SCOPE.local,
|
|
188
191
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
189
192
|
});
|
|
190
193
|
// #2: discover all local .sb.js files
|
|
191
|
-
const allExternalSbComponentsSchemaFiles = discover2_1.discover({
|
|
194
|
+
const allExternalSbComponentsSchemaFiles = (0, discover2_1.discover)({
|
|
192
195
|
scope: discover2_1.SCOPE.external,
|
|
193
196
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
194
197
|
});
|
|
195
198
|
// #3: compare results, prefare local ones (so we have to create final external paths array and local array of things to sync from where)
|
|
196
|
-
const { local, external } = discover2_1.compare({
|
|
199
|
+
const { local, external } = (0, discover2_1.compare)({
|
|
197
200
|
local: allLocalSbComponentsSchemaFiles,
|
|
198
201
|
external: allExternalSbComponentsSchemaFiles,
|
|
199
202
|
});
|
|
200
203
|
// #4: sync - do all stuff already done (groups resolving, and so on)
|
|
201
|
-
exports.sync2Components({
|
|
204
|
+
(0, exports.sync2Components)({
|
|
202
205
|
presets,
|
|
203
|
-
specifiedComponents: [...local, ...external]
|
|
206
|
+
specifiedComponents: [...local, ...external],
|
|
204
207
|
});
|
|
205
208
|
};
|
|
206
|
-
exports.
|
|
209
|
+
exports.sync2AllComponents = sync2AllComponents;
|
|
210
|
+
const syncAllComponents = (ext, presets) => {
|
|
207
211
|
let specifiedComponents;
|
|
208
212
|
if (ext) {
|
|
209
|
-
specifiedComponents = discover_1.findComponentsWithExt(ext).map(
|
|
213
|
+
specifiedComponents = (0, discover_1.findComponentsWithExt)(ext).map(component => component.name);
|
|
210
214
|
}
|
|
211
215
|
else {
|
|
212
|
-
specifiedComponents = discover_1.findComponents(componentDirectory).map((component) => component.name);
|
|
216
|
+
specifiedComponents = (0, discover_1.findComponents)(componentDirectory).map((component) => component.name);
|
|
213
217
|
}
|
|
214
|
-
exports.syncComponents(specifiedComponents, ext, presets, false);
|
|
218
|
+
(0, exports.syncComponents)(specifiedComponents, ext, presets, false);
|
|
215
219
|
};
|
|
220
|
+
exports.syncAllComponents = syncAllComponents;
|
|
@@ -7,42 +7,44 @@ const apiConfig_1 = require("./apiConfig");
|
|
|
7
7
|
const resolvePresets_1 = require("./resolvePresets");
|
|
8
8
|
const { spaceId } = config_1.default;
|
|
9
9
|
// UPDATE
|
|
10
|
-
|
|
10
|
+
const updateComponent = (component, presets) => {
|
|
11
11
|
logger_1.default.log(`Trying to update '${component.name}' with id ${component.id}`);
|
|
12
12
|
const componentWithPresets = component;
|
|
13
13
|
const { all_presets, ...componentWithoutPresets } = componentWithPresets;
|
|
14
14
|
apiConfig_1.sbApi
|
|
15
15
|
.put(`spaces/${spaceId}/components/${component.id}`, {
|
|
16
|
-
component: componentWithoutPresets
|
|
16
|
+
component: componentWithoutPresets,
|
|
17
17
|
})
|
|
18
18
|
.then(res => {
|
|
19
19
|
logger_1.default.success(`Component '${component.name}' has been updated.`);
|
|
20
20
|
if (presets) {
|
|
21
|
-
resolvePresets_1.default(res, all_presets, component);
|
|
21
|
+
(0, resolvePresets_1.default)(res, all_presets, component);
|
|
22
22
|
}
|
|
23
23
|
})
|
|
24
24
|
.catch(err => {
|
|
25
|
-
logger_1.default.error(
|
|
25
|
+
logger_1.default.error('error happened... :(');
|
|
26
26
|
console.log(`${err.message} in migration of ${component.name} in updateComponent function`);
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
|
+
exports.updateComponent = updateComponent;
|
|
29
30
|
// CREATE
|
|
30
|
-
|
|
31
|
+
const createComponent = (component, presets) => {
|
|
31
32
|
logger_1.default.log(`Trying to create '${component.name}'`);
|
|
32
33
|
const componentWithPresets = component;
|
|
33
34
|
const { all_presets, ...componentWithoutPresets } = componentWithPresets;
|
|
34
35
|
apiConfig_1.sbApi
|
|
35
36
|
.post(`spaces/${spaceId}/components/`, {
|
|
36
|
-
component: componentWithoutPresets
|
|
37
|
+
component: componentWithoutPresets,
|
|
37
38
|
})
|
|
38
39
|
.then(res => {
|
|
39
40
|
logger_1.default.success(`Component '${component.name}' has been created.`);
|
|
40
41
|
if (presets) {
|
|
41
|
-
resolvePresets_1.default(res, all_presets, component);
|
|
42
|
+
(0, resolvePresets_1.default)(res, all_presets, component);
|
|
42
43
|
}
|
|
43
44
|
})
|
|
44
45
|
.catch(err => {
|
|
45
|
-
logger_1.default.error(
|
|
46
|
+
logger_1.default.error('error happened... :(');
|
|
46
47
|
console.log(`${err.message} in migration of ${component.name} in createComponent function`);
|
|
47
48
|
});
|
|
48
49
|
};
|
|
50
|
+
exports.createComponent = createComponent;
|
package/lib/api/presets.js
CHANGED
|
@@ -6,7 +6,7 @@ const config_1 = require("../config/config");
|
|
|
6
6
|
const apiConfig_1 = require("./apiConfig");
|
|
7
7
|
const { spaceId } = config_1.default;
|
|
8
8
|
// GET
|
|
9
|
-
|
|
9
|
+
const getPreset = (presetId) => {
|
|
10
10
|
logger_1.default.log(`Trying to get preset by id: ${presetId}`);
|
|
11
11
|
return apiConfig_1.sbApi
|
|
12
12
|
.get(`spaces/${spaceId}/presets/${presetId}`)
|
|
@@ -20,18 +20,20 @@ exports.getPreset = (presetId) => {
|
|
|
20
20
|
})
|
|
21
21
|
.catch(err => logger_1.default.error(err));
|
|
22
22
|
};
|
|
23
|
-
exports.
|
|
24
|
-
|
|
23
|
+
exports.getPreset = getPreset;
|
|
24
|
+
const getAllPresets = () => {
|
|
25
|
+
logger_1.default.log('Trying to get all Presets.');
|
|
25
26
|
return apiConfig_1.sbApi
|
|
26
27
|
.get(`spaces/${spaceId}/presets/`)
|
|
27
28
|
.then(response => response.data)
|
|
28
29
|
.catch(err => logger_1.default.error(err));
|
|
29
30
|
};
|
|
31
|
+
exports.getAllPresets = getAllPresets;
|
|
30
32
|
// CREATE
|
|
31
|
-
|
|
33
|
+
const createPreset = (p) => {
|
|
32
34
|
apiConfig_1.sbApi
|
|
33
35
|
.post(`spaces/${spaceId}/presets/`, {
|
|
34
|
-
preset: p.preset
|
|
36
|
+
preset: p.preset,
|
|
35
37
|
})
|
|
36
38
|
.then(res => {
|
|
37
39
|
logger_1.default.warning(`Preset: '${p.preset.name}' has been created.`);
|
|
@@ -40,11 +42,12 @@ exports.createPreset = (p) => {
|
|
|
40
42
|
logger_1.default.error(`Error happened. Preset: '${p.preset.name}' has been not created.`);
|
|
41
43
|
});
|
|
42
44
|
};
|
|
45
|
+
exports.createPreset = createPreset;
|
|
43
46
|
// UPDATE
|
|
44
|
-
|
|
47
|
+
const updatePreset = (p) => {
|
|
45
48
|
apiConfig_1.sbApi
|
|
46
49
|
.put(`spaces/${spaceId}/presets/${p.preset.id}`, {
|
|
47
|
-
preset: p.preset
|
|
50
|
+
preset: p.preset,
|
|
48
51
|
})
|
|
49
52
|
.then(res => {
|
|
50
53
|
logger_1.default.warning(`Preset: '${p.preset.name}' with '${p.preset.id}' id has been updated.`);
|
|
@@ -53,3 +56,4 @@ exports.updatePreset = (p) => {
|
|
|
53
56
|
logger_1.default.error(`Error happened. Preset: '${p.preset.name}' with '${p.preset.id}' id has been not updated.`);
|
|
54
57
|
});
|
|
55
58
|
};
|
|
59
|
+
exports.updatePreset = updatePreset;
|
|
@@ -10,16 +10,16 @@ const _resolvePresets = async (res, all_presets, component) => {
|
|
|
10
10
|
return { preset: { ...p.preset, component_id: componentId } };
|
|
11
11
|
});
|
|
12
12
|
logger_1.default.log(`Checking preset for '${component.name}' component`);
|
|
13
|
-
const allRemoteComponentPresets = await componentPresets_1.getComponentPresets(component.name);
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const allRemoteComponentPresets = await (0, componentPresets_1.getComponentPresets)(component.name);
|
|
14
|
+
const presetsToUpdate = [];
|
|
15
|
+
const presetsToCreate = [];
|
|
16
16
|
for (const componentPreset of all_presets_modified) {
|
|
17
17
|
const shouldBeUpdated = allRemoteComponentPresets &&
|
|
18
18
|
allRemoteComponentPresets.find((remotePreset) => componentPreset.preset.name === remotePreset.preset.name);
|
|
19
19
|
if (shouldBeUpdated) {
|
|
20
20
|
presetsToUpdate.push({
|
|
21
21
|
...componentPreset,
|
|
22
|
-
preset: { id: shouldBeUpdated.preset.id, ...componentPreset.preset }
|
|
22
|
+
preset: { id: shouldBeUpdated.preset.id, ...componentPreset.preset },
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
else {
|
|
@@ -27,14 +27,14 @@ const _resolvePresets = async (res, all_presets, component) => {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
presetsToUpdate.map(preset => {
|
|
30
|
-
presets_1.updatePreset(preset);
|
|
30
|
+
(0, presets_1.updatePreset)(preset);
|
|
31
31
|
});
|
|
32
32
|
presetsToCreate.map(preset => {
|
|
33
|
-
presets_1.createPreset(preset);
|
|
33
|
+
(0, presets_1.createPreset)(preset);
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
logger_1.default.warning(
|
|
37
|
+
logger_1.default.warning('There are no presets for this component.');
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
40
|
exports.default = _resolvePresets;
|
package/lib/api/roles.d.ts
CHANGED
package/lib/api/roles.js
CHANGED
|
@@ -7,39 +7,41 @@ const apiConfig_1 = require("./apiConfig");
|
|
|
7
7
|
const discover2_1 = require("../utils/discover2");
|
|
8
8
|
const { spaceId } = config_1.default;
|
|
9
9
|
// POST
|
|
10
|
-
|
|
10
|
+
const createRole = (role) => {
|
|
11
11
|
apiConfig_1.sbApi
|
|
12
12
|
.post(`spaces/${spaceId}/space_roles/`, {
|
|
13
13
|
space_role: role,
|
|
14
14
|
})
|
|
15
|
-
.then(
|
|
15
|
+
.then(res => {
|
|
16
16
|
logger_1.default.success(`Role '${role.role}' has been created.`);
|
|
17
17
|
})
|
|
18
|
-
.catch(
|
|
19
|
-
logger_1.default.error(
|
|
18
|
+
.catch(err => {
|
|
19
|
+
logger_1.default.error('error happened... :(');
|
|
20
20
|
console.log(`${err.message} in migration of ${role.role} in createRole function`);
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
+
exports.createRole = createRole;
|
|
23
24
|
// PUT
|
|
24
|
-
|
|
25
|
+
const updateRole = (role) => {
|
|
25
26
|
apiConfig_1.sbApi
|
|
26
27
|
.put(`spaces/${spaceId}/space_roles/${role.id}`, {
|
|
27
28
|
space_role: role,
|
|
28
29
|
})
|
|
29
|
-
.then(
|
|
30
|
+
.then(res => {
|
|
30
31
|
logger_1.default.success(`Role '${role.role}' has been updated.`);
|
|
31
32
|
})
|
|
32
|
-
.catch(
|
|
33
|
-
logger_1.default.error(
|
|
33
|
+
.catch(err => {
|
|
34
|
+
logger_1.default.error('error happened... :(');
|
|
34
35
|
console.log(`${err.message} in migration of ${role.role} in updateRole function`);
|
|
35
36
|
});
|
|
36
37
|
};
|
|
38
|
+
exports.updateRole = updateRole;
|
|
37
39
|
// GET
|
|
38
|
-
|
|
40
|
+
const getAllRoles = async () => {
|
|
39
41
|
return apiConfig_1.sbApi
|
|
40
42
|
.get(`spaces/${spaceId}/space_roles/`)
|
|
41
43
|
.then(({ data }) => data)
|
|
42
|
-
.catch(
|
|
44
|
+
.catch(err => {
|
|
43
45
|
if (err.response.status === 404) {
|
|
44
46
|
logger_1.default.error(`There is no roles in your Storyblok ${spaceId} space.`);
|
|
45
47
|
}
|
|
@@ -49,25 +51,27 @@ exports.getAllRoles = async () => {
|
|
|
49
51
|
}
|
|
50
52
|
});
|
|
51
53
|
};
|
|
54
|
+
exports.getAllRoles = getAllRoles;
|
|
52
55
|
// GET
|
|
53
|
-
|
|
56
|
+
const getRole = async (roleName) => {
|
|
54
57
|
logger_1.default.log(`Trying to get '${roleName}' role.`);
|
|
55
|
-
return exports.getAllRoles()
|
|
56
|
-
.then(
|
|
57
|
-
.then(
|
|
58
|
+
return (0, exports.getAllRoles)()
|
|
59
|
+
.then(res => res.space_roles.filter((role) => role.role === roleName))
|
|
60
|
+
.then(res => {
|
|
58
61
|
if (Array.isArray(res) && res.length === 0) {
|
|
59
62
|
logger_1.default.warning(`There is no role named '${roleName}'`);
|
|
60
63
|
return false;
|
|
61
64
|
}
|
|
62
65
|
return res;
|
|
63
66
|
})
|
|
64
|
-
.catch(
|
|
67
|
+
.catch(err => logger_1.default.error(err));
|
|
65
68
|
};
|
|
66
|
-
exports.
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
exports.getRole = getRole;
|
|
70
|
+
const syncRoles = async ({ specifiedRoles }) => {
|
|
71
|
+
const specifiedRolesContent = specifiedRoles.map(roles => (0, discover2_1.getFileContent)({ file: roles.path }));
|
|
72
|
+
const { space_roles } = await (0, exports.getAllRoles)();
|
|
73
|
+
const rolesToUpdate = [];
|
|
74
|
+
const rolesToCreate = [];
|
|
71
75
|
for (const role of specifiedRolesContent) {
|
|
72
76
|
const shouldBeUpdated = space_roles.find((remoteRole) => role.role === remoteRole.role);
|
|
73
77
|
if (shouldBeUpdated) {
|
|
@@ -78,49 +82,52 @@ exports.syncRoles = async ({ specifiedRoles }) => {
|
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
rolesToUpdate.map(async (role) => {
|
|
81
|
-
await exports.updateRole(role);
|
|
85
|
+
await (0, exports.updateRole)(role);
|
|
82
86
|
});
|
|
83
87
|
rolesToCreate.map(async (role) => {
|
|
84
|
-
await exports.createRole(role);
|
|
88
|
+
await (0, exports.createRole)(role);
|
|
85
89
|
});
|
|
86
90
|
};
|
|
87
|
-
exports.
|
|
91
|
+
exports.syncRoles = syncRoles;
|
|
92
|
+
const syncAllRoles = async () => {
|
|
88
93
|
// #1: discover all external .roles.sb.js files
|
|
89
|
-
const allLocalSbComponentsSchemaFiles = discover2_1.discoverRoles({
|
|
94
|
+
const allLocalSbComponentsSchemaFiles = (0, discover2_1.discoverRoles)({
|
|
90
95
|
scope: discover2_1.SCOPE.local,
|
|
91
96
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
92
97
|
});
|
|
93
98
|
// #2: discover all local .roles.sb.js files
|
|
94
|
-
const allExternalSbComponentsSchemaFiles = discover2_1.discoverRoles({
|
|
99
|
+
const allExternalSbComponentsSchemaFiles = (0, discover2_1.discoverRoles)({
|
|
95
100
|
scope: discover2_1.SCOPE.external,
|
|
96
101
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
97
102
|
});
|
|
98
103
|
// #3: compare results, prefare local ones (so we have to create final external paths array and local array of things to sync from where)
|
|
99
|
-
const { local, external } = discover2_1.compare({
|
|
104
|
+
const { local, external } = (0, discover2_1.compare)({
|
|
100
105
|
local: allLocalSbComponentsSchemaFiles,
|
|
101
106
|
external: allExternalSbComponentsSchemaFiles,
|
|
102
107
|
});
|
|
103
108
|
// #4: sync - do all stuff already done (groups resolving, and so on)
|
|
104
|
-
exports.syncRoles({ specifiedRoles: [...local, ...external] });
|
|
109
|
+
(0, exports.syncRoles)({ specifiedRoles: [...local, ...external] });
|
|
105
110
|
};
|
|
106
|
-
exports.
|
|
111
|
+
exports.syncAllRoles = syncAllRoles;
|
|
112
|
+
const syncProvidedRoles = ({ roles }) => {
|
|
107
113
|
// #1: discover all external .sb.js files
|
|
108
|
-
const allLocalSbComponentsSchemaFiles = discover2_1.discoverManyRoles({
|
|
114
|
+
const allLocalSbComponentsSchemaFiles = (0, discover2_1.discoverManyRoles)({
|
|
109
115
|
scope: discover2_1.SCOPE.local,
|
|
110
116
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
111
117
|
fileNames: roles,
|
|
112
118
|
});
|
|
113
119
|
// #2: discover all local .sb.js files
|
|
114
|
-
const allExternalSbComponentsSchemaFiles = discover2_1.discoverManyRoles({
|
|
120
|
+
const allExternalSbComponentsSchemaFiles = (0, discover2_1.discoverManyRoles)({
|
|
115
121
|
scope: discover2_1.SCOPE.external,
|
|
116
122
|
type: discover2_1.LOOKUP_TYPE.fileName,
|
|
117
123
|
fileNames: roles,
|
|
118
124
|
});
|
|
119
125
|
// #3: compare results, prefer local ones (so we have to create final external paths array and local array of things to sync from where)
|
|
120
|
-
const { local, external } = discover2_1.compare({
|
|
126
|
+
const { local, external } = (0, discover2_1.compare)({
|
|
121
127
|
local: allLocalSbComponentsSchemaFiles,
|
|
122
128
|
external: allExternalSbComponentsSchemaFiles,
|
|
123
129
|
});
|
|
124
130
|
// #4: sync - do all stuff already done (groups resolving, and so on)
|
|
125
|
-
exports.syncRoles({ specifiedRoles: [...local, ...external] });
|
|
131
|
+
(0, exports.syncRoles)({ specifiedRoles: [...local, ...external] });
|
|
126
132
|
};
|
|
133
|
+
exports.syncProvidedRoles = syncProvidedRoles;
|
package/lib/api/spaces.js
CHANGED
|
@@ -4,24 +4,26 @@ exports.getSpace = exports.createSpace = void 0;
|
|
|
4
4
|
const logger_1 = require("../utils/logger");
|
|
5
5
|
const apiConfig_1 = require("./apiConfig");
|
|
6
6
|
// CREATE
|
|
7
|
-
|
|
7
|
+
const createSpace = (spaceName) => {
|
|
8
8
|
logger_1.default.warning(`Trying to create space ${spaceName}...`);
|
|
9
9
|
return apiConfig_1.sbApi
|
|
10
|
-
.post(
|
|
10
|
+
.post('spaces/', {
|
|
11
11
|
space: {
|
|
12
12
|
name: spaceName,
|
|
13
|
-
domain: 'http://localhost:8000/editor?path='
|
|
14
|
-
}
|
|
13
|
+
domain: 'http://localhost:8000/editor?path=',
|
|
14
|
+
},
|
|
15
15
|
})
|
|
16
16
|
.then(res => {
|
|
17
17
|
return res;
|
|
18
18
|
})
|
|
19
19
|
.catch(err => {
|
|
20
|
-
logger_1.default.error(
|
|
20
|
+
logger_1.default.error('Error happened. Can\'t create space');
|
|
21
21
|
console.log(err.message);
|
|
22
22
|
});
|
|
23
23
|
};
|
|
24
|
+
exports.createSpace = createSpace;
|
|
24
25
|
// GET
|
|
25
|
-
|
|
26
|
+
const getSpace = (spaceId) => {
|
|
26
27
|
return apiConfig_1.sbApi.get(`spaces/${spaceId}`).then(res => res);
|
|
27
28
|
};
|
|
29
|
+
exports.getSpace = getSpace;
|
package/lib/commands/backup.d.ts
CHANGED