unikvs 0.0.10 → 0.0.12
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/README.md +3 -0
- package/dist/src/_merge-variables.d.ts +13 -0
- package/dist/src/_merge-variables.d.ts.map +1 -0
- package/dist/src/_merge-variables.js +12 -0
- package/dist/src/_storage.d.ts +11 -11
- package/dist/src/_storage.d.ts.map +1 -1
- package/dist/src/_storage.js +31 -22
- package/dist/src/_streams.d.ts +20 -0
- package/dist/src/_streams.d.ts.map +1 -0
- package/dist/src/_streams.js +36 -0
- package/dist/src/_transformer.d.ts +7 -7
- package/dist/src/_transformer.d.ts.map +1 -1
- package/dist/src/_transformer.js +12 -12
- package/dist/src/_valibot.d.ts +2 -2
- package/dist/src/_valibot.d.ts.map +1 -1
- package/dist/src/_valibot.js +1 -1
- package/dist/src/_value-schemas.d.ts +179 -0
- package/dist/src/_value-schemas.d.ts.map +1 -0
- package/dist/src/_value-schemas.js +150 -0
- package/dist/src/errors.d.ts +60 -94
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +15 -31
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/unikvs-config.d.ts +58 -139
- package/dist/src/unikvs-config.d.ts.map +1 -1
- package/dist/src/unikvs-config.js +42 -47
- package/dist/src/unikvs.d.ts +84 -166
- package/dist/src/unikvs.d.ts.map +1 -1
- package/dist/src/unikvs.js +230 -169
- package/dist/src/utils.types.d.ts +1 -3
- package/dist/src/utils.types.d.ts.map +1 -1
- package/dist/src/value-stream.types.d.ts +2 -8
- package/dist/src/value-stream.types.d.ts.map +1 -1
- package/dist/src/variables.types.d.ts +11 -0
- package/dist/src/variables.types.d.ts.map +1 -0
- package/package.json +17 -16
- package/src/_merge-variables.ts +19 -0
- package/src/_storage.ts +47 -24
- package/src/_streams.ts +47 -0
- package/src/_transformer.ts +13 -13
- package/src/_valibot.ts +4 -1
- package/src/_value-schemas.ts +362 -0
- package/src/errors.ts +60 -109
- package/src/index.ts +2 -3
- package/src/unikvs-config.ts +143 -168
- package/src/unikvs.ts +359 -290
- package/src/utils.types.ts +1 -3
- package/src/value-stream.types.ts +2 -8
- package/src/variables.types.ts +13 -0
- package/dist/src/_merge-context.d.ts +0 -13
- package/dist/src/_merge-context.d.ts.map +0 -1
- package/dist/src/_merge-context.js +0 -12
- package/dist/src/context.types.d.ts +0 -17
- package/dist/src/context.types.d.ts.map +0 -1
- package/src/_merge-context.ts +0 -19
- package/src/context.types.ts +0 -19
- /package/dist/src/{context.types.js → variables.types.js} +0 -0
package/dist/src/errors.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
|
1
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
2
2
|
import { setErrorMessage, ErrorBase, } from "@unikvs/core";
|
|
3
3
|
// -------------------------------------------------------------------------------------------------
|
|
4
4
|
//
|
|
@@ -6,14 +6,12 @@ import { setErrorMessage, ErrorBase, } from "@unikvs/core";
|
|
|
6
6
|
//
|
|
7
7
|
// -------------------------------------------------------------------------------------------------
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @template TMeta エラーのメタデータの型です。
|
|
9
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
12
10
|
*/
|
|
13
11
|
export class InvalidUsageErrorBase extends ErrorBase {
|
|
14
12
|
}
|
|
15
13
|
/**
|
|
16
|
-
*
|
|
14
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
17
15
|
*/
|
|
18
16
|
export class InvalidInputError extends InvalidUsageErrorBase {
|
|
19
17
|
constructor(args) {
|
|
@@ -27,7 +25,7 @@ _a = InvalidInputError;
|
|
|
27
25
|
_a.prototype.name = "UniKvsInvalidInputError";
|
|
28
26
|
})();
|
|
29
27
|
/**
|
|
30
|
-
*
|
|
28
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
31
29
|
*/
|
|
32
30
|
export class InvalidOutputError extends InvalidUsageErrorBase {
|
|
33
31
|
constructor(args) {
|
|
@@ -46,7 +44,7 @@ _b = InvalidOutputError;
|
|
|
46
44
|
//
|
|
47
45
|
// -------------------------------------------------------------------------------------------------
|
|
48
46
|
/**
|
|
49
|
-
*
|
|
47
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
50
48
|
*/
|
|
51
49
|
export class UniKvsIsOpenError extends ErrorBase {
|
|
52
50
|
constructor(options) {
|
|
@@ -59,7 +57,7 @@ _c = UniKvsIsOpenError;
|
|
|
59
57
|
})();
|
|
60
58
|
setErrorMessage(UniKvsIsOpenError, "UniKvs は開いています", "ja");
|
|
61
59
|
/**
|
|
62
|
-
*
|
|
60
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
63
61
|
*/
|
|
64
62
|
export class UniKvsIsNotOpenError extends ErrorBase {
|
|
65
63
|
constructor(options) {
|
|
@@ -72,7 +70,7 @@ _d = UniKvsIsNotOpenError;
|
|
|
72
70
|
})();
|
|
73
71
|
setErrorMessage(UniKvsIsNotOpenError, "UniKvs は開いていません", "ja");
|
|
74
72
|
/**
|
|
75
|
-
*
|
|
73
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
76
74
|
*/
|
|
77
75
|
export class KeyNotFoundError extends ErrorBase {
|
|
78
76
|
constructor(args) {
|
|
@@ -87,7 +85,7 @@ _e = KeyNotFoundError;
|
|
|
87
85
|
})();
|
|
88
86
|
setErrorMessage(KeyNotFoundError, ({ key }) => `キー ${JSON.stringify(key)} が見つかりません`, "ja");
|
|
89
87
|
/**
|
|
90
|
-
*
|
|
88
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
91
89
|
*/
|
|
92
90
|
export class StorageIsNotOpenError extends ErrorBase {
|
|
93
91
|
constructor(args) {
|
|
@@ -102,7 +100,7 @@ _f = StorageIsNotOpenError;
|
|
|
102
100
|
})();
|
|
103
101
|
setErrorMessage(StorageIsNotOpenError, ({ name }) => `ストレージ "${name}" は開いていません`, "ja");
|
|
104
102
|
/**
|
|
105
|
-
*
|
|
103
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
106
104
|
*/
|
|
107
105
|
export class WritableStreamNotSupportedError extends ErrorBase {
|
|
108
106
|
constructor(args) {
|
|
@@ -117,7 +115,7 @@ _g = WritableStreamNotSupportedError;
|
|
|
117
115
|
})();
|
|
118
116
|
setErrorMessage(WritableStreamNotSupportedError, ({ name }) => `ストレージ "${name}" は書き込み可能なストリームをサポートしていません`, "ja");
|
|
119
117
|
/**
|
|
120
|
-
*
|
|
118
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
121
119
|
*/
|
|
122
120
|
export class ReadableStreamNotSupportedError extends ErrorBase {
|
|
123
121
|
constructor(args) {
|
|
@@ -147,7 +145,7 @@ _j = MultipartWriteNotSupportedError;
|
|
|
147
145
|
})();
|
|
148
146
|
setErrorMessage(MultipartWriteNotSupportedError, ({ name }) => `ストレージ "${name}" はマルチパート書き込みをサポートしていません`, "ja");
|
|
149
147
|
/**
|
|
150
|
-
*
|
|
148
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
151
149
|
*/
|
|
152
150
|
export class TransformerIsNotOpenError extends ErrorBase {
|
|
153
151
|
constructor(args) {
|
|
@@ -162,7 +160,7 @@ _k = TransformerIsNotOpenError;
|
|
|
162
160
|
})();
|
|
163
161
|
setErrorMessage(TransformerIsNotOpenError, ({ name }) => `トランスフォーマー "${name}" は開いていません`, "ja");
|
|
164
162
|
/**
|
|
165
|
-
*
|
|
163
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
166
164
|
*/
|
|
167
165
|
export class EncodableStreamNotSupportedError extends ErrorBase {
|
|
168
166
|
constructor(args) {
|
|
@@ -177,7 +175,7 @@ _l = EncodableStreamNotSupportedError;
|
|
|
177
175
|
})();
|
|
178
176
|
setErrorMessage(EncodableStreamNotSupportedError, ({ name }) => `トランスフォーマー "${name}" はエンコード可能なストリームをサポートしていません`, "ja");
|
|
179
177
|
/**
|
|
180
|
-
*
|
|
178
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
181
179
|
*/
|
|
182
180
|
export class DecodableStreamNotSupportedError extends ErrorBase {
|
|
183
181
|
constructor(args) {
|
|
@@ -192,7 +190,7 @@ _m = DecodableStreamNotSupportedError;
|
|
|
192
190
|
})();
|
|
193
191
|
setErrorMessage(DecodableStreamNotSupportedError, ({ name }) => `トランスフォーマー "${name}" はデコード可能なストリームをサポートしていません`, "ja");
|
|
194
192
|
/**
|
|
195
|
-
*
|
|
193
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
196
194
|
*/
|
|
197
195
|
export class PluginOperationAggregateError extends ErrorBase {
|
|
198
196
|
constructor(args) {
|
|
@@ -222,7 +220,7 @@ setErrorMessage(PluginOperationAggregateError, ({ action, errors, plugin }) => `
|
|
|
222
220
|
//
|
|
223
221
|
// -------------------------------------------------------------------------------------------------
|
|
224
222
|
/**
|
|
225
|
-
*
|
|
223
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#errors)
|
|
226
224
|
*/
|
|
227
225
|
export class MissingStorageError extends ErrorBase {
|
|
228
226
|
constructor(options) {
|
|
@@ -234,17 +232,3 @@ _p = MissingStorageError;
|
|
|
234
232
|
_p.prototype.name = "UniKvsMissingStorageError";
|
|
235
233
|
})();
|
|
236
234
|
setErrorMessage(MissingStorageError, "UniKvs を使用するためには最低 1 つのストレージが必要です", "ja");
|
|
237
|
-
// -------------------------------------------------------------------------------------------------
|
|
238
|
-
/**
|
|
239
|
-
* ストレージが登録された後にトランスフォーマーを追加しようとした場合に投げられるエラーです。
|
|
240
|
-
*/
|
|
241
|
-
export class TransformerRegistrationError extends ErrorBase {
|
|
242
|
-
constructor(options) {
|
|
243
|
-
super("Cannot add transformers after storage has already been registered", options);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
_q = TransformerRegistrationError;
|
|
247
|
-
(() => {
|
|
248
|
-
_q.prototype.name = "UniKvsTransformerRegistrationError";
|
|
249
|
-
})();
|
|
250
|
-
setErrorMessage(TransformerRegistrationError, "ストレージが登録された後にトランスフォーマーを追加することはできません", "ja");
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export type * from "./
|
|
1
|
+
export type * from "./variables.types.js";
|
|
2
2
|
export type { DecodableStreamNotSupportedErrorArgs, DecodableStreamNotSupportedErrorMeta, EncodableStreamNotSupportedErrorArgs, EncodableStreamNotSupportedErrorMeta, InvalidInputErrorArgs, InvalidInputErrorMeta, InvalidOutputErrorArgs, InvalidOutputErrorMeta, Issue, KeyNotFoundErrorArgs, KeyNotFoundErrorMeta, PluginOperationAggregateErrorArgs, PluginOperationAggregateErrorMeta, ReadableStreamNotSupportedErrorArgs, ReadableStreamNotSupportedErrorMeta, StorageIsNotOpenErrorArgs, StorageIsNotOpenErrorMeta, TransformerIsNotOpenErrorArgs, TransformerIsNotOpenErrorMeta, WritableStreamNotSupportedErrorArgs, WritableStreamNotSupportedErrorMeta, } from "./errors.js";
|
|
3
|
-
export { DecodableStreamNotSupportedError, EncodableStreamNotSupportedError, InvalidInputError, InvalidOutputError, InvalidUsageErrorBase, KeyNotFoundError, MissingStorageError, PluginOperationAggregateError, ReadableStreamNotSupportedError, StorageIsNotOpenError, TransformerIsNotOpenError,
|
|
3
|
+
export { DecodableStreamNotSupportedError, EncodableStreamNotSupportedError, InvalidInputError, InvalidOutputError, InvalidUsageErrorBase, KeyNotFoundError, MissingStorageError, PluginOperationAggregateError, ReadableStreamNotSupportedError, StorageIsNotOpenError, TransformerIsNotOpenError, UniKvsIsNotOpenError, UniKvsIsOpenError, WritableStreamNotSupportedError, } from "./errors.js";
|
|
4
4
|
export type * from "./unikvs-config.js";
|
|
5
|
-
export { default as UniKvsConfig } from "./unikvs-config.js";
|
|
5
|
+
export { PlainValue, StreamValue, Value, default as UniKvsConfig } from "./unikvs-config.js";
|
|
6
6
|
export type * from "./unikvs.js";
|
|
7
7
|
export { default as UniKvs } from "./unikvs.js";
|
|
8
8
|
export type * from "./utils.types.js";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,sBAAsB,CAAC;AAE1C,YAAY,EACV,oCAAoC,EACpC,oCAAoC,EACpC,oCAAoC,EACpC,oCAAoC,EACpC,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iCAAiC,EACjC,iCAAiC,EACjC,mCAAmC,EACnC,mCAAmC,EACnC,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,mCAAmC,EACnC,mCAAmC,GACpC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,EAC/B,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EACjB,+BAA+B,GAChC,MAAM,aAAa,CAAC;AAErB,mBAAmB,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE7F,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAC;AAEhD,mBAAmB,kBAAkB,CAAC;AAEtC,mBAAmB,yBAAyB,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { DecodableStreamNotSupportedError, EncodableStreamNotSupportedError, InvalidInputError, InvalidOutputError, InvalidUsageErrorBase, KeyNotFoundError, MissingStorageError, PluginOperationAggregateError, ReadableStreamNotSupportedError, StorageIsNotOpenError, TransformerIsNotOpenError,
|
|
2
|
-
export { default as UniKvsConfig } from "./unikvs-config.js";
|
|
1
|
+
export { DecodableStreamNotSupportedError, EncodableStreamNotSupportedError, InvalidInputError, InvalidOutputError, InvalidUsageErrorBase, KeyNotFoundError, MissingStorageError, PluginOperationAggregateError, ReadableStreamNotSupportedError, StorageIsNotOpenError, TransformerIsNotOpenError, UniKvsIsNotOpenError, UniKvsIsOpenError, WritableStreamNotSupportedError, } from "./errors.js";
|
|
2
|
+
export { PlainValue, StreamValue, Value, default as UniKvsConfig } from "./unikvs-config.js";
|
|
3
3
|
export { default as UniKvs } from "./unikvs.js";
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type
|
|
1
|
+
import type { IStorage, ITransformer, IReadableStreamStorage, IWritableStreamStorage, IDecodableStreamTransformer, IEncodableStreamTransformer } from "@unikvs/core";
|
|
2
|
+
import { type Value, type UniKvsSchema, type $InferPlainValueData, type $InferStreamValueChunkData } from "./_value-schemas.js";
|
|
3
3
|
import type UniKvs from "./unikvs.js";
|
|
4
4
|
import type { ValueOf } from "./utils.types.js";
|
|
5
|
+
import type { VariablesSource } from "./variables.types.js";
|
|
6
|
+
export { type UniKvsSchema, type ValueSchemaInfo, type UniKvsSchemaRecord, type UniKvsSchemaEntries, type $InferPlainValueData, type IValueSchemaResolver, type $InferKeyValueMapping, type $InferPlainValueInput, type $InferStreamValueChunkData, type $InferStreamValueChunkInput, Value, PlainValue, StreamValue, } from "./_value-schemas.js";
|
|
5
7
|
/**
|
|
6
8
|
* トランスフォーマーから、デコード時の入力データの型を推論するユーティリティー型です。
|
|
7
9
|
*
|
|
@@ -39,71 +41,17 @@ type $InferWriteChunkInput<TStorage extends IStorage> = TStorage extends IWritab
|
|
|
39
41
|
*/
|
|
40
42
|
type $InferReadChunkOutput<TStorage extends IStorage> = TStorage extends IReadableStreamStorage<infer TReadChunkOutput> ? TReadChunkOutput : never;
|
|
41
43
|
/**
|
|
42
|
-
*
|
|
43
|
-
*/
|
|
44
|
-
declare const PLAIN_VALUE: unique symbol;
|
|
45
|
-
/**
|
|
46
|
-
* ストリームではない通常の値を表す型定義です。
|
|
47
|
-
*
|
|
48
|
-
* @template TData 保持するデータの型です。
|
|
49
|
-
*/
|
|
50
|
-
export type PlainValue<TData = any> = [Type: typeof PLAIN_VALUE, Data: TData];
|
|
51
|
-
/**
|
|
52
|
-
* ストリーム形式の値を識別するための固有のシンボルです。
|
|
53
|
-
*/
|
|
54
|
-
declare const STREAM_VALUE: unique symbol;
|
|
55
|
-
/**
|
|
56
|
-
* ストリームとして扱われる値を表す型定義です。
|
|
57
|
-
*
|
|
58
|
-
* @template TChunkData ストリームのチャンクデータの型です。
|
|
59
|
-
*/
|
|
60
|
-
export type StreamValue<TChunkData = any> = [Type: typeof STREAM_VALUE, ChunkData: TChunkData];
|
|
61
|
-
/**
|
|
62
|
-
* UniKvs で扱う値の抽象型です。プレーンな値かストリーム値のいずれかになります。
|
|
63
|
-
*
|
|
64
|
-
* @template TData データまたはチャンクデータの型です。
|
|
65
|
-
*/
|
|
66
|
-
export type Value<TData = any> = PlainValue<TData> | StreamValue<TData>;
|
|
67
|
-
/**
|
|
68
|
-
* キーと値のマッピングを定義するオブジェクトの型です。
|
|
69
|
-
*
|
|
70
|
-
* @template T マッピングされる値の型です。
|
|
44
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
71
45
|
*/
|
|
72
46
|
export type KeyValueMapping<T = any> = {
|
|
73
47
|
readonly [key: IStorage.Key]: Value<T>;
|
|
74
48
|
};
|
|
75
49
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* @template TPlainValue 対象となる PlainValue 型です。
|
|
79
|
-
*/
|
|
80
|
-
export type $InferPlainValueData<TPlainValue> = TPlainValue extends PlainValue<infer TData> ? TData : never;
|
|
81
|
-
/**
|
|
82
|
-
* StreamValue 型から内部のチャンクデータ型を抽出します。
|
|
83
|
-
*
|
|
84
|
-
* @template TStremValue 対象となる StreamValue 型です。
|
|
85
|
-
*/
|
|
86
|
-
export type $InferStreamValueChunkData<TStremValue> = TStremValue extends StreamValue<infer TChunkData> ? TChunkData : never;
|
|
87
|
-
/**
|
|
88
|
-
* KeyValueMapping から有効なキーの型を抽出します。
|
|
89
|
-
*
|
|
90
|
-
* @template TKeyValueMapping 対象となるマッピング型です。
|
|
50
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
91
51
|
*/
|
|
92
52
|
export type KeyofKeyValueMapping<TKeyValueMapping extends KeyValueMapping = KeyValueMapping> = Extract<keyof TKeyValueMapping, IStorage.Key>;
|
|
93
53
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* トランスフォーマーの追加やストレージの登録を型安全に行うための流れるようなインターフェースを提供します。
|
|
97
|
-
*
|
|
98
|
-
* @template TKeyValueMapping キーと値のマッピング型です。
|
|
99
|
-
* @template TUniKvsDataInput UniKvs への入力データの型です。
|
|
100
|
-
* @template TUniKvsDataOutput UniKvs からの出力データの型です。
|
|
101
|
-
* @template TUniKvsChunkInput UniKvs への入力チャンクデータの型です。
|
|
102
|
-
* @template TUniKvsChunkOutput UniKvs からのストリーム出力チャンクデータの型です。
|
|
103
|
-
* @template TLastTransformerDecodeDataInput 最後に適用されたトランスフォーマーのデコード入力データの型です。
|
|
104
|
-
* @template TLastTransformerEncodeDataOutput 最後に適用されたトランスフォーマーのエンコード出力データの型です。
|
|
105
|
-
* @template TLastTransformerDecodeChunkInput 最後に適用されたトランスフォーマーのデコード入力チャンクデータの型です。
|
|
106
|
-
* @template TLastTransformerEncodeChunkOutput 最後に適用されたトランスフォーマーのエンコード出力チャンクデータの型です。
|
|
54
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
107
55
|
*/
|
|
108
56
|
export interface IUniKvsConfigBuilder<TKeyValueMapping extends KeyValueMapping = KeyValueMapping, TUniKvsDataInput = ValueOf<{
|
|
109
57
|
[TKey in KeyofKeyValueMapping<TKeyValueMapping>]: $InferPlainValueData<TKeyValueMapping[TKey]>;
|
|
@@ -111,20 +59,11 @@ export interface IUniKvsConfigBuilder<TKeyValueMapping extends KeyValueMapping =
|
|
|
111
59
|
[TKey in KeyofKeyValueMapping<TKeyValueMapping>]: $InferStreamValueChunkData<TKeyValueMapping[TKey]>;
|
|
112
60
|
}>, TUniKvsChunkOutput = TUniKvsChunkInput, TLastTransformerDecodeDataInput = TUniKvsDataOutput, TLastTransformerEncodeDataOutput = TUniKvsDataInput, TLastTransformerDecodeChunkInput = TUniKvsChunkOutput, TLastTransformerEncodeChunkOutput = TUniKvsChunkInput> {
|
|
113
61
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* @param context 設定するコンテキストのソースです。
|
|
117
|
-
* @returns インスタンス自身を返します。
|
|
62
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
118
63
|
*/
|
|
119
|
-
|
|
64
|
+
setVariables(vars: VariablesSource): this;
|
|
120
65
|
/**
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* ストレージが追加されると、設定はファイナライズ段階に移行します。
|
|
124
|
-
*
|
|
125
|
-
* @template TStorage 追加するストレージの型です。
|
|
126
|
-
* @param storage ストレージのインスタンスです。
|
|
127
|
-
* @returns ファイナライザーインターフェースを返します。
|
|
66
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
128
67
|
*/
|
|
129
68
|
appendStorage<TStorage extends IStorage<[
|
|
130
69
|
TLastTransformerEncodeDataOutput
|
|
@@ -138,15 +77,9 @@ export interface IUniKvsConfigBuilder<TKeyValueMapping extends KeyValueMapping =
|
|
|
138
77
|
TLastTransformerEncodeChunkOutput
|
|
139
78
|
] extends [never] ? never : [$InferWriteChunkInput<TStorage>] extends [never] ? never : TLastTransformerEncodeChunkOutput, [
|
|
140
79
|
TLastTransformerDecodeChunkInput
|
|
141
|
-
] extends [never] ? never : [$InferReadChunkOutput<TStorage>] extends [never] ? never : TLastTransformerDecodeChunkInput>;
|
|
80
|
+
] extends [never] ? never : [$InferReadChunkOutput<TStorage>] extends [never] ? never : TLastTransformerDecodeChunkInput, TLastTransformerDecodeDataInput, TLastTransformerEncodeDataOutput, TLastTransformerDecodeChunkInput, TLastTransformerEncodeChunkOutput>;
|
|
142
81
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* データ変換の層を積み重ねることで、シリアライズなどの処理を定義できます。
|
|
146
|
-
*
|
|
147
|
-
* @template TTransformer 追加するトランスフォーマーの型です。
|
|
148
|
-
* @param transformer トランスフォーマーのインスタンスです。
|
|
149
|
-
* @returns 新しい型情報を持つビルダーを返します。
|
|
82
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
150
83
|
*/
|
|
151
84
|
appendTransformer<TTransformer extends ITransformer<[
|
|
152
85
|
TLastTransformerEncodeDataOutput
|
|
@@ -163,93 +96,79 @@ export interface IUniKvsConfigBuilder<TKeyValueMapping extends KeyValueMapping =
|
|
|
163
96
|
] extends [never] ? never : [$InferEncodeChunkOutput<TTransformer>] extends [never] ? never : TUniKvsChunkOutput, $InferDecodeDataInput<TTransformer>, $InferEncodeDataOutput<TTransformer>, $InferDecodeChunkInput<TTransformer>, $InferEncodeChunkOutput<TTransformer>>;
|
|
164
97
|
}
|
|
165
98
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
* @template TKeyValueMapping キーと値のマッピング型です。
|
|
169
|
-
* @template TWriteDataInput ストレージへの書き込み入力データの型です。
|
|
170
|
-
* @template TReadDataOutput ストレージからの読み込み出力データの型です。
|
|
171
|
-
* @template TWriteChunkInput ストレージへの書き込みチャンクデータの型です。
|
|
172
|
-
* @template TReadChunkOutput ストレージからの読み込みチャンクデータの型です。
|
|
99
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
173
100
|
*/
|
|
174
|
-
export interface IUniKvsConfigFinalizer<TKeyValueMapping extends KeyValueMapping = KeyValueMapping, TWriteDataInput = any, TReadDataOutput = any, TWriteChunkInput = any, TReadChunkOutput = any> {
|
|
101
|
+
export interface IUniKvsConfigFinalizer<TKeyValueMapping extends KeyValueMapping = KeyValueMapping, TWriteDataInput = any, TReadDataOutput = any, TWriteChunkInput = any, TReadChunkOutput = any, TLastTransformerDecodeDataInput = TReadDataOutput, TLastTransformerEncodeDataOutput = TWriteDataInput, TLastTransformerDecodeChunkInput = TReadChunkOutput, TLastTransformerEncodeChunkOutput = TWriteChunkInput> {
|
|
175
102
|
/**
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
* @returns 作成された UniKvs のインスタンスです。
|
|
103
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
179
104
|
*/
|
|
180
105
|
create(): UniKvs<TKeyValueMapping>;
|
|
181
106
|
/**
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
* @param context 設定するコンテキストのソースです。
|
|
185
|
-
* @returns インスタンス自身を返します。
|
|
107
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
186
108
|
*/
|
|
187
|
-
|
|
109
|
+
setVariables(vars: VariablesSource): this;
|
|
188
110
|
/**
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
* @template TStorage 追加するストレージの型です。
|
|
192
|
-
* @param storage ストレージのインスタンスです。
|
|
193
|
-
* @returns ファイナライザーインターフェースを返します。
|
|
111
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
194
112
|
*/
|
|
195
113
|
appendStorage<TStorage extends IStorage<[
|
|
196
|
-
|
|
197
|
-
] extends [never] ? any :
|
|
198
|
-
|
|
199
|
-
] extends [never] ? any :
|
|
200
|
-
|
|
201
|
-
] extends [never] ? any :
|
|
202
|
-
|
|
203
|
-
] extends [never] ? any :
|
|
114
|
+
TLastTransformerEncodeDataOutput
|
|
115
|
+
] extends [never] ? any : TLastTransformerEncodeDataOutput, [
|
|
116
|
+
TLastTransformerDecodeDataInput
|
|
117
|
+
] extends [never] ? any : TLastTransformerDecodeDataInput, [
|
|
118
|
+
TLastTransformerEncodeChunkOutput
|
|
119
|
+
] extends [never] ? any : TLastTransformerEncodeChunkOutput, [
|
|
120
|
+
TLastTransformerDecodeChunkInput
|
|
121
|
+
] extends [never] ? any : TLastTransformerDecodeChunkInput>>(storage: TStorage): IUniKvsConfigFinalizer<TKeyValueMapping, TWriteDataInput, TReadDataOutput, [
|
|
204
122
|
TWriteChunkInput
|
|
205
123
|
] extends [never] ? never : [$InferWriteChunkInput<TStorage>] extends [never] ? never : TWriteChunkInput, [
|
|
206
124
|
TReadChunkOutput
|
|
207
|
-
] extends [never] ? never : [$InferReadChunkOutput<TStorage>] extends [never] ? never : TReadChunkOutput>;
|
|
125
|
+
] extends [never] ? never : [$InferReadChunkOutput<TStorage>] extends [never] ? never : TReadChunkOutput, TLastTransformerDecodeDataInput, TLastTransformerEncodeDataOutput, TLastTransformerDecodeChunkInput, TLastTransformerEncodeChunkOutput>;
|
|
126
|
+
/**
|
|
127
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
128
|
+
*/
|
|
129
|
+
appendTransformer<TTransformer extends ITransformer<[
|
|
130
|
+
TLastTransformerEncodeDataOutput
|
|
131
|
+
] extends [never] ? any : TLastTransformerEncodeDataOutput, any, any, [
|
|
132
|
+
TLastTransformerDecodeDataInput
|
|
133
|
+
] extends [never] ? any : TLastTransformerDecodeDataInput, [
|
|
134
|
+
TLastTransformerEncodeChunkOutput
|
|
135
|
+
] extends [never] ? any : TLastTransformerEncodeChunkOutput, any, any, [
|
|
136
|
+
TLastTransformerDecodeChunkInput
|
|
137
|
+
] extends [never] ? any : TLastTransformerDecodeChunkInput>>(transformer: TTransformer): IUniKvsConfigFinalizer<TKeyValueMapping, TWriteDataInput, TReadDataOutput, TWriteChunkInput, TReadChunkOutput, $InferDecodeDataInput<TTransformer>, $InferEncodeDataOutput<TTransformer>, $InferDecodeChunkInput<TTransformer>, $InferEncodeChunkOutput<TTransformer>>;
|
|
208
138
|
}
|
|
209
139
|
/**
|
|
210
|
-
*
|
|
211
|
-
|
|
212
|
-
|
|
140
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
141
|
+
*/
|
|
142
|
+
export type UniKvsConfigOptions = {
|
|
143
|
+
/**
|
|
144
|
+
* キーと値のスキーマ定義です。指定すると入出力値が検証されます。
|
|
145
|
+
*/
|
|
146
|
+
readonly schema?: UniKvsSchema | undefined;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
213
150
|
*/
|
|
214
151
|
export default class UniKvsConfig implements IUniKvsConfigBuilder, IUniKvsConfigFinalizer {
|
|
215
152
|
#private;
|
|
216
153
|
/**
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
* @param UniKvsConstructor UniKvs のクラスコンストラクターです。
|
|
154
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
220
155
|
*/
|
|
221
|
-
constructor(UniKvsConstructor: typeof UniKvs);
|
|
156
|
+
constructor(UniKvsConstructor: typeof UniKvs, options?: UniKvsConfigOptions);
|
|
222
157
|
/**
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
* @returns 作成された UniKvs インスタンスです。
|
|
226
|
-
* @throws ストレージが一つも登録されていない場合にエラーを投げます。
|
|
158
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
227
159
|
*/
|
|
228
160
|
create(): UniKvs;
|
|
229
161
|
/**
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
* @param context 設定するコンテキストのソースデータです。
|
|
233
|
-
* @returns インスタンス自身を返します。
|
|
162
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
234
163
|
*/
|
|
235
|
-
|
|
164
|
+
setVariables(vars: VariablesSource): this;
|
|
236
165
|
/**
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
* @param storage 追加するストレージインスタンスです。
|
|
240
|
-
* @returns ファイナライザーとして自身を返します。
|
|
166
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
241
167
|
*/
|
|
242
|
-
appendStorage(storage: IStorage):
|
|
168
|
+
appendStorage(storage: IStorage): this;
|
|
243
169
|
/**
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
* ストレージが登録された後には追加できない制約があります。
|
|
247
|
-
*
|
|
248
|
-
* @param transformer 追加するトランスフォーマーインスタンスです。
|
|
249
|
-
* @returns ビルダーとして自身を返します。
|
|
250
|
-
* @throws すでにストレージが登録されている状態で呼び出された場合にエラーを投げます。
|
|
170
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
251
171
|
*/
|
|
252
|
-
appendTransformer(transformer: ITransformer):
|
|
172
|
+
appendTransformer(transformer: ITransformer): this;
|
|
253
173
|
}
|
|
254
|
-
export {};
|
|
255
174
|
//# sourceMappingURL=unikvs-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unikvs-config.d.ts","sourceRoot":"","sources":["../../src/unikvs-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"unikvs-config.d.ts","sourceRoot":"","sources":["../../src/unikvs-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,97 +9,92 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _UniKvsConfig_UniKvs,
|
|
12
|
+
var _UniKvsConfig_UniKvs, _UniKvsConfig_vars, _UniKvsConfig_destinations, _UniKvsConfig_transformers, _UniKvsConfig_valueSchemaResolver;
|
|
13
13
|
import UniKvsStorage from "./_storage.js";
|
|
14
14
|
import UniKvsTransformer from "./_transformer.js";
|
|
15
|
-
import
|
|
15
|
+
import * as v from "./_valibot.js";
|
|
16
|
+
import { UniKvsSchemaSchema, createValueSchemaResolver, } from "./_value-schemas.js";
|
|
17
|
+
import { MissingStorageError } from "./errors.js";
|
|
18
|
+
export { Value, PlainValue, StreamValue, } from "./_value-schemas.js";
|
|
19
|
+
const UniKvsConfigOptionsSchema = v.object({
|
|
20
|
+
/**
|
|
21
|
+
* キーと値のスキーマ定義です。
|
|
22
|
+
*/
|
|
23
|
+
schema: v.optional(UniKvsSchemaSchema),
|
|
24
|
+
});
|
|
25
|
+
const UniKvsConfigArgsSchema = v.tuple([v.optional(UniKvsConfigOptionsSchema)]);
|
|
16
26
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* ビルダーパターンを用いて、コンテキスト、トランスフォーマー、ストレージの順で設定を積み上げます。
|
|
27
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
20
28
|
*/
|
|
21
29
|
class UniKvsConfig {
|
|
22
30
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @param UniKvsConstructor UniKvs のクラスコンストラクターです。
|
|
31
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
26
32
|
*/
|
|
27
|
-
constructor(UniKvsConstructor) {
|
|
33
|
+
constructor(UniKvsConstructor, options) {
|
|
28
34
|
/**
|
|
29
35
|
* UniKvs のコンストラクターです。
|
|
30
36
|
*/
|
|
31
37
|
_UniKvsConfig_UniKvs.set(this, void 0);
|
|
32
38
|
/**
|
|
33
|
-
*
|
|
39
|
+
* アプリケーションの実行時情報を保持する変数オブジェクトです。
|
|
34
40
|
*/
|
|
35
|
-
|
|
41
|
+
_UniKvsConfig_vars.set(this, void 0);
|
|
36
42
|
/**
|
|
37
|
-
*
|
|
43
|
+
* データの永続化先となるストレージのリストです。各ストレージは登録時点のトランスフォーマー数を保持します。
|
|
38
44
|
*/
|
|
39
45
|
_UniKvsConfig_destinations.set(this, void 0);
|
|
40
46
|
/**
|
|
41
|
-
*
|
|
47
|
+
* データを変換するためのトランスフォーマーのリストです。登録順に保持します。
|
|
42
48
|
*/
|
|
43
49
|
_UniKvsConfig_transformers.set(this, void 0);
|
|
50
|
+
/**
|
|
51
|
+
* キーに対応する値のスキーマ情報を解決するリゾルバーです。スキーマ未設定時は null となります。
|
|
52
|
+
*/
|
|
53
|
+
_UniKvsConfig_valueSchemaResolver.set(this, void 0);
|
|
54
|
+
const [parsed = {}] = v.parseInput(UniKvsConfigArgsSchema, [options]);
|
|
44
55
|
__classPrivateFieldSet(this, _UniKvsConfig_UniKvs, UniKvsConstructor, "f");
|
|
45
|
-
__classPrivateFieldSet(this,
|
|
56
|
+
__classPrivateFieldSet(this, _UniKvsConfig_vars, {}, "f");
|
|
46
57
|
__classPrivateFieldSet(this, _UniKvsConfig_destinations, [], "f");
|
|
47
58
|
__classPrivateFieldSet(this, _UniKvsConfig_transformers, [], "f");
|
|
59
|
+
__classPrivateFieldSet(this, _UniKvsConfig_valueSchemaResolver, parsed.schema ? createValueSchemaResolver(parsed.schema) : null, "f");
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* @returns 作成された UniKvs インスタンスです。
|
|
53
|
-
* @throws ストレージが一つも登録されていない場合にエラーを投げます。
|
|
62
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
54
63
|
*/
|
|
55
64
|
create() {
|
|
56
|
-
|
|
57
|
-
const [
|
|
65
|
+
const transformers = __classPrivateFieldGet(this, _UniKvsConfig_transformers, "f").map((tf) => new UniKvsTransformer(tf));
|
|
66
|
+
const [first, ...rest] = __classPrivateFieldGet(this, _UniKvsConfig_destinations, "f").map(({ storage, transformerCount }) => ({
|
|
67
|
+
storage: new UniKvsStorage(storage),
|
|
68
|
+
transformers: transformers.slice(0, transformerCount),
|
|
69
|
+
}));
|
|
58
70
|
// ストレージが空の場合は UniKvs として機能できないため、例外を投げます。
|
|
59
|
-
if (!
|
|
71
|
+
if (!first) {
|
|
60
72
|
throw new MissingStorageError();
|
|
61
73
|
}
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
return new (__classPrivateFieldGet(this, _UniKvsConfig_UniKvs, "f"))(__classPrivateFieldGet(this, _UniKvsConfig_context, "f"), [dest, ...destinations], __classPrivateFieldGet(this, _UniKvsConfig_transformers, "f").map((tf) => new UniKvsTransformer(tf)));
|
|
74
|
+
// 変数の参照を切り離すために浅いコピーを作成して UniKvs を初期化します。
|
|
75
|
+
return new (__classPrivateFieldGet(this, _UniKvsConfig_UniKvs, "f"))(__classPrivateFieldGet(this, _UniKvsConfig_vars, "f"), [first, ...rest], transformers, __classPrivateFieldGet(this, _UniKvsConfig_valueSchemaResolver, "f"));
|
|
65
76
|
}
|
|
66
77
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* @param context 設定するコンテキストのソースデータです。
|
|
70
|
-
* @returns インスタンス自身を返します。
|
|
78
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
71
79
|
*/
|
|
72
|
-
|
|
73
|
-
__classPrivateFieldSet(this,
|
|
80
|
+
setVariables(vars) {
|
|
81
|
+
__classPrivateFieldSet(this, _UniKvsConfig_vars, Array.isArray(vars) ? Object.fromEntries(vars) : { ...vars }, "f");
|
|
74
82
|
return this;
|
|
75
83
|
}
|
|
76
84
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* @param storage 追加するストレージインスタンスです。
|
|
80
|
-
* @returns ファイナライザーとして自身を返します。
|
|
85
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
81
86
|
*/
|
|
82
87
|
appendStorage(storage) {
|
|
83
|
-
__classPrivateFieldGet(this, _UniKvsConfig_destinations, "f").push(storage);
|
|
88
|
+
__classPrivateFieldGet(this, _UniKvsConfig_destinations, "f").push({ storage, transformerCount: __classPrivateFieldGet(this, _UniKvsConfig_transformers, "f").length });
|
|
84
89
|
return this;
|
|
85
90
|
}
|
|
86
91
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* ストレージが登録された後には追加できない制約があります。
|
|
90
|
-
*
|
|
91
|
-
* @param transformer 追加するトランスフォーマーインスタンスです。
|
|
92
|
-
* @returns ビルダーとして自身を返します。
|
|
93
|
-
* @throws すでにストレージが登録されている状態で呼び出された場合にエラーを投げます。
|
|
92
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#config-builder)
|
|
94
93
|
*/
|
|
95
94
|
appendTransformer(transformer) {
|
|
96
|
-
// パイプラインの順序を守るため、終端であるストレージが登録済みでないか確認します。
|
|
97
|
-
if (__classPrivateFieldGet(this, _UniKvsConfig_destinations, "f").length > 0) {
|
|
98
|
-
throw new TransformerRegistrationError();
|
|
99
|
-
}
|
|
100
95
|
__classPrivateFieldGet(this, _UniKvsConfig_transformers, "f").push(transformer);
|
|
101
96
|
return this;
|
|
102
97
|
}
|
|
103
98
|
}
|
|
104
|
-
_UniKvsConfig_UniKvs = new WeakMap(),
|
|
99
|
+
_UniKvsConfig_UniKvs = new WeakMap(), _UniKvsConfig_vars = new WeakMap(), _UniKvsConfig_destinations = new WeakMap(), _UniKvsConfig_transformers = new WeakMap(), _UniKvsConfig_valueSchemaResolver = new WeakMap();
|
|
105
100
|
export default UniKvsConfig;
|