unikvs 0.0.4 → 0.0.5
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/src/_storage.d.ts +9 -9
- package/dist/src/_storage.d.ts.map +1 -1
- package/dist/src/_storage.js +13 -5
- package/dist/src/_transformer.d.ts +2 -2
- package/dist/src/_transformer.d.ts.map +1 -1
- package/dist/src/_transformer.js +10 -4
- package/dist/src/_valibot.d.ts +10 -9
- package/dist/src/_valibot.d.ts.map +1 -1
- package/dist/src/_valibot.js +13 -3
- package/dist/src/errors.d.ts +9 -2
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +25 -15
- package/dist/src/unikvs-config.d.ts +5 -5
- package/dist/src/unikvs-config.d.ts.map +1 -1
- package/dist/src/unikvs-config.js +1 -1
- package/dist/src/unikvs.d.ts +6 -6
- package/dist/src/unikvs.d.ts.map +1 -1
- package/dist/src/unikvs.js +28 -29
- package/package.json +19 -18
- package/src/_storage.ts +30 -13
- package/src/_transformer.ts +16 -6
- package/src/_valibot.ts +50 -10
- package/src/errors.ts +31 -3
- package/src/unikvs-config.ts +5 -8
- package/src/unikvs.ts +35 -36
package/src/unikvs.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import type { Context, IReadableStream,
|
|
1
|
+
import type { Context, IReadableStream, IStorage } from "@unikvs/core";
|
|
2
2
|
import { asyncmux, Asyncmux, type AsyncmuxLock } from "asyncmux";
|
|
3
|
-
import * as v from "valibot";
|
|
4
3
|
|
|
5
4
|
import combineSignals from "./_combine-signals.js";
|
|
6
5
|
import logger from "./_logger.js";
|
|
7
6
|
import mergeContext from "./_merge-context.js";
|
|
8
|
-
import
|
|
7
|
+
import UniKvsStorage from "./_storage.js";
|
|
9
8
|
import toValueStream from "./_to-value-stream.js";
|
|
10
9
|
import UniKvsTransformer from "./_transformer.js";
|
|
11
|
-
import
|
|
10
|
+
import * as v from "./_valibot.js";
|
|
12
11
|
import type { ContextSource } from "./context.types.js";
|
|
13
12
|
import {
|
|
14
13
|
KeyNotFoundError,
|
|
@@ -138,7 +137,7 @@ export type SetOptions<
|
|
|
138
137
|
*
|
|
139
138
|
* @template TKey 対象となるキーの型です。
|
|
140
139
|
*/
|
|
141
|
-
export type GetOptions<TKey = Key> = {
|
|
140
|
+
export type GetOptions<TKey = IStorage.Key> = {
|
|
142
141
|
/**
|
|
143
142
|
* 操作対象を識別するためのキーです。
|
|
144
143
|
*/
|
|
@@ -160,7 +159,7 @@ export type GetOptions<TKey = Key> = {
|
|
|
160
159
|
*
|
|
161
160
|
* @template TKey 対象となるキーの型です。
|
|
162
161
|
*/
|
|
163
|
-
export type StreamOptions<TKey = Key> = {
|
|
162
|
+
export type StreamOptions<TKey = IStorage.Key> = {
|
|
164
163
|
/**
|
|
165
164
|
* 操作対象を識別するためのキーです。
|
|
166
165
|
*/
|
|
@@ -182,7 +181,7 @@ export type StreamOptions<TKey = Key> = {
|
|
|
182
181
|
*
|
|
183
182
|
* @template TKey 対象となるキーの型です。
|
|
184
183
|
*/
|
|
185
|
-
export type HasOptions<TKey = Key> = {
|
|
184
|
+
export type HasOptions<TKey = IStorage.Key> = {
|
|
186
185
|
/**
|
|
187
186
|
* 操作対象を識別するためのキーです。
|
|
188
187
|
*/
|
|
@@ -204,7 +203,7 @@ export type HasOptions<TKey = Key> = {
|
|
|
204
203
|
*
|
|
205
204
|
* @template TKey 対象となるキーの型です。
|
|
206
205
|
*/
|
|
207
|
-
export type DeleteOptions<TKey = Key> = {
|
|
206
|
+
export type DeleteOptions<TKey = IStorage.Key> = {
|
|
208
207
|
/**
|
|
209
208
|
* 操作対象を識別するためのキーです。
|
|
210
209
|
*/
|
|
@@ -359,7 +358,7 @@ const ioLockRegistry: FinalizationRegistry<AsyncmuxLock> | null =
|
|
|
359
358
|
? null
|
|
360
359
|
: new FinalizationRegistry((lock) => {
|
|
361
360
|
try {
|
|
362
|
-
lock.
|
|
361
|
+
lock.release();
|
|
363
362
|
} catch {}
|
|
364
363
|
});
|
|
365
364
|
|
|
@@ -486,7 +485,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
486
485
|
ioMux: new Asyncmux(),
|
|
487
486
|
};
|
|
488
487
|
try {
|
|
489
|
-
const [options = {}] =
|
|
488
|
+
const [options = {}] = v.parseInput(OpenArgsSchema, args);
|
|
490
489
|
const { signal: signalOption, context: contextOption } = options;
|
|
491
490
|
|
|
492
491
|
const { conAc } = this.#con;
|
|
@@ -567,7 +566,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
567
566
|
|
|
568
567
|
throw ex;
|
|
569
568
|
} finally {
|
|
570
|
-
lock.
|
|
569
|
+
lock.release();
|
|
571
570
|
}
|
|
572
571
|
} catch (ex) {
|
|
573
572
|
this.#con = null;
|
|
@@ -588,7 +587,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
588
587
|
throw new UniKvsIsNotOpenError();
|
|
589
588
|
}
|
|
590
589
|
|
|
591
|
-
const [options = {}] =
|
|
590
|
+
const [options = {}] = v.parseInput(CloseArgsSchema, args);
|
|
592
591
|
const { signal = AbortSignal.timeout(10e3), context: contextOption } = options;
|
|
593
592
|
|
|
594
593
|
const context = mergeContext(this.#context, contextOption);
|
|
@@ -643,11 +642,11 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
643
642
|
throw new PluginOperationAggregateError({ action: "close", errors });
|
|
644
643
|
}
|
|
645
644
|
} finally {
|
|
646
|
-
lock.
|
|
645
|
+
lock.release();
|
|
647
646
|
}
|
|
648
647
|
} finally {
|
|
649
648
|
this.#con = null;
|
|
650
|
-
lock.
|
|
649
|
+
lock.release();
|
|
651
650
|
}
|
|
652
651
|
}
|
|
653
652
|
|
|
@@ -692,7 +691,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
692
691
|
throw new UniKvsIsNotOpenError();
|
|
693
692
|
}
|
|
694
693
|
|
|
695
|
-
const [options] =
|
|
694
|
+
const [options] = v.parseInput(SetArgsSchema, args);
|
|
696
695
|
const { key, value, signal: signalOption, context: contextOption } = options;
|
|
697
696
|
|
|
698
697
|
const { conAc, ioMux } = this.#con;
|
|
@@ -739,7 +738,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
739
738
|
}),
|
|
740
739
|
);
|
|
741
740
|
} finally {
|
|
742
|
-
lock.
|
|
741
|
+
lock.release();
|
|
743
742
|
}
|
|
744
743
|
} else {
|
|
745
744
|
// 登録されているトランスフォーマーを順番に適用してデータをエンコードします。
|
|
@@ -761,7 +760,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
761
760
|
}),
|
|
762
761
|
);
|
|
763
762
|
} finally {
|
|
764
|
-
lock.
|
|
763
|
+
lock.release();
|
|
765
764
|
}
|
|
766
765
|
}
|
|
767
766
|
|
|
@@ -795,7 +794,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
795
794
|
throw error;
|
|
796
795
|
}
|
|
797
796
|
} finally {
|
|
798
|
-
lock.
|
|
797
|
+
lock.release();
|
|
799
798
|
}
|
|
800
799
|
}
|
|
801
800
|
|
|
@@ -828,7 +827,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
828
827
|
throw new UniKvsIsNotOpenError();
|
|
829
828
|
}
|
|
830
829
|
|
|
831
|
-
const [options] =
|
|
830
|
+
const [options] = v.parseInput(GetArgsSchema, args);
|
|
832
831
|
const { key, signal: signalOption, context: contextOption } = options;
|
|
833
832
|
|
|
834
833
|
const { conAc, ioMux } = this.#con;
|
|
@@ -846,7 +845,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
846
845
|
}
|
|
847
846
|
|
|
848
847
|
const NONE = {};
|
|
849
|
-
let data = NONE;
|
|
848
|
+
let data: any = NONE;
|
|
850
849
|
|
|
851
850
|
const lock = await ioMux.rLock({ key, signal });
|
|
852
851
|
try {
|
|
@@ -858,7 +857,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
858
857
|
}
|
|
859
858
|
}
|
|
860
859
|
} finally {
|
|
861
|
-
lock.
|
|
860
|
+
lock.release();
|
|
862
861
|
}
|
|
863
862
|
|
|
864
863
|
if (data === NONE) {
|
|
@@ -874,7 +873,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
874
873
|
|
|
875
874
|
return data;
|
|
876
875
|
} finally {
|
|
877
|
-
lock.
|
|
876
|
+
lock.release();
|
|
878
877
|
}
|
|
879
878
|
}
|
|
880
879
|
|
|
@@ -907,7 +906,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
907
906
|
throw new UniKvsIsNotOpenError();
|
|
908
907
|
}
|
|
909
908
|
|
|
910
|
-
const [options] =
|
|
909
|
+
const [options] = v.parseInput(StreamArgsSchema, args);
|
|
911
910
|
const { key, signal: signalOption, context: contextOption } = options;
|
|
912
911
|
|
|
913
912
|
const { conAc, ioMux } = this.#con;
|
|
@@ -955,7 +954,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
955
954
|
await r.cancel();
|
|
956
955
|
} catch {}
|
|
957
956
|
try {
|
|
958
|
-
lock.
|
|
957
|
+
lock.release();
|
|
959
958
|
} catch {}
|
|
960
959
|
});
|
|
961
960
|
}
|
|
@@ -969,7 +968,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
969
968
|
await r.cancel();
|
|
970
969
|
} catch {}
|
|
971
970
|
try {
|
|
972
|
-
lock.
|
|
971
|
+
lock.release();
|
|
973
972
|
} catch {}
|
|
974
973
|
});
|
|
975
974
|
|
|
@@ -978,11 +977,11 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
978
977
|
|
|
979
978
|
return valueStream;
|
|
980
979
|
} catch (ex) {
|
|
981
|
-
lock.
|
|
980
|
+
lock.release();
|
|
982
981
|
throw ex;
|
|
983
982
|
}
|
|
984
983
|
} finally {
|
|
985
|
-
lock.
|
|
984
|
+
lock.release();
|
|
986
985
|
}
|
|
987
986
|
}
|
|
988
987
|
|
|
@@ -1011,7 +1010,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
1011
1010
|
throw new UniKvsIsNotOpenError();
|
|
1012
1011
|
}
|
|
1013
1012
|
|
|
1014
|
-
const [options] =
|
|
1013
|
+
const [options] = v.parseInput(HasArgsSchema, args);
|
|
1015
1014
|
const { key, signal: signalOption, context: contextOption } = options;
|
|
1016
1015
|
|
|
1017
1016
|
const { conAc, ioMux } = this.#con;
|
|
@@ -1039,10 +1038,10 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
1039
1038
|
|
|
1040
1039
|
return false;
|
|
1041
1040
|
} finally {
|
|
1042
|
-
lock.
|
|
1041
|
+
lock.release();
|
|
1043
1042
|
}
|
|
1044
1043
|
} finally {
|
|
1045
|
-
lock.
|
|
1044
|
+
lock.release();
|
|
1046
1045
|
}
|
|
1047
1046
|
}
|
|
1048
1047
|
|
|
@@ -1071,7 +1070,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
1071
1070
|
throw new UniKvsIsNotOpenError();
|
|
1072
1071
|
}
|
|
1073
1072
|
|
|
1074
|
-
const [options] =
|
|
1073
|
+
const [options] = v.parseInput(DeleteArgsSchema, args);
|
|
1075
1074
|
const { key, signal: signalOption, context: contextOption } = options;
|
|
1076
1075
|
|
|
1077
1076
|
const { conAc, ioMux } = this.#con;
|
|
@@ -1108,10 +1107,10 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
1108
1107
|
throw new PluginOperationAggregateError({ plugin: "storage", action: "delete", errors });
|
|
1109
1108
|
}
|
|
1110
1109
|
} finally {
|
|
1111
|
-
lock.
|
|
1110
|
+
lock.release();
|
|
1112
1111
|
}
|
|
1113
1112
|
} finally {
|
|
1114
|
-
lock.
|
|
1113
|
+
lock.release();
|
|
1115
1114
|
}
|
|
1116
1115
|
}
|
|
1117
1116
|
|
|
@@ -1128,7 +1127,7 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
1128
1127
|
throw new UniKvsIsNotOpenError();
|
|
1129
1128
|
}
|
|
1130
1129
|
|
|
1131
|
-
const [options = {}] =
|
|
1130
|
+
const [options = {}] = v.parseInput(ClearArgsSchema, args);
|
|
1132
1131
|
const { signal: signalOption, context: contextOption } = options;
|
|
1133
1132
|
|
|
1134
1133
|
const { conAc, ioMux } = this.#con;
|
|
@@ -1162,10 +1161,10 @@ export default class UniKvs<TKeyValueMapping extends KeyValueMapping = KeyValueM
|
|
|
1162
1161
|
throw new PluginOperationAggregateError({ plugin: "storage", action: "clear", errors });
|
|
1163
1162
|
}
|
|
1164
1163
|
} finally {
|
|
1165
|
-
lock.
|
|
1164
|
+
lock.release();
|
|
1166
1165
|
}
|
|
1167
1166
|
} finally {
|
|
1168
|
-
lock.
|
|
1167
|
+
lock.release();
|
|
1169
1168
|
}
|
|
1170
1169
|
}
|
|
1171
1170
|
}
|