sb-mig 5.7.0-beta.3 → 5.7.0-beta.4
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 -12
- package/dist/api/datasources/datasources.js +3 -2
- package/dist/api/datasources/error-formatting.d.ts +1 -0
- package/dist/api/datasources/error-formatting.js +24 -0
- package/dist-cjs/api/datasources/datasource-entries.js +16 -12
- package/dist-cjs/api/datasources/datasources.js +3 -2
- package/dist-cjs/api/datasources/error-formatting.js +28 -0
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import Logger from "../../utils/logger.js";
|
|
3
3
|
import { isObjectEmpty } from "../../utils/object-utils.js";
|
|
4
|
+
import { getAllItemsWithPagination } from "../utils/request.js";
|
|
4
5
|
import { getDatasource } from "./datasources.js";
|
|
6
|
+
import { formatDatasourceApiError } from "./error-formatting.js";
|
|
5
7
|
const _decorateWithDimensions = async (args, config) => {
|
|
6
8
|
const { currentDatasource, dimensionsData, _callback } = args;
|
|
7
9
|
const { spaceId, sbApi } = config;
|
|
@@ -35,17 +37,19 @@ export const getDatasourceEntries = async (args, config) => {
|
|
|
35
37
|
Logger.log(`Trying to get '${datasourceName}' datasource entries.`);
|
|
36
38
|
const data = await getDatasource({ datasourceName }, config); // TODO: maybe this step is not needed, i think we can retrieve entries directly using slug (but using delivery api, not management)
|
|
37
39
|
if (data) {
|
|
38
|
-
|
|
39
|
-
.get(`spaces/${spaceId}/datasource_entries/`, {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
})
|
|
47
|
-
|
|
40
|
+
const datasourceEntries = await getAllItemsWithPagination({
|
|
41
|
+
apiFn: ({ per_page, page }) => sbApi.get(`spaces/${spaceId}/datasource_entries/`, {
|
|
42
|
+
datasource_id: data[0].id,
|
|
43
|
+
per_page,
|
|
44
|
+
page,
|
|
45
|
+
}),
|
|
46
|
+
params: {},
|
|
47
|
+
itemsKey: "datasource_entries",
|
|
48
|
+
});
|
|
49
|
+
Logger.success(`Datasource Entries for '${datasourceName}' datasource successfully retrieved.`);
|
|
50
|
+
return { datasource_entries: datasourceEntries };
|
|
48
51
|
}
|
|
52
|
+
return { datasource_entries: [] };
|
|
49
53
|
};
|
|
50
54
|
export const createDatasourceEntries = (args, config) => {
|
|
51
55
|
const { datasource_entries, remoteDatasourceEntries, data, dryRun } = args;
|
|
@@ -96,7 +100,7 @@ const _createDatasourceEntry = (args, config) => {
|
|
|
96
100
|
console.log("Full Create error: ");
|
|
97
101
|
console.log(err);
|
|
98
102
|
}
|
|
99
|
-
Logger.error(`Unable to create datasource entry in ${currentDatasource.datasource.name} datasource
|
|
103
|
+
Logger.error(`Unable to create datasource entry '${finalDatasource_entry.name}' in ${currentDatasource.datasource.name} datasource. Value: '${finalDatasource_entry.value}'. ${formatDatasourceApiError(err)}`);
|
|
100
104
|
});
|
|
101
105
|
};
|
|
102
106
|
export const createDatasourceEntry = (args, config) => {
|
|
@@ -137,7 +141,7 @@ const _updateDatasourceEntry = (args, config) => {
|
|
|
137
141
|
console.log("Full update error: ");
|
|
138
142
|
console.log(err);
|
|
139
143
|
}
|
|
140
|
-
Logger.error(`Unable to update datasource entry in ${currentDatasource.datasource.name} datasource
|
|
144
|
+
Logger.error(`Unable to update datasource entry '${finalDatasource_entry.name}' in ${currentDatasource.datasource.name} datasource. Value: '${finalDatasource_entry.value}'. ${formatDatasourceApiError(err)}`);
|
|
141
145
|
});
|
|
142
146
|
};
|
|
143
147
|
export const updateDatasourceEntry = (args, config) => {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Logger from "../../utils/logger.js";
|
|
2
2
|
import { getAllItemsWithPagination } from "../utils/request.js";
|
|
3
3
|
import { createDatasourceEntries, getDatasourceEntries, } from "./datasource-entries.js";
|
|
4
|
+
import { formatDatasourceApiError } from "./error-formatting.js";
|
|
4
5
|
// GET
|
|
5
6
|
export const getAllDatasources = (config) => {
|
|
6
7
|
const { sbApi, spaceId } = config;
|
|
@@ -75,7 +76,7 @@ export const createDatasource = (args, config) => {
|
|
|
75
76
|
datasource_entries: datasource.datasource_entries,
|
|
76
77
|
};
|
|
77
78
|
})
|
|
78
|
-
.catch((err) => Logger.error(err));
|
|
79
|
+
.catch((err) => Logger.error(`Unable to create datasource '${datasource.name}' with slug '${datasource.slug}'. ${formatDatasourceApiError(err)}`));
|
|
79
80
|
};
|
|
80
81
|
export const updateDatasource = (args, config) => {
|
|
81
82
|
const { datasource, datasourceToBeUpdated } = args;
|
|
@@ -107,7 +108,7 @@ export const updateDatasource = (args, config) => {
|
|
|
107
108
|
datasource_entries: datasource.datasource_entries,
|
|
108
109
|
};
|
|
109
110
|
})
|
|
110
|
-
.catch((err) => Logger.error(err));
|
|
111
|
+
.catch((err) => Logger.error(`Unable to update datasource '${datasource.name}' with id '${datasourceToBeUpdated.id}'. ${formatDatasourceApiError(err)}`));
|
|
111
112
|
};
|
|
112
113
|
// File-based sync wrapper lives in `datasources.sync.ts` to keep this module CJS-safe.
|
|
113
114
|
export const syncDatasourcesData = async ({ datasources, dryRun }, config) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const formatDatasourceApiError: (err: any) => string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const formatDatasourceApiError = (err) => {
|
|
2
|
+
const details = [];
|
|
3
|
+
const status = err?.response?.status;
|
|
4
|
+
const statusText = err?.response?.statusText;
|
|
5
|
+
const responseData = err?.response?.data;
|
|
6
|
+
if (status || statusText) {
|
|
7
|
+
details.push(`status: ${[status, statusText].filter(Boolean).join(" ")}`);
|
|
8
|
+
}
|
|
9
|
+
if (responseData?.message) {
|
|
10
|
+
details.push(`message: ${responseData.message}`);
|
|
11
|
+
}
|
|
12
|
+
if (responseData?.error) {
|
|
13
|
+
details.push(`error: ${responseData.error}`);
|
|
14
|
+
}
|
|
15
|
+
if (responseData?.errors) {
|
|
16
|
+
details.push(`errors: ${typeof responseData.errors === "string"
|
|
17
|
+
? responseData.errors
|
|
18
|
+
: JSON.stringify(responseData.errors)}`);
|
|
19
|
+
}
|
|
20
|
+
if (!details.length && err?.message) {
|
|
21
|
+
details.push(`message: ${err.message}`);
|
|
22
|
+
}
|
|
23
|
+
return details.length ? details.join("; ") : String(err);
|
|
24
|
+
};
|
|
@@ -7,7 +7,9 @@ exports.updateDatasourceEntry = exports.createDatasourceEntry = exports.createDa
|
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const logger_js_1 = __importDefault(require("../../utils/logger.js"));
|
|
9
9
|
const object_utils_js_1 = require("../../utils/object-utils.js");
|
|
10
|
+
const request_js_1 = require("../utils/request.js");
|
|
10
11
|
const datasources_js_1 = require("./datasources.js");
|
|
12
|
+
const error_formatting_js_1 = require("./error-formatting.js");
|
|
11
13
|
const _decorateWithDimensions = async (args, config) => {
|
|
12
14
|
const { currentDatasource, dimensionsData, _callback } = args;
|
|
13
15
|
const { spaceId, sbApi } = config;
|
|
@@ -41,17 +43,19 @@ const getDatasourceEntries = async (args, config) => {
|
|
|
41
43
|
logger_js_1.default.log(`Trying to get '${datasourceName}' datasource entries.`);
|
|
42
44
|
const data = await (0, datasources_js_1.getDatasource)({ datasourceName }, config); // TODO: maybe this step is not needed, i think we can retrieve entries directly using slug (but using delivery api, not management)
|
|
43
45
|
if (data) {
|
|
44
|
-
|
|
45
|
-
.get(`spaces/${spaceId}/datasource_entries/`, {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
})
|
|
53
|
-
|
|
46
|
+
const datasourceEntries = await (0, request_js_1.getAllItemsWithPagination)({
|
|
47
|
+
apiFn: ({ per_page, page }) => sbApi.get(`spaces/${spaceId}/datasource_entries/`, {
|
|
48
|
+
datasource_id: data[0].id,
|
|
49
|
+
per_page,
|
|
50
|
+
page,
|
|
51
|
+
}),
|
|
52
|
+
params: {},
|
|
53
|
+
itemsKey: "datasource_entries",
|
|
54
|
+
});
|
|
55
|
+
logger_js_1.default.success(`Datasource Entries for '${datasourceName}' datasource successfully retrieved.`);
|
|
56
|
+
return { datasource_entries: datasourceEntries };
|
|
54
57
|
}
|
|
58
|
+
return { datasource_entries: [] };
|
|
55
59
|
};
|
|
56
60
|
exports.getDatasourceEntries = getDatasourceEntries;
|
|
57
61
|
const createDatasourceEntries = (args, config) => {
|
|
@@ -104,7 +108,7 @@ const _createDatasourceEntry = (args, config) => {
|
|
|
104
108
|
console.log("Full Create error: ");
|
|
105
109
|
console.log(err);
|
|
106
110
|
}
|
|
107
|
-
logger_js_1.default.error(`Unable to create datasource entry in ${currentDatasource.datasource.name} datasource
|
|
111
|
+
logger_js_1.default.error(`Unable to create datasource entry '${finalDatasource_entry.name}' in ${currentDatasource.datasource.name} datasource. Value: '${finalDatasource_entry.value}'. ${(0, error_formatting_js_1.formatDatasourceApiError)(err)}`);
|
|
108
112
|
});
|
|
109
113
|
};
|
|
110
114
|
const createDatasourceEntry = (args, config) => {
|
|
@@ -146,7 +150,7 @@ const _updateDatasourceEntry = (args, config) => {
|
|
|
146
150
|
console.log("Full update error: ");
|
|
147
151
|
console.log(err);
|
|
148
152
|
}
|
|
149
|
-
logger_js_1.default.error(`Unable to update datasource entry in ${currentDatasource.datasource.name} datasource
|
|
153
|
+
logger_js_1.default.error(`Unable to update datasource entry '${finalDatasource_entry.name}' in ${currentDatasource.datasource.name} datasource. Value: '${finalDatasource_entry.value}'. ${(0, error_formatting_js_1.formatDatasourceApiError)(err)}`);
|
|
150
154
|
});
|
|
151
155
|
};
|
|
152
156
|
const updateDatasourceEntry = (args, config) => {
|
|
@@ -7,6 +7,7 @@ exports.syncDatasourcesData = exports.updateDatasource = exports.createDatasourc
|
|
|
7
7
|
const logger_js_1 = __importDefault(require("../../utils/logger.js"));
|
|
8
8
|
const request_js_1 = require("../utils/request.js");
|
|
9
9
|
const datasource_entries_js_1 = require("./datasource-entries.js");
|
|
10
|
+
const error_formatting_js_1 = require("./error-formatting.js");
|
|
10
11
|
// GET
|
|
11
12
|
const getAllDatasources = (config) => {
|
|
12
13
|
const { sbApi, spaceId } = config;
|
|
@@ -83,7 +84,7 @@ const createDatasource = (args, config) => {
|
|
|
83
84
|
datasource_entries: datasource.datasource_entries,
|
|
84
85
|
};
|
|
85
86
|
})
|
|
86
|
-
.catch((err) => logger_js_1.default.error(err));
|
|
87
|
+
.catch((err) => logger_js_1.default.error(`Unable to create datasource '${datasource.name}' with slug '${datasource.slug}'. ${(0, error_formatting_js_1.formatDatasourceApiError)(err)}`));
|
|
87
88
|
};
|
|
88
89
|
exports.createDatasource = createDatasource;
|
|
89
90
|
const updateDatasource = (args, config) => {
|
|
@@ -116,7 +117,7 @@ const updateDatasource = (args, config) => {
|
|
|
116
117
|
datasource_entries: datasource.datasource_entries,
|
|
117
118
|
};
|
|
118
119
|
})
|
|
119
|
-
.catch((err) => logger_js_1.default.error(err));
|
|
120
|
+
.catch((err) => logger_js_1.default.error(`Unable to update datasource '${datasource.name}' with id '${datasourceToBeUpdated.id}'. ${(0, error_formatting_js_1.formatDatasourceApiError)(err)}`));
|
|
120
121
|
};
|
|
121
122
|
exports.updateDatasource = updateDatasource;
|
|
122
123
|
// File-based sync wrapper lives in `datasources.sync.ts` to keep this module CJS-safe.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDatasourceApiError = void 0;
|
|
4
|
+
const formatDatasourceApiError = (err) => {
|
|
5
|
+
const details = [];
|
|
6
|
+
const status = err?.response?.status;
|
|
7
|
+
const statusText = err?.response?.statusText;
|
|
8
|
+
const responseData = err?.response?.data;
|
|
9
|
+
if (status || statusText) {
|
|
10
|
+
details.push(`status: ${[status, statusText].filter(Boolean).join(" ")}`);
|
|
11
|
+
}
|
|
12
|
+
if (responseData?.message) {
|
|
13
|
+
details.push(`message: ${responseData.message}`);
|
|
14
|
+
}
|
|
15
|
+
if (responseData?.error) {
|
|
16
|
+
details.push(`error: ${responseData.error}`);
|
|
17
|
+
}
|
|
18
|
+
if (responseData?.errors) {
|
|
19
|
+
details.push(`errors: ${typeof responseData.errors === "string"
|
|
20
|
+
? responseData.errors
|
|
21
|
+
: JSON.stringify(responseData.errors)}`);
|
|
22
|
+
}
|
|
23
|
+
if (!details.length && err?.message) {
|
|
24
|
+
details.push(`message: ${err.message}`);
|
|
25
|
+
}
|
|
26
|
+
return details.length ? details.join("; ") : String(err);
|
|
27
|
+
};
|
|
28
|
+
exports.formatDatasourceApiError = formatDatasourceApiError;
|
package/package.json
CHANGED