@nemigo/helpers 0.0.1 → 0.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/package.json +1 -1
- package/.prettierignore +0 -51
- package/.turbo/turbo-build.log +0 -5
- package/dist/msgpack.test.d.ts +0 -1
- package/dist/msgpack.test.js +0 -136
- package/eslint.config.js +0 -4
- package/prettier.config.js +0 -3
- package/src/msgpack.test.ts +0 -153
- package/src/msgpack.ts +0 -44
- package/svelte.config.js +0 -3
- package/tsconfig.json +0 -15
- package/vitest.config.ts +0 -16
package/package.json
CHANGED
package/.prettierignore
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# OS
|
|
2
|
-
.DS_Store
|
|
3
|
-
Thumbs.db
|
|
4
|
-
.fuse_hidden*
|
|
5
|
-
.nfs*
|
|
6
|
-
|
|
7
|
-
# IDEs
|
|
8
|
-
.idea
|
|
9
|
-
.fleet
|
|
10
|
-
.vscode
|
|
11
|
-
*.code-workspace
|
|
12
|
-
*.bak
|
|
13
|
-
*.swp
|
|
14
|
-
*.swo
|
|
15
|
-
|
|
16
|
-
# DEV
|
|
17
|
-
.git
|
|
18
|
-
migrations
|
|
19
|
-
node_modules
|
|
20
|
-
trash
|
|
21
|
-
|
|
22
|
-
*-lock.*
|
|
23
|
-
*.lock
|
|
24
|
-
*.lockb
|
|
25
|
-
|
|
26
|
-
# TEMP
|
|
27
|
-
.turbo
|
|
28
|
-
.svelte-kit
|
|
29
|
-
vite.config.*.timestamp-*
|
|
30
|
-
coverage
|
|
31
|
-
test-results
|
|
32
|
-
temp-*
|
|
33
|
-
logs
|
|
34
|
-
*.log*
|
|
35
|
-
|
|
36
|
-
# BUILD
|
|
37
|
-
.deploy
|
|
38
|
-
.output
|
|
39
|
-
.vercel
|
|
40
|
-
.netlify
|
|
41
|
-
.wrangler
|
|
42
|
-
build
|
|
43
|
-
dist
|
|
44
|
-
|
|
45
|
-
# ETC
|
|
46
|
-
static
|
|
47
|
-
*.min.*
|
|
48
|
-
*.html
|
|
49
|
-
|
|
50
|
-
# CUSTOM
|
|
51
|
-
# ...
|
package/.turbo/turbo-build.log
DELETED
package/dist/msgpack.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/msgpack.test.js
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { decode, encode } from "./msgpack.js";
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
describe("msgpack helpers", () => {
|
|
4
|
-
describe("Primitive values", () => {
|
|
5
|
-
it("should encode/decode numbers", () => {
|
|
6
|
-
const original = 42;
|
|
7
|
-
const encoded = encode(original);
|
|
8
|
-
const decoded = decode(encoded);
|
|
9
|
-
expect(decoded).toBe(original);
|
|
10
|
-
});
|
|
11
|
-
it("should encode/decode strings", () => {
|
|
12
|
-
const original = "Hello, World!";
|
|
13
|
-
const encoded = encode(original);
|
|
14
|
-
const decoded = decode(encoded);
|
|
15
|
-
expect(decoded).toBe(original);
|
|
16
|
-
});
|
|
17
|
-
it("should encode/decode booleans", () => {
|
|
18
|
-
const original = true;
|
|
19
|
-
const encoded = encode(original);
|
|
20
|
-
const decoded = decode(encoded);
|
|
21
|
-
expect(decoded).toBe(original);
|
|
22
|
-
});
|
|
23
|
-
it("should encode/decode null", () => {
|
|
24
|
-
const original = null;
|
|
25
|
-
const encoded = encode(original);
|
|
26
|
-
const decoded = decode(encoded);
|
|
27
|
-
expect(decoded).toBe(original);
|
|
28
|
-
});
|
|
29
|
-
it("should handle special number values", () => {
|
|
30
|
-
const original = {
|
|
31
|
-
nan: NaN,
|
|
32
|
-
infinity: Infinity,
|
|
33
|
-
negativeInfinity: -Infinity,
|
|
34
|
-
};
|
|
35
|
-
const encoded = encode(original);
|
|
36
|
-
const decoded = decode(encoded);
|
|
37
|
-
expect(decoded.nan).toBeNaN();
|
|
38
|
-
expect(decoded.infinity).toBe(Infinity);
|
|
39
|
-
expect(decoded.negativeInfinity).toBe(-Infinity);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
describe("Arrays", () => {
|
|
43
|
-
it("should encode/decode simple arrays", () => {
|
|
44
|
-
const original = [
|
|
45
|
-
1,
|
|
46
|
-
"two",
|
|
47
|
-
true,
|
|
48
|
-
null,
|
|
49
|
-
];
|
|
50
|
-
const encoded = encode(original);
|
|
51
|
-
const decoded = decode(encoded);
|
|
52
|
-
expect(decoded).toEqual(original);
|
|
53
|
-
});
|
|
54
|
-
it("should encode/decode nested arrays", () => {
|
|
55
|
-
const original = [
|
|
56
|
-
[1, 2],
|
|
57
|
-
[3, [4, 5]],
|
|
58
|
-
];
|
|
59
|
-
const encoded = encode(original);
|
|
60
|
-
const decoded = decode(encoded);
|
|
61
|
-
expect(decoded).toEqual(original);
|
|
62
|
-
});
|
|
63
|
-
it("should encode/decode empty arrays", () => {
|
|
64
|
-
const original = [];
|
|
65
|
-
const encoded = encode(original);
|
|
66
|
-
const decoded = decode(encoded);
|
|
67
|
-
expect(decoded).toEqual(original);
|
|
68
|
-
});
|
|
69
|
-
it("should encode/decode arrays with objects", () => {
|
|
70
|
-
const original = [{ a: 1 }, { b: 2 }];
|
|
71
|
-
const encoded = encode(original);
|
|
72
|
-
const decoded = decode(encoded);
|
|
73
|
-
expect(decoded).toEqual(original);
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
describe("Objects", () => {
|
|
77
|
-
it("should encode/decode simple objects", () => {
|
|
78
|
-
const original = { name: "John", age: 30, isActive: true };
|
|
79
|
-
const encoded = encode(original);
|
|
80
|
-
const decoded = decode(encoded);
|
|
81
|
-
expect(decoded).toEqual(original);
|
|
82
|
-
});
|
|
83
|
-
it("should encode/decode nested objects", () => {
|
|
84
|
-
const original = {
|
|
85
|
-
user: {
|
|
86
|
-
name: "Alice",
|
|
87
|
-
address: {
|
|
88
|
-
city: "Moscow",
|
|
89
|
-
zip: 123456,
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
const encoded = encode(original);
|
|
94
|
-
const decoded = decode(encoded);
|
|
95
|
-
expect(decoded).toEqual(original);
|
|
96
|
-
});
|
|
97
|
-
it("should encode/decode empty objects", () => {
|
|
98
|
-
const original = {};
|
|
99
|
-
const encoded = encode(original);
|
|
100
|
-
const decoded = decode(encoded);
|
|
101
|
-
expect(decoded).toEqual(original);
|
|
102
|
-
});
|
|
103
|
-
it("should encode/decode objects with arrays", () => {
|
|
104
|
-
const original = {
|
|
105
|
-
numbers: [1, 2, 3],
|
|
106
|
-
users: [{ name: "Bob" }, { name: "Alice" }],
|
|
107
|
-
};
|
|
108
|
-
const encoded = encode(original);
|
|
109
|
-
const decoded = decode(encoded);
|
|
110
|
-
expect(decoded).toEqual(original);
|
|
111
|
-
});
|
|
112
|
-
it("should encode/decode complex nested structures", () => {
|
|
113
|
-
const original = {
|
|
114
|
-
users: [
|
|
115
|
-
{
|
|
116
|
-
id: 1,
|
|
117
|
-
name: "John",
|
|
118
|
-
roles: ["admin", "user"],
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
id: 2,
|
|
122
|
-
name: "Jane",
|
|
123
|
-
roles: ["user"],
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
settings: {
|
|
127
|
-
theme: "dark",
|
|
128
|
-
notifications: true,
|
|
129
|
-
},
|
|
130
|
-
};
|
|
131
|
-
const encoded = encode(original);
|
|
132
|
-
const decoded = decode(encoded);
|
|
133
|
-
expect(decoded).toEqual(original);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
});
|
package/eslint.config.js
DELETED
package/prettier.config.js
DELETED
package/src/msgpack.test.ts
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { decode, encode } from "#/msgpack.js";
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
|
|
4
|
-
describe("msgpack helpers", () => {
|
|
5
|
-
describe("Primitive values", () => {
|
|
6
|
-
it("should encode/decode numbers", () => {
|
|
7
|
-
const original = 42;
|
|
8
|
-
const encoded = encode(original);
|
|
9
|
-
const decoded = decode(encoded);
|
|
10
|
-
expect(decoded).toBe(original);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
it("should encode/decode strings", () => {
|
|
14
|
-
const original = "Hello, World!";
|
|
15
|
-
const encoded = encode(original);
|
|
16
|
-
const decoded = decode(encoded);
|
|
17
|
-
expect(decoded).toBe(original);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it("should encode/decode booleans", () => {
|
|
21
|
-
const original = true;
|
|
22
|
-
const encoded = encode(original);
|
|
23
|
-
const decoded = decode(encoded);
|
|
24
|
-
expect(decoded).toBe(original);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it("should encode/decode null", () => {
|
|
28
|
-
const original = null;
|
|
29
|
-
const encoded = encode(original);
|
|
30
|
-
const decoded = decode(encoded);
|
|
31
|
-
expect(decoded).toBe(original);
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it("should handle special number values", () => {
|
|
35
|
-
const original = {
|
|
36
|
-
nan: NaN,
|
|
37
|
-
infinity: Infinity,
|
|
38
|
-
negativeInfinity: -Infinity,
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const encoded = encode(original);
|
|
42
|
-
const decoded = decode(encoded);
|
|
43
|
-
|
|
44
|
-
expect(decoded.nan).toBeNaN();
|
|
45
|
-
expect(decoded.infinity).toBe(Infinity);
|
|
46
|
-
expect(decoded.negativeInfinity).toBe(-Infinity);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
describe("Arrays", () => {
|
|
51
|
-
it("should encode/decode simple arrays", () => {
|
|
52
|
-
const original = [
|
|
53
|
-
1,
|
|
54
|
-
"two",
|
|
55
|
-
true,
|
|
56
|
-
null,
|
|
57
|
-
];
|
|
58
|
-
const encoded = encode(original);
|
|
59
|
-
const decoded = decode(encoded);
|
|
60
|
-
expect(decoded).toEqual(original);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
it("should encode/decode nested arrays", () => {
|
|
64
|
-
const original = [
|
|
65
|
-
[1, 2],
|
|
66
|
-
[3, [4, 5]],
|
|
67
|
-
];
|
|
68
|
-
const encoded = encode(original);
|
|
69
|
-
const decoded = decode(encoded);
|
|
70
|
-
expect(decoded).toEqual(original);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
it("should encode/decode empty arrays", () => {
|
|
74
|
-
const original = [];
|
|
75
|
-
const encoded = encode(original);
|
|
76
|
-
const decoded = decode(encoded);
|
|
77
|
-
expect(decoded).toEqual(original);
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
it("should encode/decode arrays with objects", () => {
|
|
81
|
-
const original = [{ a: 1 }, { b: 2 }];
|
|
82
|
-
const encoded = encode(original);
|
|
83
|
-
const decoded = decode(encoded);
|
|
84
|
-
expect(decoded).toEqual(original);
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
describe("Objects", () => {
|
|
89
|
-
it("should encode/decode simple objects", () => {
|
|
90
|
-
const original = { name: "John", age: 30, isActive: true };
|
|
91
|
-
const encoded = encode(original);
|
|
92
|
-
const decoded = decode(encoded);
|
|
93
|
-
expect(decoded).toEqual(original);
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it("should encode/decode nested objects", () => {
|
|
97
|
-
const original = {
|
|
98
|
-
user: {
|
|
99
|
-
name: "Alice",
|
|
100
|
-
address: {
|
|
101
|
-
city: "Moscow",
|
|
102
|
-
zip: 123456,
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
const encoded = encode(original);
|
|
107
|
-
const decoded = decode(encoded);
|
|
108
|
-
expect(decoded).toEqual(original);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
it("should encode/decode empty objects", () => {
|
|
112
|
-
const original = {};
|
|
113
|
-
const encoded = encode(original);
|
|
114
|
-
const decoded = decode(encoded);
|
|
115
|
-
expect(decoded).toEqual(original);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
it("should encode/decode objects with arrays", () => {
|
|
119
|
-
const original = {
|
|
120
|
-
numbers: [1, 2, 3],
|
|
121
|
-
users: [{ name: "Bob" }, { name: "Alice" }],
|
|
122
|
-
};
|
|
123
|
-
const encoded = encode(original);
|
|
124
|
-
const decoded = decode(encoded);
|
|
125
|
-
expect(decoded).toEqual(original);
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
it("should encode/decode complex nested structures", () => {
|
|
129
|
-
const original = {
|
|
130
|
-
users: [
|
|
131
|
-
{
|
|
132
|
-
id: 1,
|
|
133
|
-
name: "John",
|
|
134
|
-
roles: ["admin", "user"],
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
id: 2,
|
|
138
|
-
name: "Jane",
|
|
139
|
-
roles: ["user"],
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
settings: {
|
|
143
|
-
theme: "dark",
|
|
144
|
-
notifications: true,
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
const encoded = encode(original);
|
|
149
|
-
const decoded = decode(encoded);
|
|
150
|
-
expect(decoded).toEqual(original);
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
});
|
package/src/msgpack.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { decode as _decode, encode as _encode } from "@std/msgpack";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Данные в формате MSGPACK
|
|
5
|
-
*
|
|
6
|
-
* @template Data - Исходный объект данных
|
|
7
|
-
* @template Pack - Флаг, определяющий, упакованы данные или нет
|
|
8
|
-
*
|
|
9
|
-
* @remarks Поля __meta с исходными данными **НЕ** существует. Только для типизации
|
|
10
|
-
*
|
|
11
|
-
* @see https://jsr.io/@std/msgpack Документация используемого пакета
|
|
12
|
-
* @see https://msgpack.org/ Документация стандарта MSGPACK
|
|
13
|
-
*/
|
|
14
|
-
export type MSGPACK<Data, Pack extends boolean = true> = (Pack extends true ? number[] : Data) & { __meta: Data };
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Декодирует данные из формата MSGPACK в исходный объект
|
|
18
|
-
*
|
|
19
|
-
* Использует функцию {@link _decode} из пакета `@std/msgpack` для декодирования
|
|
20
|
-
*
|
|
21
|
-
* @template Data - Тип исходного объекта
|
|
22
|
-
* @param {MSGPACK<Data>} data - Данные в формате MSGPACK для декодирования
|
|
23
|
-
* @returns {Data} Декодированный объект
|
|
24
|
-
*
|
|
25
|
-
* @see https://jsr.io/@std/msgpack Документация используемого пакета
|
|
26
|
-
* @see https://msgpack.org/ Документация стандарта MSGPACK
|
|
27
|
-
*/
|
|
28
|
-
export const decode = <Data>(data: MSGPACK<Data>): Data => _decode(new Uint8Array(data)) as Data;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Кодирует исходный объект в формат MSGPACK.
|
|
32
|
-
* Объект **НЕ** должен содержать методы, `null` и `undefined`
|
|
33
|
-
*
|
|
34
|
-
* Использует функцию {@link _encode} из пакета `@std/msgpack` для кодирования
|
|
35
|
-
*
|
|
36
|
-
* @template Data - Тип исходного объекта
|
|
37
|
-
* @param {Data} data - Объект для кодирования
|
|
38
|
-
* @returns {MSGPACK<Data>} Объект, закодированный в формат MSGPACK
|
|
39
|
-
* @throws {Error} Выбрасывает ошибку, если есть не поддерживаемые типы данных
|
|
40
|
-
*
|
|
41
|
-
* @see https://jsr.io/@std/msgpack Документация используемого пакета
|
|
42
|
-
* @see https://msgpack.org/ Документация стандарта MSGPACK
|
|
43
|
-
*/
|
|
44
|
-
export const encode = <Data>(data: Data): MSGPACK<Data> => Array.from(_encode(data as unknown as string)) as MSGPACK<Data>;
|
package/svelte.config.js
DELETED
package/tsconfig.json
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
-
"extends": "@nemigo/configs/typescript.json",
|
|
4
|
-
"compilerOptions": {
|
|
5
|
-
"paths": { "#/*": ["./src/*"] }
|
|
6
|
-
},
|
|
7
|
-
"include": [
|
|
8
|
-
"./src/**/*.svelte",
|
|
9
|
-
"./src/**/*.ts",
|
|
10
|
-
"./src/**/*.js",
|
|
11
|
-
"./*.svelte",
|
|
12
|
-
"./*.ts",
|
|
13
|
-
"./*.js"
|
|
14
|
-
]
|
|
15
|
-
}
|
package/vitest.config.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "vitest/config";
|
|
2
|
-
import { dirname, join } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
|
|
5
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
-
|
|
7
|
-
export default defineConfig({
|
|
8
|
-
test: {
|
|
9
|
-
include: ["./src/**/*.{test,spec}.{ts,js}"],
|
|
10
|
-
},
|
|
11
|
-
resolve: {
|
|
12
|
-
alias: {
|
|
13
|
-
"#": join(__dirname, "./src"),
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
});
|