@hestia-earth/schema-convert 7.6.1 → 7.6.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/json.js +43 -11
- package/package.json +1 -1
- package/utils.d.ts +1 -1
- package/utils.js +6 -5
package/json.js
CHANGED
|
@@ -57,6 +57,26 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
57
57
|
}
|
|
58
58
|
return t;
|
|
59
59
|
};
|
|
60
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
61
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
62
|
+
if (!m) return o;
|
|
63
|
+
var i = m.call(o), r, ar = [], e;
|
|
64
|
+
try {
|
|
65
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
66
|
+
}
|
|
67
|
+
catch (error) { e = { error: error }; }
|
|
68
|
+
finally {
|
|
69
|
+
try {
|
|
70
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
71
|
+
}
|
|
72
|
+
finally { if (e) throw e.error; }
|
|
73
|
+
}
|
|
74
|
+
return ar;
|
|
75
|
+
};
|
|
76
|
+
var __spread = (this && this.__spread) || function () {
|
|
77
|
+
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
|
|
78
|
+
return ar;
|
|
79
|
+
};
|
|
60
80
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
61
81
|
exports.toJson = exports.filterEmptyNode = exports.formatNode = exports.cleanStringValue = exports.throwCSVError = void 0;
|
|
62
82
|
var csvtojson = require("csvtojson");
|
|
@@ -87,7 +107,8 @@ var internalProperties = function (_a) {
|
|
|
87
107
|
var properties = _a.properties;
|
|
88
108
|
return Object.keys(properties).filter(function (property) { return properties[property].internal; });
|
|
89
109
|
};
|
|
90
|
-
var
|
|
110
|
+
var isEmptyCell = function (value) { return value === IGNORE_FIELD_KEY || value === ''; };
|
|
111
|
+
var nonEmptyCell = function (value) { return !isEmptyCell(value); };
|
|
91
112
|
var compileFullKey = function (key1, key2) {
|
|
92
113
|
// handle arrays
|
|
93
114
|
var joinKey = (key2 || '').startsWith('[') ? '' : '.';
|
|
@@ -151,13 +172,22 @@ var handleArrayError = function (func) { return function (value, index) {
|
|
|
151
172
|
var schemaRefValue = function (value) { return typeof value === 'object' ? value : ({ name: value }); };
|
|
152
173
|
exports.cleanStringValue = function (value) { return (value.match(/^[\d]+\.[\d]+\.[\d]+$/) === null ? value.replace(/\.0$/, '') : value).trim(); };
|
|
153
174
|
var propertyTypeToValue = {
|
|
175
|
+
null: function (value) {
|
|
176
|
+
var args = [];
|
|
177
|
+
for (var _a = 1; _a < arguments.length; _a++) {
|
|
178
|
+
args[_a - 1] = arguments[_a];
|
|
179
|
+
}
|
|
180
|
+
return isEmptyCell(value) ? null : propertyTypeToValue.auto.apply(propertyTypeToValue, __spread([value], args));
|
|
181
|
+
},
|
|
154
182
|
string: function (value) { return exports.cleanStringValue(value || ''); },
|
|
155
183
|
number: function (value) {
|
|
156
|
-
return
|
|
157
|
-
|
|
158
|
-
|
|
184
|
+
return isEmptyCell(value) ?
|
|
185
|
+
undefined :
|
|
186
|
+
isNaN(+value) ? (function () {
|
|
187
|
+
throw new Error('failed to parse number');
|
|
188
|
+
})() : +value;
|
|
159
189
|
},
|
|
160
|
-
integer: function (value) { return +value; },
|
|
190
|
+
integer: function (value) { return isEmptyCell(value) ? undefined : +value; },
|
|
161
191
|
boolean: function (value) { return value.toLowerCase() === 'true'; },
|
|
162
192
|
object: function (value, schemas, _a, _i) {
|
|
163
193
|
var $ref = _a.$ref, required = _a.required;
|
|
@@ -206,7 +236,7 @@ var getValueType = function (schema, json) {
|
|
|
206
236
|
};
|
|
207
237
|
var getPropertyType = function (def, key, valueType) {
|
|
208
238
|
// default type is object (like $ref)
|
|
209
|
-
return (key === 'value' && valueType ? valueType : (Array.isArray(def.type) ? 'auto' : def.type)) || 'object';
|
|
239
|
+
return (key === 'value' && valueType ? valueType : (Array.isArray(def.type) ? (def.type.includes('null') ? 'null' : 'auto') : def.type)) || 'object';
|
|
210
240
|
};
|
|
211
241
|
var setDefaultProperty = function (prop, def, node, ignoreInternal) {
|
|
212
242
|
if (ignoreInternal === void 0) { ignoreInternal = false; }
|
|
@@ -245,14 +275,16 @@ var extendDataFromSchema = function (_a, schema, type, ignoreInternal, top) {
|
|
|
245
275
|
var property = _a.property, defaultValue = _a.defaultValue;
|
|
246
276
|
return (__assign(__assign({}, prev), (_b = {}, _b[property] = defaultValue, _b)));
|
|
247
277
|
}, {}) :
|
|
248
|
-
{})), nodeType(id, type, '@id' in data)));
|
|
278
|
+
{})), nodeType(id, type, '@id' in data)), true);
|
|
249
279
|
};
|
|
250
280
|
var isEmptyValue = function (value) {
|
|
251
|
-
return (value['@type'] || value.type) === schema_1.SchemaType.Term ?
|
|
281
|
+
return typeof value === 'object' && (value['@type'] || value.type) === schema_1.SchemaType.Term ?
|
|
282
|
+
!(value['@id'] || value.id || value.name) :
|
|
283
|
+
isEmptyCell(value);
|
|
252
284
|
};
|
|
253
285
|
var mapContent = function (schemas, schema, ignoreInternal) { return function (json) {
|
|
254
286
|
return Object.keys(json)
|
|
255
|
-
.filter(
|
|
287
|
+
.filter(nonEmptyCell)
|
|
256
288
|
.reduce(function (prev, key) {
|
|
257
289
|
var _a;
|
|
258
290
|
var value = json[key];
|
|
@@ -262,14 +294,14 @@ var mapContent = function (schemas, schema, ignoreInternal) { return function (j
|
|
|
262
294
|
var newValue = key === VALUE_TYPE_KEY ? '' : propertyInvalidFormat(schema, key, value, function () {
|
|
263
295
|
return Array.isArray(type) ? value : propertyTypeToValue[type](value, schemas, propertyDefinition, ignoreInternal);
|
|
264
296
|
});
|
|
265
|
-
return __assign(__assign(__assign({}, prev), (schema.$id ? { type: schema.title } : {})), (isEmptyValue(newValue) ? {} : (_a = {}, _a[key] = newValue, _a)));
|
|
297
|
+
return __assign(__assign(__assign({}, prev), (schema.$id ? { type: schema.title } : {})), (type !== 'null' && isEmptyValue(newValue) ? {} : (_a = {}, _a[key] = newValue, _a)));
|
|
266
298
|
}, {});
|
|
267
299
|
}; };
|
|
268
300
|
exports.formatNode = function (schemas, type, data, ignoreInternal, top) {
|
|
269
301
|
if (top === void 0) { top = false; }
|
|
270
302
|
var schema = type in schemas ? schemas[type] : schemaNotFoundError();
|
|
271
303
|
var content = mapContent(schemas, schema, ignoreInternal)(data);
|
|
272
|
-
return utils_1.reduceUndefinedValues(__assign({ id:
|
|
304
|
+
return utils_1.reduceUndefinedValues(__assign({ id: isEmptyCell(data.id) ? undefined : data.id }, extendDataFromSchema(content, schema, type, ignoreInternal, top)), true);
|
|
273
305
|
};
|
|
274
306
|
exports.filterEmptyNode = function (schemas, _a) {
|
|
275
307
|
var schemaVersion = _a.schemaVersion, node = __rest(_a, ["schemaVersion"]);
|
package/package.json
CHANGED
package/utils.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export declare const isNumber: (n: string | number) => boolean;
|
|
|
6
6
|
export declare const isEmpty: (value: any, minKeys?: number) => boolean;
|
|
7
7
|
export declare const nonEmptyValue: (value: any) => boolean;
|
|
8
8
|
export declare const nonEmptyNode: (node: any) => boolean;
|
|
9
|
-
export declare const reduceUndefinedValues: <T>(obj: T) => Partial<T>;
|
|
9
|
+
export declare const reduceUndefinedValues: <T>(obj: T, allowNull?: boolean) => Partial<T>;
|
package/utils.js
CHANGED
|
@@ -41,14 +41,15 @@ exports.nonEmptyNode = function (node) {
|
|
|
41
41
|
.length > 0 :
|
|
42
42
|
exports.nonEmptyValue(node);
|
|
43
43
|
};
|
|
44
|
-
var isUndefined = function (value) {
|
|
45
|
-
return value === null ||
|
|
46
|
-
typeof value === 'undefined' || (typeof value === 'object' && !(value instanceof Date) && !Object.keys(value).length);
|
|
44
|
+
var isUndefined = function (value, allowNull) {
|
|
45
|
+
return (value === null && !allowNull) ||
|
|
46
|
+
typeof value === 'undefined' || (typeof value === 'object' && value !== null && !(value instanceof Date) && !Object.keys(value).length);
|
|
47
47
|
};
|
|
48
|
-
exports.reduceUndefinedValues = function (obj) {
|
|
48
|
+
exports.reduceUndefinedValues = function (obj, allowNull) {
|
|
49
|
+
if (allowNull === void 0) { allowNull = false; }
|
|
49
50
|
return Object.keys(obj).reduce(function (prev, key) {
|
|
50
51
|
var _a;
|
|
51
52
|
var value = obj[key];
|
|
52
|
-
return __assign(__assign({}, prev), (isUndefined(value) ? {} : (_a = {}, _a[key] = value, _a)));
|
|
53
|
+
return __assign(__assign({}, prev), (isUndefined(value, allowNull) ? {} : (_a = {}, _a[key] = value, _a)));
|
|
53
54
|
}, {});
|
|
54
55
|
};
|