@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 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
+ });
@@ -0,0 +1,4 @@
1
+ declare const defaultSerialize: (data: any) => string;
2
+ declare const defaultDeserialize: <Value>(data: any) => Value;
3
+
4
+ export { defaultDeserialize, defaultSerialize };
@@ -0,0 +1,4 @@
1
+ declare const defaultSerialize: (data: any) => string;
2
+ declare const defaultDeserialize: <Value>(data: any) => Value;
3
+
4
+ export { defaultDeserialize, defaultSerialize };
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.0",
4
- "description": "Serialization for keyv",
5
- "main": "dist/cjs/index.js",
6
- "module": "dist/esm/index.js",
7
- "types": "dist/esm/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "require": "./dist/cjs/index.js",
11
- "import": "./dist/esm/index.js"
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
- "@keyv/test-suite": "*",
63
- "keyv": "^5.0.0",
56
+ "rimraf": "^6.0.1",
64
57
  "ts-node": "^10.9.2",
65
- "tsd": "^0.31.1",
66
- "typescript": "^5.5.4",
67
- "xo": "^0.59.3"
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
+ }
@@ -1,2 +0,0 @@
1
- export declare const defaultSerialize: (data: any) => string;
2
- export declare const defaultDeserialize: <Value>(data: any) => Value;
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const defaultSerialize: (data: any) => string;
2
- export declare const defaultDeserialize: <Value>(data: any) => Value;
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}