@k3000/store 0.1.2 → 0.2.1
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/generator.mjs +31 -19
- package/package.json +1 -1
- package/test/0/index.mjs +2 -6
- package/test/1/data +0 -0
- package/test/1/index +0 -0
- package/test/1/index.mjs +39 -85
- package/test/1/type.ts +0 -3
- package/test/2/data +0 -0
- package/test/2/index +0 -0
- package/test/2/index.mjs +46 -102
- package/test/2/type.ts +0 -1
- package/test/3/data +0 -0
- package/test/3/index +0 -0
- package/test/3/index.mjs +47 -105
- package/test/3/type.ts +0 -1
- package/test/4/data +0 -0
- package/test/4/index +0 -0
- package/test/4/index.mjs +47 -105
- package/test/4/type.ts +0 -1
- package/test/5/data +0 -0
- package/test/5/index +0 -0
- package/test/5/index.mjs +47 -105
- package/test/5/type.ts +0 -1
- package/test/6/data +0 -0
- package/test/6/index +0 -0
- package/test/6/index.mjs +33 -67
- package/test/6/type.ts +0 -1
- package/test/7/data +0 -0
- package/test/7/index +0 -0
- package/test/7/index.mjs +33 -67
- package/test/7/type.ts +0 -1
- package/test/index.mjs +12 -1
- package/test.mjs +7 -7
package/generator.mjs
CHANGED
@@ -416,13 +416,26 @@ export const Float = remark => new class Float extends Type {
|
|
416
416
|
|
417
417
|
}()
|
418
418
|
|
419
|
-
|
419
|
+
/**
|
420
|
+
* @param {number | string} size
|
421
|
+
* @constructor
|
422
|
+
*/
|
423
|
+
export const String = size => new class String extends Type {
|
420
424
|
|
421
425
|
constructor() {
|
422
426
|
|
423
|
-
|
427
|
+
if (Number.isInteger(size)) {
|
428
|
+
|
429
|
+
super(typeMap.string);
|
430
|
+
|
431
|
+
super.length(SCOPE, size)
|
432
|
+
|
433
|
+
} else {
|
434
|
+
|
435
|
+
super(typeMap.string, size);
|
424
436
|
|
425
|
-
|
437
|
+
super.length(SCOPE, TypeLen.string)
|
438
|
+
}
|
426
439
|
}
|
427
440
|
|
428
441
|
index(support = true) {
|
@@ -769,6 +782,9 @@ export default storage
|
|
769
782
|
return Promise.all([import(this.prevPath + this.prevUrlParams), import(this.currPath + this.currUrlParams)])
|
770
783
|
.then(([prev, curr]) => {
|
771
784
|
|
785
|
+
const prevClose = prev.close
|
786
|
+
const currClose = curr.close
|
787
|
+
|
772
788
|
prev = prev.default
|
773
789
|
curr = curr.default
|
774
790
|
|
@@ -781,8 +797,8 @@ export default storage
|
|
781
797
|
curr[name].push(...prev[name])
|
782
798
|
}
|
783
799
|
|
784
|
-
|
785
|
-
|
800
|
+
prevClose()
|
801
|
+
currClose()
|
786
802
|
})
|
787
803
|
|
788
804
|
} else {
|
@@ -932,11 +948,11 @@ const gen = {
|
|
932
948
|
|
933
949
|
const clipStatic = (name, [key, value]) => {
|
934
950
|
|
935
|
-
if (!Reflect.has(value, 'value')) return
|
951
|
+
if (!Reflect.has(value, 'value')) return ''
|
936
952
|
|
937
953
|
let valueStr = ''
|
938
954
|
|
939
|
-
if (Reflect.has(value, 'step')) return `\t\
|
955
|
+
if (Reflect.has(value, 'step')) return `\t\t_.${key} = storage.updateValue(_.${key}, ${name}.name, $${key})`
|
940
956
|
|
941
957
|
switch (value.type) {
|
942
958
|
|
@@ -968,7 +984,7 @@ const clipStatic = (name, [key, value]) => {
|
|
968
984
|
valueStr = ' || ' + value.value
|
969
985
|
}
|
970
986
|
|
971
|
-
return `\t\
|
987
|
+
return valueStr ? `\t\t_.${key} = _.${key}${valueStr}` : ''
|
972
988
|
}
|
973
989
|
|
974
990
|
const clipIndex = (name, key, k, v) => {
|
@@ -977,15 +993,15 @@ const clipIndex = (name, key, k, v) => {
|
|
977
993
|
|
978
994
|
if (v.type === typeMap.int) {
|
979
995
|
|
980
|
-
main = `super.intToBuffer(
|
996
|
+
main = `super.intToBuffer(value, $${k})`
|
981
997
|
|
982
998
|
} else if (v.type === typeMap.uint) {
|
983
999
|
|
984
|
-
main = `super.uintToBuffer(
|
1000
|
+
main = `super.uintToBuffer(value, $${k})`
|
985
1001
|
|
986
1002
|
} else {
|
987
1003
|
|
988
|
-
main = `${gen.set[v.type]}(${
|
1004
|
+
main = `${gen.set[v.type]}(value${v.type === typeMap.buffer
|
989
1005
|
|| v.type === typeMap.text ? `, $${k}` : v.type === typeMap.string
|
990
1006
|
? `, $${k}` : ''})`
|
991
1007
|
}
|
@@ -1011,7 +1027,7 @@ const clipProperties = (name, key, update, [k, v]) => `
|
|
1011
1027
|
configurable: false,
|
1012
1028
|
get: () => ${gen.get[v.type](`super.get($${k})`, v.type === typeMap.buffer
|
1013
1029
|
|| v.type === typeMap.text ? `$${k}` : v.length)},
|
1014
|
-
set:
|
1030
|
+
set: value => ${update && k !== update[0] ? `{
|
1015
1031
|
${clipIndex(name, key, k, v)}
|
1016
1032
|
this.#update()
|
1017
1033
|
}` : clipIndex(name, key, k, v)},
|
@@ -1034,13 +1050,9 @@ class ${name} extends Entity {
|
|
1034
1050
|
|
1035
1051
|
static name = '${key}'
|
1036
1052
|
|
1037
|
-
static create({
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
return {
|
1042
|
-
${Object.entries(value).sort(sort3).map(clipStatic.bind(null, name)).join('\n')}
|
1043
|
-
}
|
1053
|
+
static create(_) {
|
1054
|
+
${Object.entries(value).sort(sort3).map(clipStatic.bind(null, name)).filter(str => str).join('\n')}
|
1055
|
+
return _
|
1044
1056
|
}
|
1045
1057
|
|
1046
1058
|
constructor(...arg) {
|
package/package.json
CHANGED
package/test/0/index.mjs
CHANGED
@@ -6,14 +6,10 @@ const storage = new Storage(import.meta.url)
|
|
6
6
|
|
7
7
|
export const remark = Symbol('remark')
|
8
8
|
|
9
|
-
export
|
9
|
+
export const close = () => storage.close()
|
10
10
|
|
11
|
-
|
12
|
-
}
|
11
|
+
export const getStruct = () => struct(storage, remark)
|
13
12
|
|
14
13
|
export default new class extends Store {
|
15
14
|
|
16
|
-
close() {
|
17
|
-
storage.close()
|
18
|
-
}
|
19
15
|
}
|
package/test/1/data
CHANGED
Binary file
|
package/test/1/index
CHANGED
Binary file
|
package/test/1/index.mjs
CHANGED
@@ -25,21 +25,12 @@ class Admin extends Entity {
|
|
25
25
|
|
26
26
|
static name = 'admin'
|
27
27
|
|
28
|
-
static create({
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
}) {
|
35
|
-
|
36
|
-
return {
|
37
|
-
id: storage.updateValue(id, Admin.name, $id),
|
38
|
-
pwd: pwd || '123456',
|
39
|
-
time: time || new Date(),
|
40
|
-
uid,
|
41
|
-
valid: valid || 0,
|
42
|
-
}
|
28
|
+
static create(_) {
|
29
|
+
_.id = storage.updateValue(_.id, Admin.name, $id)
|
30
|
+
_.pwd = _.pwd || '123456'
|
31
|
+
_.time = _.time || new Date()
|
32
|
+
_.valid = _.valid || 0
|
33
|
+
return _
|
43
34
|
}
|
44
35
|
|
45
36
|
constructor(...arg) {
|
@@ -56,8 +47,8 @@ class Admin extends Entity {
|
|
56
47
|
enumerable: true,
|
57
48
|
configurable: false,
|
58
49
|
get: () => super.get($id).readUInt32BE(0),
|
59
|
-
set:
|
60
|
-
super.set2($id, uInt32BEToBuffer(
|
50
|
+
set: value => {
|
51
|
+
super.set2($id, uInt32BEToBuffer(value))
|
61
52
|
this.#update()
|
62
53
|
},
|
63
54
|
},
|
@@ -65,8 +56,8 @@ class Admin extends Entity {
|
|
65
56
|
enumerable: true,
|
66
57
|
configurable: false,
|
67
58
|
get: () => b2s(super.get($pwd)),
|
68
|
-
set:
|
69
|
-
super.set($pwd, super.s2b(
|
59
|
+
set: value => {
|
60
|
+
super.set($pwd, super.s2b(value, $pwd))
|
70
61
|
this.#update()
|
71
62
|
},
|
72
63
|
},
|
@@ -74,14 +65,14 @@ class Admin extends Entity {
|
|
74
65
|
enumerable: true,
|
75
66
|
configurable: false,
|
76
67
|
get: () => b2d(super.get($time)),
|
77
|
-
set:
|
68
|
+
set: value => super.set2($time, d2b(value)),
|
78
69
|
},
|
79
70
|
uid: {
|
80
71
|
enumerable: true,
|
81
72
|
configurable: false,
|
82
73
|
get: () => b2s(super.get($uid)),
|
83
|
-
set:
|
84
|
-
super.set2($uid, super.s2b(
|
74
|
+
set: value => {
|
75
|
+
super.set2($uid, super.s2b(value, $uid))
|
85
76
|
this.#update()
|
86
77
|
},
|
87
78
|
},
|
@@ -89,8 +80,8 @@ class Admin extends Entity {
|
|
89
80
|
enumerable: true,
|
90
81
|
configurable: false,
|
91
82
|
get: () => super.get($valid).readUint8(0),
|
92
|
-
set:
|
93
|
-
super.set2($valid, super.uintToBuffer(
|
83
|
+
set: value => {
|
84
|
+
super.set2($valid, super.uintToBuffer(value, $valid))
|
94
85
|
this.#update()
|
95
86
|
},
|
96
87
|
},
|
@@ -108,21 +99,10 @@ class Log extends Entity {
|
|
108
99
|
|
109
100
|
static name = 'log'
|
110
101
|
|
111
|
-
static create({
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
type,
|
116
|
-
uid
|
117
|
-
}) {
|
118
|
-
|
119
|
-
return {
|
120
|
-
content,
|
121
|
-
id: storage.updateValue(id, Log.name, $id),
|
122
|
-
time: time || new Date(),
|
123
|
-
type,
|
124
|
-
uid,
|
125
|
-
}
|
102
|
+
static create(_) {
|
103
|
+
_.id = storage.updateValue(_.id, Log.name, $id)
|
104
|
+
_.time = _.time || new Date()
|
105
|
+
return _
|
126
106
|
}
|
127
107
|
|
128
108
|
constructor(...arg) {
|
@@ -139,31 +119,31 @@ class Log extends Entity {
|
|
139
119
|
enumerable: true,
|
140
120
|
configurable: false,
|
141
121
|
get: () => b2s(super.get($content)),
|
142
|
-
set:
|
122
|
+
set: value => super.set($content, super.s2b(value, $content)),
|
143
123
|
},
|
144
124
|
id: {
|
145
125
|
enumerable: true,
|
146
126
|
configurable: false,
|
147
127
|
get: () => super.get($id).readUInt32BE(0),
|
148
|
-
set:
|
128
|
+
set: value => super.set2($id, uInt32BEToBuffer(value)),
|
149
129
|
},
|
150
130
|
time: {
|
151
131
|
enumerable: true,
|
152
132
|
configurable: false,
|
153
133
|
get: () => b2d(super.get($time)),
|
154
|
-
set:
|
134
|
+
set: value => super.set2($time, d2b(value)),
|
155
135
|
},
|
156
136
|
type: {
|
157
137
|
enumerable: true,
|
158
138
|
configurable: false,
|
159
139
|
get: () => super.get($type).readUint16BE(0),
|
160
|
-
set:
|
140
|
+
set: value => super.set($type, super.uintToBuffer(value, $type)),
|
161
141
|
},
|
162
142
|
uid: {
|
163
143
|
enumerable: true,
|
164
144
|
configurable: false,
|
165
145
|
get: () => b2s(super.get($uid)),
|
166
|
-
set:
|
146
|
+
set: value => super.set2($uid, super.s2b(value, $uid)),
|
167
147
|
},
|
168
148
|
})
|
169
149
|
}
|
@@ -174,31 +154,9 @@ class Test extends Entity {
|
|
174
154
|
|
175
155
|
static name = 'test'
|
176
156
|
|
177
|
-
static create({
|
178
|
-
|
179
|
-
|
180
|
-
buffer,
|
181
|
-
float,
|
182
|
-
id,
|
183
|
-
int,
|
184
|
-
string,
|
185
|
-
text,
|
186
|
-
time,
|
187
|
-
uint
|
188
|
-
}) {
|
189
|
-
|
190
|
-
return {
|
191
|
-
bigUint,
|
192
|
-
bigint,
|
193
|
-
buffer,
|
194
|
-
float,
|
195
|
-
id: storage.updateValue(id, Test.name, $id),
|
196
|
-
int,
|
197
|
-
string,
|
198
|
-
text,
|
199
|
-
time,
|
200
|
-
uint,
|
201
|
-
}
|
157
|
+
static create(_) {
|
158
|
+
_.id = storage.updateValue(_.id, Test.name, $id)
|
159
|
+
return _
|
202
160
|
}
|
203
161
|
|
204
162
|
constructor(...arg) {
|
@@ -215,61 +173,61 @@ class Test extends Entity {
|
|
215
173
|
enumerable: true,
|
216
174
|
configurable: false,
|
217
175
|
get: () => super.get($bigUint).readBigUInt64BE(0),
|
218
|
-
set:
|
176
|
+
set: value => super.set($bigUint, bigUint32BEToBuffer(value)),
|
219
177
|
},
|
220
178
|
bigint: {
|
221
179
|
enumerable: true,
|
222
180
|
configurable: false,
|
223
181
|
get: () => super.get($bigint).readBigInt64BE(0),
|
224
|
-
set:
|
182
|
+
set: value => super.set($bigint, bigint32BEToBuffer(value)),
|
225
183
|
},
|
226
184
|
buffer: {
|
227
185
|
enumerable: true,
|
228
186
|
configurable: false,
|
229
187
|
get: () => super.get($buffer)[0] ? super.readFileSync($buffer) : null,
|
230
|
-
set:
|
188
|
+
set: value => super.set($buffer, super.buffer(value, $buffer)),
|
231
189
|
},
|
232
190
|
float: {
|
233
191
|
enumerable: true,
|
234
192
|
configurable: false,
|
235
193
|
get: () => super.get($float).readDoubleBE(0),
|
236
|
-
set:
|
194
|
+
set: value => super.set($float, doubleBEToBuffer(value)),
|
237
195
|
},
|
238
196
|
id: {
|
239
197
|
enumerable: true,
|
240
198
|
configurable: false,
|
241
199
|
get: () => super.get($id).readUInt32BE(0),
|
242
|
-
set:
|
200
|
+
set: value => super.set2($id, uInt32BEToBuffer(value)),
|
243
201
|
},
|
244
202
|
int: {
|
245
203
|
enumerable: true,
|
246
204
|
configurable: false,
|
247
205
|
get: () => readInt24BE(super.get($int)),
|
248
|
-
set:
|
206
|
+
set: value => super.set($int, super.intToBuffer(value, $int)),
|
249
207
|
},
|
250
208
|
string: {
|
251
209
|
enumerable: true,
|
252
210
|
configurable: false,
|
253
211
|
get: () => b2s(super.get($string)),
|
254
|
-
set:
|
212
|
+
set: value => super.set($string, super.s2b(value, $string)),
|
255
213
|
},
|
256
214
|
text: {
|
257
215
|
enumerable: true,
|
258
216
|
configurable: false,
|
259
217
|
get: () => super.get($text)[0] ? super.readFileSync($text).toString() : '',
|
260
|
-
set:
|
218
|
+
set: value => super.set($text, super.textToBuffer(value, $text)),
|
261
219
|
},
|
262
220
|
time: {
|
263
221
|
enumerable: true,
|
264
222
|
configurable: false,
|
265
223
|
get: () => b2d(super.get($time)),
|
266
|
-
set:
|
224
|
+
set: value => super.set($time, d2b(value)),
|
267
225
|
},
|
268
226
|
uint: {
|
269
227
|
enumerable: true,
|
270
228
|
configurable: false,
|
271
229
|
get: () => super.get($uint).readUInt32BE(0),
|
272
|
-
set:
|
230
|
+
set: value => super.set($uint, super.uintToBuffer(value, $uint)),
|
273
231
|
},
|
274
232
|
})
|
275
233
|
}
|
@@ -427,18 +385,14 @@ class TestSet extends Entities {
|
|
427
385
|
|
428
386
|
export const remark = Symbol('remark')
|
429
387
|
|
430
|
-
export
|
388
|
+
export const close = () => storage.close()
|
431
389
|
|
432
|
-
|
433
|
-
}
|
390
|
+
export const getStruct = () => struct(storage, remark)
|
434
391
|
|
435
392
|
/**
|
436
393
|
* @type {import('./type').Storage}
|
437
394
|
*/
|
438
395
|
const store = Object.freeze({
|
439
|
-
close() {
|
440
|
-
storage.close()
|
441
|
-
},
|
442
396
|
admin: new Proxy([], {
|
443
397
|
get: new AdminSet()
|
444
398
|
}),
|
package/test/1/type.ts
CHANGED
package/test/2/data
CHANGED
Binary file
|
package/test/2/index
CHANGED
Binary file
|