@keyv/serialize 1.0.0 → 1.0.2
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/index.cjs +79 -0
- package/dist/index.d.cts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +53 -0
- package/package.json +26 -25
- package/dist/cjs/index.d.ts +0 -2
- package/dist/cjs/index.js +0 -60
- package/dist/cjs/index.js.map +0 -1
- package/dist/esm/index.d.ts +0 -2
- package/dist/esm/index.js +0 -55
- package/dist/esm/index.js.map +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
defaultDeserialize: () => defaultDeserialize,
|
|
24
|
+
defaultSerialize: () => defaultSerialize
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(src_exports);
|
|
27
|
+
var import_buffer = require("buffer");
|
|
28
|
+
var defaultSerialize = (data) => {
|
|
29
|
+
if (data === void 0 || data === null) {
|
|
30
|
+
return "null";
|
|
31
|
+
}
|
|
32
|
+
if (typeof data === "string") {
|
|
33
|
+
return JSON.stringify(data.startsWith(":") ? ":" + data : data);
|
|
34
|
+
}
|
|
35
|
+
if (import_buffer.Buffer.isBuffer(data)) {
|
|
36
|
+
return JSON.stringify(":base64:" + data.toString("base64"));
|
|
37
|
+
}
|
|
38
|
+
if (data?.toJSON) {
|
|
39
|
+
data = data.toJSON();
|
|
40
|
+
}
|
|
41
|
+
if (typeof data === "object") {
|
|
42
|
+
let s = "";
|
|
43
|
+
const array = Array.isArray(data);
|
|
44
|
+
s = array ? "[" : "{";
|
|
45
|
+
let first = true;
|
|
46
|
+
for (const k in data) {
|
|
47
|
+
const ignore = typeof data[k] === "function" || !array && data[k] === void 0;
|
|
48
|
+
if (!data.hasOwnProperty(k) || ignore) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!first) {
|
|
52
|
+
s += ",";
|
|
53
|
+
}
|
|
54
|
+
first = false;
|
|
55
|
+
if (array) {
|
|
56
|
+
s += defaultSerialize(data[k]);
|
|
57
|
+
} else if (data[k] !== void 0) {
|
|
58
|
+
s += defaultSerialize(k) + ":" + defaultSerialize(data[k]);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
s += array ? "]" : "}";
|
|
62
|
+
return s;
|
|
63
|
+
}
|
|
64
|
+
return JSON.stringify(data);
|
|
65
|
+
};
|
|
66
|
+
var defaultDeserialize = (data) => JSON.parse(data, (_, value) => {
|
|
67
|
+
if (typeof value === "string") {
|
|
68
|
+
if (value.startsWith(":base64:")) {
|
|
69
|
+
return import_buffer.Buffer.from(value.slice(8), "base64");
|
|
70
|
+
}
|
|
71
|
+
return value.startsWith(":") ? value.slice(1) : value;
|
|
72
|
+
}
|
|
73
|
+
return value;
|
|
74
|
+
});
|
|
75
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
76
|
+
0 && (module.exports = {
|
|
77
|
+
defaultDeserialize,
|
|
78
|
+
defaultSerialize
|
|
79
|
+
});
|
package/dist/index.d.cts
ADDED
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// src/index.ts
|
|
2
|
+
import { Buffer } from "buffer";
|
|
3
|
+
var defaultSerialize = (data) => {
|
|
4
|
+
if (data === void 0 || data === null) {
|
|
5
|
+
return "null";
|
|
6
|
+
}
|
|
7
|
+
if (typeof data === "string") {
|
|
8
|
+
return JSON.stringify(data.startsWith(":") ? ":" + data : data);
|
|
9
|
+
}
|
|
10
|
+
if (Buffer.isBuffer(data)) {
|
|
11
|
+
return JSON.stringify(":base64:" + data.toString("base64"));
|
|
12
|
+
}
|
|
13
|
+
if (data?.toJSON) {
|
|
14
|
+
data = data.toJSON();
|
|
15
|
+
}
|
|
16
|
+
if (typeof data === "object") {
|
|
17
|
+
let s = "";
|
|
18
|
+
const array = Array.isArray(data);
|
|
19
|
+
s = array ? "[" : "{";
|
|
20
|
+
let first = true;
|
|
21
|
+
for (const k in data) {
|
|
22
|
+
const ignore = typeof data[k] === "function" || !array && data[k] === void 0;
|
|
23
|
+
if (!data.hasOwnProperty(k) || ignore) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (!first) {
|
|
27
|
+
s += ",";
|
|
28
|
+
}
|
|
29
|
+
first = false;
|
|
30
|
+
if (array) {
|
|
31
|
+
s += defaultSerialize(data[k]);
|
|
32
|
+
} else if (data[k] !== void 0) {
|
|
33
|
+
s += defaultSerialize(k) + ":" + defaultSerialize(data[k]);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
s += array ? "]" : "}";
|
|
37
|
+
return s;
|
|
38
|
+
}
|
|
39
|
+
return JSON.stringify(data);
|
|
40
|
+
};
|
|
41
|
+
var defaultDeserialize = (data) => JSON.parse(data, (_, value) => {
|
|
42
|
+
if (typeof value === "string") {
|
|
43
|
+
if (value.startsWith(":base64:")) {
|
|
44
|
+
return Buffer.from(value.slice(8), "base64");
|
|
45
|
+
}
|
|
46
|
+
return value.startsWith(":") ? value.slice(1) : value;
|
|
47
|
+
}
|
|
48
|
+
return value;
|
|
49
|
+
});
|
|
50
|
+
export {
|
|
51
|
+
defaultDeserialize,
|
|
52
|
+
defaultSerialize
|
|
53
|
+
};
|
package/package.json
CHANGED
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyv/serialize",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Serialization for
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"scripts": {
|
|
15
|
-
"build": "rm -rf dist && tsc --project tsconfig.cjs.json && tsc --project tsconfig.esm.json",
|
|
16
|
-
"prepare": "yarn build",
|
|
17
|
-
"test": "xo --fix && vitest run --coverage",
|
|
18
|
-
"test:ci": "xo && vitest --run --sequence.setupFiles=list",
|
|
19
|
-
"clean": "rm -rf node_modules && rm -rf ./coverage"
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "Serialization for Keyv",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"require": "./dist/index.cjs",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
20
14
|
},
|
|
21
15
|
"xo": {
|
|
22
16
|
"rules": {
|
|
17
|
+
"import/no-named-as-default": "off",
|
|
23
18
|
"unicorn/prefer-module": "off",
|
|
24
19
|
"unicorn/prefer-event-target": "off",
|
|
25
20
|
"unicorn/no-array-reduce": "off",
|
|
@@ -35,7 +30,6 @@
|
|
|
35
30
|
"import/no-extraneous-dependencies": "off",
|
|
36
31
|
"@typescript-eslint/no-unsafe-call": "off",
|
|
37
32
|
"@typescript-eslint/no-unsafe-assignment": "off"
|
|
38
|
-
|
|
39
33
|
}
|
|
40
34
|
},
|
|
41
35
|
"repository": {
|
|
@@ -59,12 +53,13 @@
|
|
|
59
53
|
"buffer": "^6.0.3"
|
|
60
54
|
},
|
|
61
55
|
"devDependencies": {
|
|
62
|
-
"
|
|
63
|
-
"keyv": "^5.0.0",
|
|
56
|
+
"rimraf": "^6.0.1",
|
|
64
57
|
"ts-node": "^10.9.2",
|
|
65
|
-
"tsd": "^0.31.
|
|
66
|
-
"typescript": "^5.
|
|
67
|
-
"xo": "^0.
|
|
58
|
+
"tsd": "^0.31.2",
|
|
59
|
+
"typescript": "^5.7.2",
|
|
60
|
+
"xo": "^0.60.0",
|
|
61
|
+
"@keyv/test-suite": "^2.0.3",
|
|
62
|
+
"keyv": "^5.2.2"
|
|
68
63
|
},
|
|
69
64
|
"tsd": {
|
|
70
65
|
"directory": "test"
|
|
@@ -72,5 +67,11 @@
|
|
|
72
67
|
"files": [
|
|
73
68
|
"dist",
|
|
74
69
|
"LICENSE"
|
|
75
|
-
]
|
|
76
|
-
|
|
70
|
+
],
|
|
71
|
+
"scripts": {
|
|
72
|
+
"build": "rimraf ./dist && tsup src/index.ts --format cjs,esm --dts --clean",
|
|
73
|
+
"test": "xo --fix && vitest run --coverage",
|
|
74
|
+
"test:ci": "xo && vitest --run --sequence.setupFiles=list",
|
|
75
|
+
"clean": "rimraf ./node_modules ./coverage ./dist"
|
|
76
|
+
}
|
|
77
|
+
}
|
package/dist/cjs/index.d.ts
DELETED
package/dist/cjs/index.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultDeserialize = exports.defaultSerialize = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
// Improved version of the deprecated `json-buffer` (https://github.com/dominictarr/json-buffer) package.
|
|
6
|
-
// These default functionalities can be improved separately from the dependant packages.
|
|
7
|
-
const defaultSerialize = (data) => {
|
|
8
|
-
if (data === undefined || data === null) {
|
|
9
|
-
return 'null';
|
|
10
|
-
}
|
|
11
|
-
if (typeof data === 'string') {
|
|
12
|
-
return JSON.stringify(data.startsWith(':') ? ':' + data : data);
|
|
13
|
-
}
|
|
14
|
-
if (buffer_1.Buffer.isBuffer(data)) {
|
|
15
|
-
return JSON.stringify(':base64:' + data.toString('base64'));
|
|
16
|
-
}
|
|
17
|
-
if (data?.toJSON) {
|
|
18
|
-
data = data.toJSON();
|
|
19
|
-
}
|
|
20
|
-
if (typeof data === 'object') {
|
|
21
|
-
let s = '';
|
|
22
|
-
const array = Array.isArray(data);
|
|
23
|
-
s = array ? '[' : '{';
|
|
24
|
-
let first = true;
|
|
25
|
-
// eslint-disable-next-line guard-for-in
|
|
26
|
-
for (const k in data) {
|
|
27
|
-
const ignore = typeof data[k] === 'function' || (!array && data[k] === undefined);
|
|
28
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
29
|
-
if (!data.hasOwnProperty(k) || ignore) {
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
if (!first) {
|
|
33
|
-
s += ',';
|
|
34
|
-
}
|
|
35
|
-
first = false;
|
|
36
|
-
if (array) {
|
|
37
|
-
s += (0, exports.defaultSerialize)(data[k]);
|
|
38
|
-
}
|
|
39
|
-
else if (data[k] !== undefined) {
|
|
40
|
-
s += (0, exports.defaultSerialize)(k) + ':' + (0, exports.defaultSerialize)(data[k]);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
s += array ? ']' : '}';
|
|
44
|
-
return s;
|
|
45
|
-
}
|
|
46
|
-
return JSON.stringify(data);
|
|
47
|
-
};
|
|
48
|
-
exports.defaultSerialize = defaultSerialize;
|
|
49
|
-
const defaultDeserialize = (data) => JSON.parse(data, (_, value) => {
|
|
50
|
-
if (typeof value === 'string') {
|
|
51
|
-
if (value.startsWith(':base64:')) {
|
|
52
|
-
return buffer_1.Buffer.from(value.slice(8), 'base64');
|
|
53
|
-
}
|
|
54
|
-
return value.startsWith(':') ? value.slice(1) : value;
|
|
55
|
-
}
|
|
56
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
57
|
-
return value;
|
|
58
|
-
});
|
|
59
|
-
exports.defaultDeserialize = defaultDeserialize;
|
|
60
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
DELETED
package/dist/esm/index.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
2
|
-
// Improved version of the deprecated `json-buffer` (https://github.com/dominictarr/json-buffer) package.
|
|
3
|
-
// These default functionalities can be improved separately from the dependant packages.
|
|
4
|
-
export const defaultSerialize = (data) => {
|
|
5
|
-
if (data === undefined || data === null) {
|
|
6
|
-
return 'null';
|
|
7
|
-
}
|
|
8
|
-
if (typeof data === 'string') {
|
|
9
|
-
return JSON.stringify(data.startsWith(':') ? ':' + data : data);
|
|
10
|
-
}
|
|
11
|
-
if (Buffer.isBuffer(data)) {
|
|
12
|
-
return JSON.stringify(':base64:' + data.toString('base64'));
|
|
13
|
-
}
|
|
14
|
-
if (data?.toJSON) {
|
|
15
|
-
data = data.toJSON();
|
|
16
|
-
}
|
|
17
|
-
if (typeof data === 'object') {
|
|
18
|
-
let s = '';
|
|
19
|
-
const array = Array.isArray(data);
|
|
20
|
-
s = array ? '[' : '{';
|
|
21
|
-
let first = true;
|
|
22
|
-
// eslint-disable-next-line guard-for-in
|
|
23
|
-
for (const k in data) {
|
|
24
|
-
const ignore = typeof data[k] === 'function' || (!array && data[k] === undefined);
|
|
25
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
26
|
-
if (!data.hasOwnProperty(k) || ignore) {
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
if (!first) {
|
|
30
|
-
s += ',';
|
|
31
|
-
}
|
|
32
|
-
first = false;
|
|
33
|
-
if (array) {
|
|
34
|
-
s += defaultSerialize(data[k]);
|
|
35
|
-
}
|
|
36
|
-
else if (data[k] !== undefined) {
|
|
37
|
-
s += defaultSerialize(k) + ':' + defaultSerialize(data[k]);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
s += array ? ']' : '}';
|
|
41
|
-
return s;
|
|
42
|
-
}
|
|
43
|
-
return JSON.stringify(data);
|
|
44
|
-
};
|
|
45
|
-
export const defaultDeserialize = (data) => JSON.parse(data, (_, value) => {
|
|
46
|
-
if (typeof value === 'string') {
|
|
47
|
-
if (value.startsWith(':base64:')) {
|
|
48
|
-
return Buffer.from(value.slice(8), 'base64');
|
|
49
|
-
}
|
|
50
|
-
return value.startsWith(':') ? value.slice(1) : value;
|
|
51
|
-
}
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
53
|
-
return value;
|
|
54
|
-
});
|
|
55
|
-
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|