@datagrok-libraries/utils 4.3.11 → 4.3.12
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/package.json
CHANGED
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
"email": "aparamonov@datagrok.ai"
|
|
9
9
|
},
|
|
10
10
|
"fullName": "Utils",
|
|
11
|
-
"version": "4.3.
|
|
11
|
+
"version": "4.3.12",
|
|
12
12
|
"description": "Common utilities",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"js-base64": "^3.7.5",
|
|
15
15
|
"cash-dom": "^8.1.1",
|
|
16
|
-
"datagrok-api": "
|
|
16
|
+
"datagrok-api": "^1.21.1",
|
|
17
|
+
"dayjs": "=1.11.10",
|
|
17
18
|
"fast-sha256": "^1.3.0",
|
|
18
19
|
"rxjs": "^6.5.5",
|
|
19
20
|
"wu": "^2.1.0"
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type SerializeOptions = {
|
|
2
|
+
space?: number;
|
|
3
|
+
useJsonDF?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare function serialize(obj: any, options?: SerializeOptions): string;
|
|
2
6
|
export declare function deserialize(obj: string): any;
|
|
3
7
|
export declare function applyTransformations(obj: any): any;
|
|
4
8
|
export declare function transform(_key: string, value: any): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-serialization.d.ts","sourceRoot":"","sources":["json-serialization.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json-serialization.d.ts","sourceRoot":"","sources":["json-serialization.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,gBAAqB,UAsCjE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,OAKtC;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,OAE5C;AAGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAgBjD"}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
|
-
|
|
3
|
-
// include DataFrames. Not efficient, intended for writing tests.
|
|
2
|
+
import { fromUint8Array, toUint8Array } from 'js-base64';
|
|
4
3
|
const customTypeKey = '_DG_CUSTOM_SERIALIZED_TOKEN_';
|
|
5
|
-
export function serialize(obj,
|
|
4
|
+
export function serialize(obj, options = {}) {
|
|
6
5
|
return JSON.stringify(obj, (_key, value) => {
|
|
7
|
-
if (value instanceof DG.DataFrame) {
|
|
6
|
+
if (value instanceof DG.DataFrame && !options.useJsonDF) {
|
|
8
7
|
return {
|
|
9
8
|
[customTypeKey]: 'DataFrame',
|
|
10
|
-
value:
|
|
9
|
+
value: fromUint8Array(value.toByteArray())
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (value instanceof DG.DataFrame && options.useJsonDF) {
|
|
13
|
+
return {
|
|
14
|
+
[customTypeKey]: 'DataFrameJSON',
|
|
15
|
+
value: value.toJson()
|
|
11
16
|
};
|
|
12
17
|
}
|
|
13
18
|
if (value instanceof ArrayBuffer) {
|
|
14
19
|
return {
|
|
15
20
|
[customTypeKey]: 'ArrayBuffer',
|
|
16
|
-
value:
|
|
21
|
+
value: fromUint8Array(new Uint8Array(value))
|
|
17
22
|
};
|
|
18
23
|
}
|
|
19
24
|
if (value instanceof Map) {
|
|
@@ -29,7 +34,7 @@ export function serialize(obj, space = 2) {
|
|
|
29
34
|
};
|
|
30
35
|
}
|
|
31
36
|
return value;
|
|
32
|
-
}, space);
|
|
37
|
+
}, options.space);
|
|
33
38
|
}
|
|
34
39
|
export function deserialize(obj) {
|
|
35
40
|
return JSON.parse(obj, transform);
|
|
@@ -42,9 +47,11 @@ export function transform(_key, value) {
|
|
|
42
47
|
if (value && value[customTypeKey] && value.value) {
|
|
43
48
|
switch (value[customTypeKey]) {
|
|
44
49
|
case 'DataFrame':
|
|
45
|
-
return DG.DataFrame.fromByteArray(
|
|
50
|
+
return DG.DataFrame.fromByteArray(toUint8Array(value.value));
|
|
51
|
+
case 'DataFrameJSON':
|
|
52
|
+
return DG.DataFrame.fromJson(JSON.stringify(value.value));
|
|
46
53
|
case 'ArrayBuffer':
|
|
47
|
-
return
|
|
54
|
+
return toUint8Array(value.value).buffer;
|
|
48
55
|
case 'Map':
|
|
49
56
|
return new Map(value.value);
|
|
50
57
|
case 'Set':
|
|
@@ -53,4 +60,4 @@ export function transform(_key, value) {
|
|
|
53
60
|
}
|
|
54
61
|
return value;
|
|
55
62
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zZXJpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsianNvbi1zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFdkQsTUFBTSxhQUFhLEdBQUcsOEJBQThCLENBQUM7QUFPckQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFRLEVBQUUsVUFBNEIsRUFBRTtJQUNoRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQ25CLEdBQUcsRUFDSCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNkLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3ZELE9BQU87Z0JBQ0wsQ0FBQyxhQUFhLENBQUMsRUFBRSxXQUFXO2dCQUM1QixLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUMzQyxDQUFDO1NBQ0g7UUFDRCxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDdEQsT0FBTztnQkFDTCxDQUFDLGFBQWEsQ0FBQyxFQUFFLGVBQWU7Z0JBQ2hDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFO2FBQ3RCLENBQUM7U0FDSDtRQUNELElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRTtZQUNoQyxPQUFPO2dCQUNMLENBQUMsYUFBYSxDQUFDLEVBQUUsYUFBYTtnQkFDOUIsS0FBSyxFQUFFLGNBQWMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QyxDQUFDO1NBQ0g7UUFDRCxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7WUFDeEIsT0FBTztnQkFDTCxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUs7Z0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN6QixDQUFDO1NBQ0g7UUFDRCxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7WUFDeEIsT0FBTztnQkFDTCxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUs7Z0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN6QixDQUFDO1NBQ0g7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsRUFDRCxPQUFPLENBQUMsS0FBSyxDQUNkLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FDZixHQUFHLEVBQ0gsU0FBUyxDQUNWLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVE7SUFDM0MsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCw0Q0FBNEM7QUFDNUMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFZLEVBQUUsS0FBVTtJQUNoRCxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtRQUNoRCxRQUFRLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUM5QixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0QsS0FBSyxlQUFlO2dCQUNsQixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUQsS0FBSyxhQUFhO2dCQUNoQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzFDLEtBQUssS0FBSztnQkFDUixPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0I7S0FDRjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge2Zyb21VaW50OEFycmF5LCB0b1VpbnQ4QXJyYXl9IGZyb20gJ2pzLWJhc2U2NCc7XG5cbmNvbnN0IGN1c3RvbVR5cGVLZXkgPSAnX0RHX0NVU1RPTV9TRVJJQUxJWkVEX1RPS0VOXyc7XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZU9wdGlvbnMgPSB7XG4gIHNwYWNlPzogbnVtYmVyLFxuICB1c2VKc29uREY/OiBib29sZWFuLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZShvYmo6IGFueSwgb3B0aW9uczogU2VyaWFsaXplT3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShcbiAgICBvYmosXG4gICAgKF9rZXksIHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBERy5EYXRhRnJhbWUgJiYgIW9wdGlvbnMudXNlSnNvbkRGKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgW2N1c3RvbVR5cGVLZXldOiAnRGF0YUZyYW1lJyxcbiAgICAgICAgICB2YWx1ZTogZnJvbVVpbnQ4QXJyYXkodmFsdWUudG9CeXRlQXJyYXkoKSlcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERHLkRhdGFGcmFtZSAmJiBvcHRpb25zLnVzZUpzb25ERikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIFtjdXN0b21UeXBlS2V5XTogJ0RhdGFGcmFtZUpTT04nLFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZS50b0pzb24oKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBbY3VzdG9tVHlwZUtleV06ICdBcnJheUJ1ZmZlcicsXG4gICAgICAgICAgdmFsdWU6IGZyb21VaW50OEFycmF5KG5ldyBVaW50OEFycmF5KHZhbHVlKSlcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIFtjdXN0b21UeXBlS2V5XTogJ01hcCcsXG4gICAgICAgICAgdmFsdWU6IEFycmF5LmZyb20odmFsdWUpXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBbY3VzdG9tVHlwZUtleV06ICdTZXQnLFxuICAgICAgICAgIHZhbHVlOiBBcnJheS5mcm9tKHZhbHVlKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sXG4gICAgb3B0aW9ucy5zcGFjZVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemUob2JqOiBzdHJpbmcpIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UoXG4gICAgb2JqLFxuICAgIHRyYW5zZm9ybVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlUcmFuc2Zvcm1hdGlvbnMob2JqOiBhbnkpIHtcbiAgcmV0dXJuIGRlc2VyaWFsaXplKEpTT04uc3RyaW5naWZ5KG9iaikpO1xufVxuXG4vLyBqdXN0IGFwcGx5IGRhdGEgdHJhbnNmb3JtYXRpb25zIGlmIG5lZWRlZFxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybShfa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgaWYgKHZhbHVlICYmIHZhbHVlW2N1c3RvbVR5cGVLZXldICYmIHZhbHVlLnZhbHVlKSB7XG4gICAgc3dpdGNoICh2YWx1ZVtjdXN0b21UeXBlS2V5XSkge1xuICAgIGNhc2UgJ0RhdGFGcmFtZSc6XG4gICAgICByZXR1cm4gREcuRGF0YUZyYW1lLmZyb21CeXRlQXJyYXkodG9VaW50OEFycmF5KHZhbHVlLnZhbHVlKSk7XG4gICAgY2FzZSAnRGF0YUZyYW1lSlNPTic6XG4gICAgICByZXR1cm4gREcuRGF0YUZyYW1lLmZyb21Kc29uKEpTT04uc3RyaW5naWZ5KHZhbHVlLnZhbHVlKSk7XG4gICAgY2FzZSAnQXJyYXlCdWZmZXInOlxuICAgICAgcmV0dXJuIHRvVWludDhBcnJheSh2YWx1ZS52YWx1ZSkuYnVmZmVyO1xuICAgIGNhc2UgJ01hcCc6XG4gICAgICByZXR1cm4gbmV3IE1hcCh2YWx1ZS52YWx1ZSk7XG4gICAgY2FzZSAnU2V0JzpcbiAgICAgIHJldHVybiBuZXcgU2V0KHZhbHVlLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuIl19
|