@atproto/lex-schema 0.0.8 → 0.0.10
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/CHANGELOG.md +41 -0
- package/LICENSE.txt +1 -1
- package/dist/core/$type.d.ts +11 -0
- package/dist/core/$type.d.ts.map +1 -1
- package/dist/core/$type.js +4 -0
- package/dist/core/$type.js.map +1 -1
- package/dist/core/schema.d.ts +31 -24
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +38 -8
- package/dist/core/schema.js.map +1 -1
- package/dist/core/string-format.d.ts +35 -35
- package/dist/core/string-format.d.ts.map +1 -1
- package/dist/core/string-format.js +49 -91
- package/dist/core/string-format.js.map +1 -1
- package/dist/core/validation-issue.js +1 -1
- package/dist/core/validation-issue.js.map +1 -1
- package/dist/core/validator.d.ts +53 -32
- package/dist/core/validator.d.ts.map +1 -1
- package/dist/core/validator.js +18 -22
- package/dist/core/validator.js.map +1 -1
- package/dist/external.d.ts +0 -85
- package/dist/external.d.ts.map +1 -1
- package/dist/external.js +0 -164
- package/dist/external.js.map +1 -1
- package/dist/helpers.d.ts +10 -5
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +3 -3
- package/dist/helpers.js.map +1 -1
- package/dist/schema/array.d.ts +9 -5
- package/dist/schema/array.d.ts.map +1 -1
- package/dist/schema/array.js +14 -5
- package/dist/schema/array.js.map +1 -1
- package/dist/schema/blob.d.ts +9 -7
- package/dist/schema/blob.d.ts.map +1 -1
- package/dist/schema/blob.js +9 -5
- package/dist/schema/blob.js.map +1 -1
- package/dist/schema/boolean.d.ts +3 -7
- package/dist/schema/boolean.d.ts.map +1 -1
- package/dist/schema/boolean.js +6 -7
- package/dist/schema/boolean.js.map +1 -1
- package/dist/schema/bytes.d.ts +3 -2
- package/dist/schema/bytes.d.ts.map +1 -1
- package/dist/schema/bytes.js +7 -3
- package/dist/schema/bytes.js.map +1 -1
- package/dist/schema/cid.d.ts +10 -8
- package/dist/schema/cid.d.ts.map +1 -1
- package/dist/schema/cid.js +5 -1
- package/dist/schema/cid.js.map +1 -1
- package/dist/schema/custom.d.ts +6 -5
- package/dist/schema/custom.d.ts.map +1 -1
- package/dist/schema/custom.js +10 -4
- package/dist/schema/custom.js.map +1 -1
- package/dist/schema/dict.d.ts +8 -8
- package/dist/schema/dict.d.ts.map +1 -1
- package/dist/schema/dict.js +11 -2
- package/dist/schema/dict.js.map +1 -1
- package/dist/schema/discriminated-union.d.ts +21 -14
- package/dist/schema/discriminated-union.d.ts.map +1 -1
- package/dist/schema/discriminated-union.js +7 -0
- package/dist/schema/discriminated-union.js.map +1 -1
- package/dist/schema/enum.d.ts +7 -9
- package/dist/schema/enum.d.ts.map +1 -1
- package/dist/schema/enum.js +8 -4
- package/dist/schema/enum.js.map +1 -1
- package/dist/schema/integer.d.ts +5 -5
- package/dist/schema/integer.d.ts.map +1 -1
- package/dist/schema/integer.js +9 -5
- package/dist/schema/integer.js.map +1 -1
- package/dist/schema/intersection.d.ts +4 -4
- package/dist/schema/intersection.d.ts.map +1 -1
- package/dist/schema/intersection.js +5 -0
- package/dist/schema/intersection.js.map +1 -1
- package/dist/schema/literal.d.ts +6 -9
- package/dist/schema/literal.d.ts.map +1 -1
- package/dist/schema/literal.js +7 -4
- package/dist/schema/literal.js.map +1 -1
- package/dist/schema/never.d.ts +3 -2
- package/dist/schema/never.d.ts.map +1 -1
- package/dist/schema/never.js +5 -1
- package/dist/schema/never.js.map +1 -1
- package/dist/schema/null.d.ts +4 -3
- package/dist/schema/null.d.ts.map +1 -1
- package/dist/schema/null.js +6 -4
- package/dist/schema/null.js.map +1 -1
- package/dist/schema/nullable.d.ts +6 -5
- package/dist/schema/nullable.d.ts.map +1 -1
- package/dist/schema/nullable.js +9 -5
- package/dist/schema/nullable.js.map +1 -1
- package/dist/schema/object.d.ts +10 -8
- package/dist/schema/object.d.ts.map +1 -1
- package/dist/schema/object.js +11 -3
- package/dist/schema/object.js.map +1 -1
- package/dist/schema/optional.d.ts +7 -5
- package/dist/schema/optional.d.ts.map +1 -1
- package/dist/schema/optional.js +14 -6
- package/dist/schema/optional.js.map +1 -1
- package/dist/schema/params.d.ts +24 -13
- package/dist/schema/params.d.ts.map +1 -1
- package/dist/schema/params.js +47 -25
- package/dist/schema/params.js.map +1 -1
- package/dist/schema/payload.d.ts +12 -9
- package/dist/schema/payload.d.ts.map +1 -1
- package/dist/schema/payload.js +11 -0
- package/dist/schema/payload.js.map +1 -1
- package/dist/schema/permission-set.d.ts +1 -0
- package/dist/schema/permission-set.d.ts.map +1 -1
- package/dist/schema/permission-set.js +5 -0
- package/dist/schema/permission-set.js.map +1 -1
- package/dist/schema/permission.d.ts +6 -5
- package/dist/schema/permission.d.ts.map +1 -1
- package/dist/schema/permission.js +5 -0
- package/dist/schema/permission.js.map +1 -1
- package/dist/schema/procedure.d.ts +2 -1
- package/dist/schema/procedure.d.ts.map +1 -1
- package/dist/schema/procedure.js +5 -0
- package/dist/schema/procedure.js.map +1 -1
- package/dist/schema/query.d.ts +2 -1
- package/dist/schema/query.d.ts.map +1 -1
- package/dist/schema/query.js +5 -0
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/record.d.ts +48 -30
- package/dist/schema/record.d.ts.map +1 -1
- package/dist/schema/record.js +12 -9
- package/dist/schema/record.js.map +1 -1
- package/dist/schema/ref.d.ts +9 -6
- package/dist/schema/ref.d.ts.map +1 -1
- package/dist/schema/ref.js +9 -16
- package/dist/schema/ref.js.map +1 -1
- package/dist/schema/refine.d.ts +4 -4
- package/dist/schema/refine.d.ts.map +1 -1
- package/dist/schema/refine.js.map +1 -1
- package/dist/schema/regexp.d.ts +4 -3
- package/dist/schema/regexp.d.ts.map +1 -1
- package/dist/schema/regexp.js +5 -0
- package/dist/schema/regexp.js.map +1 -1
- package/dist/schema/string.d.ts +7 -8
- package/dist/schema/string.d.ts.map +1 -1
- package/dist/schema/string.js +13 -19
- package/dist/schema/string.js.map +1 -1
- package/dist/schema/subscription.d.ts +2 -1
- package/dist/schema/subscription.d.ts.map +1 -1
- package/dist/schema/subscription.js +5 -0
- package/dist/schema/subscription.js.map +1 -1
- package/dist/schema/token.d.ts +6 -5
- package/dist/schema/token.d.ts.map +1 -1
- package/dist/schema/token.js +5 -0
- package/dist/schema/token.js.map +1 -1
- package/dist/schema/typed-object.d.ts +43 -26
- package/dist/schema/typed-object.d.ts.map +1 -1
- package/dist/schema/typed-object.js +6 -3
- package/dist/schema/typed-object.js.map +1 -1
- package/dist/schema/typed-ref.d.ts +16 -25
- package/dist/schema/typed-ref.d.ts.map +1 -1
- package/dist/schema/typed-ref.js +7 -17
- package/dist/schema/typed-ref.js.map +1 -1
- package/dist/schema/typed-union.d.ts +9 -21
- package/dist/schema/typed-union.d.ts.map +1 -1
- package/dist/schema/typed-union.js +15 -11
- package/dist/schema/typed-union.js.map +1 -1
- package/dist/schema/union.d.ts +6 -6
- package/dist/schema/union.d.ts.map +1 -1
- package/dist/schema/union.js +7 -5
- package/dist/schema/union.js.map +1 -1
- package/dist/schema/unknown-object.d.ts +5 -4
- package/dist/schema/unknown-object.d.ts.map +1 -1
- package/dist/schema/unknown-object.js +5 -1
- package/dist/schema/unknown-object.js.map +1 -1
- package/dist/schema/unknown.d.ts +3 -2
- package/dist/schema/unknown.d.ts.map +1 -1
- package/dist/schema/unknown.js +5 -1
- package/dist/schema/unknown.js.map +1 -1
- package/dist/schema/with-default.d.ts +9 -0
- package/dist/schema/with-default.d.ts.map +1 -0
- package/dist/schema/with-default.js +27 -0
- package/dist/schema/with-default.js.map +1 -0
- package/dist/schema.d.ts +2 -2
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -4
- package/dist/schema.js.map +1 -1
- package/dist/util/assertion-util.d.ts +0 -6
- package/dist/util/assertion-util.d.ts.map +1 -1
- package/dist/util/assertion-util.js +0 -28
- package/dist/util/assertion-util.js.map +1 -1
- package/dist/util/memoize.d.ts +2 -2
- package/dist/util/memoize.d.ts.map +1 -1
- package/dist/util/memoize.js +23 -39
- package/dist/util/memoize.js.map +1 -1
- package/package.json +3 -3
- package/src/core/$type.test.ts +20 -0
- package/src/core/$type.ts +30 -0
- package/src/core/schema.ts +86 -38
- package/src/core/string-format.ts +119 -158
- package/src/core/validation-issue.ts +1 -1
- package/src/core/validator.ts +93 -53
- package/src/external.ts +0 -404
- package/src/helpers.test.ts +22 -21
- package/src/helpers.ts +14 -14
- package/src/schema/array.test.ts +38 -40
- package/src/schema/array.ts +35 -13
- package/src/schema/blob.test.ts +21 -21
- package/src/schema/blob.ts +19 -17
- package/src/schema/boolean.test.ts +9 -8
- package/src/schema/boolean.ts +7 -13
- package/src/schema/bytes.test.ts +13 -13
- package/src/schema/bytes.ts +13 -8
- package/src/schema/cid.test.ts +3 -3
- package/src/schema/cid.ts +15 -13
- package/src/schema/custom.test.ts +26 -26
- package/src/schema/custom.ts +20 -13
- package/src/schema/dict.test.ts +21 -39
- package/src/schema/dict.ts +28 -19
- package/src/schema/discriminated-union.test.ts +128 -128
- package/src/schema/discriminated-union.ts +45 -26
- package/src/schema/enum.test.ts +17 -16
- package/src/schema/enum.ts +16 -16
- package/src/schema/integer.test.ts +22 -21
- package/src/schema/integer.ts +12 -9
- package/src/schema/intersection.test.ts +10 -10
- package/src/schema/intersection.ts +17 -14
- package/src/schema/literal.test.ts +35 -34
- package/src/schema/literal.ts +12 -15
- package/src/schema/never.test.ts +5 -5
- package/src/schema/never.ts +7 -2
- package/src/schema/null.test.ts +3 -3
- package/src/schema/null.ts +9 -9
- package/src/schema/nullable.test.ts +31 -42
- package/src/schema/nullable.ts +17 -9
- package/src/schema/object.test.ts +10 -12
- package/src/schema/object.ts +27 -18
- package/src/schema/optional.test.ts +21 -28
- package/src/schema/optional.ts +27 -10
- package/src/schema/params.test.ts +471 -47
- package/src/schema/params.ts +72 -38
- package/src/schema/payload.test.ts +150 -156
- package/src/schema/payload.ts +35 -19
- package/src/schema/permission-set.test.ts +206 -273
- package/src/schema/permission-set.ts +8 -0
- package/src/schema/permission.test.ts +177 -177
- package/src/schema/permission.ts +13 -5
- package/src/schema/procedure.test.ts +183 -242
- package/src/schema/procedure.ts +18 -5
- package/src/schema/query.test.ts +186 -200
- package/src/schema/query.ts +16 -4
- package/src/schema/record.test.ts +121 -101
- package/src/schema/record.ts +74 -40
- package/src/schema/ref.test.ts +101 -118
- package/src/schema/ref.ts +33 -28
- package/src/schema/refine.test.ts +28 -28
- package/src/schema/refine.ts +23 -20
- package/src/schema/regexp.test.ts +29 -33
- package/src/schema/regexp.ts +11 -7
- package/src/schema/string.test.ts +35 -35
- package/src/schema/string.ts +24 -33
- package/src/schema/subscription.test.ts +259 -387
- package/src/schema/subscription.ts +16 -4
- package/src/schema/token.test.ts +47 -324
- package/src/schema/token.ts +14 -7
- package/src/schema/typed-object.test.ts +98 -81
- package/src/schema/typed-object.ts +68 -33
- package/src/schema/typed-ref.test.ts +206 -234
- package/src/schema/typed-ref.ts +40 -42
- package/src/schema/typed-union.test.ts +40 -64
- package/src/schema/typed-union.ts +36 -58
- package/src/schema/union.test.ts +17 -27
- package/src/schema/union.ts +20 -16
- package/src/schema/unknown-object.test.ts +8 -8
- package/src/schema/unknown-object.ts +9 -7
- package/src/schema/unknown.test.ts +4 -4
- package/src/schema/unknown.ts +7 -5
- package/src/schema/with-default.ts +35 -0
- package/src/schema.ts +2 -6
- package/src/util/assertion-util.ts +0 -39
- package/src/util/memoize.ts +26 -46
- package/dist/schema/_parameters.d.ts +0 -17
- package/dist/schema/_parameters.d.ts.map +0 -1
- package/dist/schema/_parameters.js +0 -20
- package/dist/schema/_parameters.js.map +0 -1
- package/src/schema/_parameters.test.ts +0 -417
- package/src/schema/_parameters.ts +0 -26
|
@@ -1,30 +1,21 @@
|
|
|
1
|
-
import { Schema,
|
|
2
|
-
export
|
|
1
|
+
import { $Typed, InferInput, InferOutput, Schema, ValidationContext, Validator } from '../core.js';
|
|
2
|
+
export interface TypedObjectValidator<TInput extends {
|
|
3
3
|
$type?: string;
|
|
4
|
-
} =
|
|
5
|
-
$type?: infer T extends string;
|
|
6
|
-
} ? {
|
|
7
|
-
$type: T;
|
|
8
|
-
} & Validator<V & {
|
|
9
|
-
$type?: T;
|
|
10
|
-
}> : never;
|
|
11
|
-
export type TypedRefGetter<V extends {
|
|
4
|
+
} = {
|
|
12
5
|
$type?: string;
|
|
13
|
-
} =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} ? V & {
|
|
19
|
-
$type: T;
|
|
20
|
-
} : never;
|
|
21
|
-
export declare class TypedRefSchema<V extends {
|
|
22
|
-
$type?: string;
|
|
23
|
-
} = any> extends Schema<TypedRefSchemaOutput<V>> {
|
|
6
|
+
}, TOutput extends TInput = TInput> extends Validator<TInput, TOutput> {
|
|
7
|
+
$type: NonNullable<TOutput['$type']>;
|
|
8
|
+
}
|
|
9
|
+
export type TypedRefGetter<out TValidator extends TypedObjectValidator> = () => TValidator;
|
|
10
|
+
export declare class TypedRefSchema<const TValidator extends TypedObjectValidator = TypedObjectValidator> extends Schema<$Typed<InferInput<TValidator>>, $Typed<InferOutput<TValidator>>> {
|
|
24
11
|
#private;
|
|
25
|
-
constructor(getter: TypedRefGetter<
|
|
26
|
-
get
|
|
27
|
-
get $type():
|
|
28
|
-
validateInContext(input: unknown, ctx:
|
|
12
|
+
constructor(getter: TypedRefGetter<TValidator>);
|
|
13
|
+
get validator(): TValidator;
|
|
14
|
+
get $type(): TValidator['$type'];
|
|
15
|
+
validateInContext(input: unknown, ctx: ValidationContext): import("../core.js").ValidationFailure | import("../core.js").ValidationSuccess<InferInput<TValidator>>;
|
|
29
16
|
}
|
|
17
|
+
export declare function typedRef<const TValidator extends TypedObjectValidator>(get: TypedRefGetter<TValidator>): TypedRefSchema<TValidator>;
|
|
18
|
+
export declare function typedRef<TInput extends {
|
|
19
|
+
$type?: string;
|
|
20
|
+
}, TOutput extends TInput = TInput>(get: TypedRefGetter<TypedObjectValidator<TInput, TOutput>>): TypedRefSchema<TypedObjectValidator<TInput, TOutput>>;
|
|
30
21
|
//# sourceMappingURL=typed-ref.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-ref.d.ts","sourceRoot":"","sources":["../../src/schema/typed-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"typed-ref.d.ts","sourceRoot":"","sources":["../../src/schema/typed-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,SAAS,EACV,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,oBAAoB,CACnC,MAAM,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAClC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CACrC;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,CAAC,UAAU,SAAS,oBAAoB,IACpE,MAAM,UAAU,CAAA;AAElB,qBAAa,cAAc,CACzB,KAAK,CAAC,UAAU,SAAS,oBAAoB,GAAG,oBAAoB,CACpE,SAAQ,MAAM,CACd,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAC9B,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAChC;;gBAGa,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC;IAS9C,IAAI,SAAS,IAAI,UAAU,CAE1B;IAED,IAAI,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,CAE/B;IAED,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB;CAUzD;AAGD,wBAAgB,QAAQ,CAAC,KAAK,CAAC,UAAU,SAAS,oBAAoB,EACpE,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,GAC9B,cAAc,CAAC,UAAU,CAAC,CAAA;AAC7B,wBAAgB,QAAQ,CACtB,MAAM,SAAS;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,OAAO,SAAS,MAAM,GAAG,MAAM,EAE/B,GAAG,EAAE,cAAc,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACzD,cAAc,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA"}
|
package/dist/schema/typed-ref.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TypedRefSchema = void 0;
|
|
4
|
+
exports.typedRef = typedRef;
|
|
4
5
|
const core_js_1 = require("../core.js");
|
|
5
6
|
class TypedRefSchema extends core_js_1.Schema {
|
|
6
7
|
#getter;
|
|
@@ -10,25 +11,14 @@ class TypedRefSchema extends core_js_1.Schema {
|
|
|
10
11
|
super();
|
|
11
12
|
this.#getter = getter;
|
|
12
13
|
}
|
|
13
|
-
get
|
|
14
|
-
|
|
15
|
-
// Prevents a getter from depending on itself recursively, also allows GC to
|
|
16
|
-
// clean up the getter function.
|
|
17
|
-
this.#getter = throwAlreadyCalled;
|
|
18
|
-
// Cache the resolved schema on the instance
|
|
19
|
-
Object.defineProperty(this, 'schema', {
|
|
20
|
-
value,
|
|
21
|
-
writable: false,
|
|
22
|
-
enumerable: false,
|
|
23
|
-
configurable: true,
|
|
24
|
-
});
|
|
25
|
-
return value;
|
|
14
|
+
get validator() {
|
|
15
|
+
return this.#getter.call(null);
|
|
26
16
|
}
|
|
27
17
|
get $type() {
|
|
28
|
-
return this.
|
|
18
|
+
return this.validator.$type;
|
|
29
19
|
}
|
|
30
20
|
validateInContext(input, ctx) {
|
|
31
|
-
const result = ctx.validate(input, this.
|
|
21
|
+
const result = ctx.validate(input, this.validator);
|
|
32
22
|
if (!result.success)
|
|
33
23
|
return result;
|
|
34
24
|
if (result.value.$type !== this.$type) {
|
|
@@ -38,7 +28,7 @@ class TypedRefSchema extends core_js_1.Schema {
|
|
|
38
28
|
}
|
|
39
29
|
}
|
|
40
30
|
exports.TypedRefSchema = TypedRefSchema;
|
|
41
|
-
function
|
|
42
|
-
|
|
31
|
+
function typedRef(get) {
|
|
32
|
+
return new TypedRefSchema(get);
|
|
43
33
|
}
|
|
44
34
|
//# sourceMappingURL=typed-ref.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-ref.js","sourceRoot":"","sources":["../../src/schema/typed-ref.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"typed-ref.js","sourceRoot":"","sources":["../../src/schema/typed-ref.ts"],"names":[],"mappings":";;;AAkEA,4BAIC;AAtED,wCAOmB;AAYnB,MAAa,cAEX,SAAQ,gBAGT;IACC,OAAO,CAA4B;IAEnC,YAAY,MAAkC;QAC5C,uEAAuE;QACvE,sEAAsE;QAEtE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;IAC7B,CAAC;IAED,iBAAiB,CAAC,KAAc,EAAE,GAAsB;QACtD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAA;QAElC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3E,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAnCD,wCAmCC;AAYD,SAAgB,QAAQ,CACtB,GAA+B;IAE/B,OAAO,IAAI,cAAc,CAAa,GAAG,CAAC,CAAA;AAC5C,CAAC","sourcesContent":["import {\n $Typed,\n InferInput,\n InferOutput,\n Schema,\n ValidationContext,\n Validator,\n} from '../core.js'\n\nexport interface TypedObjectValidator<\n TInput extends { $type?: string } = { $type?: string },\n TOutput extends TInput = TInput,\n> extends Validator<TInput, TOutput> {\n $type: NonNullable<TOutput['$type']>\n}\n\nexport type TypedRefGetter<out TValidator extends TypedObjectValidator> =\n () => TValidator\n\nexport class TypedRefSchema<\n const TValidator extends TypedObjectValidator = TypedObjectValidator,\n> extends Schema<\n $Typed<InferInput<TValidator>>,\n $Typed<InferOutput<TValidator>>\n> {\n #getter: TypedRefGetter<TValidator>\n\n constructor(getter: TypedRefGetter<TValidator>) {\n // @NOTE In order to avoid circular dependency issues, we don't resolve\n // the schema here. Instead, we resolve it lazily when first accessed.\n\n super()\n\n this.#getter = getter\n }\n\n get validator(): TValidator {\n return this.#getter.call(null)\n }\n\n get $type(): TValidator['$type'] {\n return this.validator.$type\n }\n\n validateInContext(input: unknown, ctx: ValidationContext) {\n const result = ctx.validate(input, this.validator)\n if (!result.success) return result\n\n if (result.value.$type !== this.$type) {\n return ctx.issueInvalidPropertyValue(result.value, '$type', [this.$type])\n }\n\n return result\n }\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedRef<const TValidator extends TypedObjectValidator>(\n get: TypedRefGetter<TValidator>,\n): TypedRefSchema<TValidator>\nexport function typedRef<\n TInput extends { $type?: string },\n TOutput extends TInput = TInput,\n>(\n get: TypedRefGetter<TypedObjectValidator<TInput, TOutput>>,\n): TypedRefSchema<TypedObjectValidator<TInput, TOutput>>\nexport function typedRef<const TValidator extends TypedObjectValidator>(\n get: TypedRefGetter<TValidator>,\n): TypedRefSchema<TValidator> {\n return new TypedRefSchema<TValidator>(get)\n}\n"]}
|
|
@@ -1,24 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TypedRefSchema
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
} & {
|
|
9
|
-
[K in string]: Restricted<'Unknown property'>;
|
|
10
|
-
};
|
|
11
|
-
type TypedRefSchemasToUnion<T extends readonly TypedRefSchema[]> = {
|
|
12
|
-
[K in keyof T]: Infer<T[K]>;
|
|
13
|
-
}[number];
|
|
14
|
-
export type TypedUnionSchemaOutput<TypedRefs extends readonly TypedRefSchema[], Closed extends boolean> = Closed extends true ? TypedRefSchemasToUnion<TypedRefs> : TypedRefSchemasToUnion<TypedRefs> | TypedObject;
|
|
15
|
-
export declare class TypedUnionSchema<TypedRefs extends readonly TypedRefSchema[] = any, Closed extends boolean = any> extends Schema<TypedUnionSchemaOutput<TypedRefs, Closed>> {
|
|
16
|
-
protected readonly refs: TypedRefs;
|
|
17
|
-
readonly closed: Closed;
|
|
18
|
-
constructor(refs: TypedRefs, closed: Closed);
|
|
19
|
-
get refsMap(): Map<unknown, TypedRefs[number]>;
|
|
1
|
+
import { InferInput, InferOutput, Schema, Unknown$TypedObject, ValidationContext } from '../core.js';
|
|
2
|
+
import { TypedRefSchema } from './typed-ref.js';
|
|
3
|
+
export declare class TypedUnionSchema<const TValidators extends readonly TypedRefSchema[] = [], const TClosed extends boolean = boolean> extends Schema<TClosed extends true ? InferInput<TValidators[number]> : InferInput<TValidators[number]> | Unknown$TypedObject, TClosed extends true ? InferOutput<TValidators[number]> : InferOutput<TValidators[number]> | Unknown$TypedObject> {
|
|
4
|
+
protected readonly validators: TValidators;
|
|
5
|
+
readonly closed: TClosed;
|
|
6
|
+
constructor(validators: TValidators, closed: TClosed);
|
|
7
|
+
get validatorsMap(): Map<unknown, TValidators[number]>;
|
|
20
8
|
get $types(): unknown[];
|
|
21
|
-
validateInContext(input: unknown, ctx:
|
|
9
|
+
validateInContext(input: unknown, ctx: ValidationContext): import("../core.js").ValidationFailure | import("../core.js").ValidationSuccess<Record<string, unknown>> | import("../core.js").ValidationSuccess<InferInput<TValidators[number]>>;
|
|
22
10
|
}
|
|
23
|
-
export
|
|
11
|
+
export declare function typedUnion<const R extends readonly TypedRefSchema[], const C extends boolean>(refs: R, closed: C): TypedUnionSchema<R, C>;
|
|
24
12
|
//# sourceMappingURL=typed-union.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-union.d.ts","sourceRoot":"","sources":["../../src/schema/typed-union.ts"],"names":[],"mappings":"AACA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"typed-union.d.ts","sourceRoot":"","sources":["../../src/schema/typed-union.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,qBAAa,gBAAgB,CAC3B,KAAK,CAAC,WAAW,SAAS,SAAS,cAAc,EAAE,GAAG,EAAE,EACxD,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,OAAO,CACvC,SAAQ,MAAM,CACd,OAAO,SAAS,IAAI,GAChB,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAC/B,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,mBAAmB,EACzD,OAAO,SAAS,IAAI,GAChB,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAChC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,mBAAmB,CAC3D;IAEG,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW;aAC1B,MAAM,EAAE,OAAO;gBADZ,UAAU,EAAE,WAAW,EAC1B,MAAM,EAAE,OAAO;IASjC,IAAI,aAAa,IAAI,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAKrD;IAED,IAAI,MAAM,cAET;IAED,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB;CAsBzD;AAGD,wBAAgB,UAAU,CACxB,KAAK,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACzC,KAAK,CAAC,CAAC,SAAS,OAAO,EACvB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,0BAEnB"}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TypedUnionSchema = void 0;
|
|
4
|
+
exports.typedUnion = typedUnion;
|
|
4
5
|
const lex_data_1 = require("@atproto/lex-data");
|
|
5
6
|
const core_js_1 = require("../core.js");
|
|
6
7
|
const lazy_property_js_1 = require("../util/lazy-property.js");
|
|
7
8
|
class TypedUnionSchema extends core_js_1.Schema {
|
|
8
|
-
|
|
9
|
+
validators;
|
|
9
10
|
closed;
|
|
10
|
-
constructor(
|
|
11
|
+
constructor(validators, closed) {
|
|
11
12
|
// @NOTE In order to avoid circular dependency issues, we don't access the
|
|
12
13
|
// refs's schema (or $type) here. Instead, we access them lazily when first
|
|
13
14
|
// needed.
|
|
14
15
|
super();
|
|
15
|
-
this.
|
|
16
|
+
this.validators = validators;
|
|
16
17
|
this.closed = closed;
|
|
17
18
|
}
|
|
18
|
-
get
|
|
19
|
+
get validatorsMap() {
|
|
19
20
|
const map = new Map();
|
|
20
|
-
for (const ref of this.
|
|
21
|
+
for (const ref of this.validators)
|
|
21
22
|
map.set(ref.$type, ref);
|
|
22
|
-
return (0, lazy_property_js_1.lazyProperty)(this, '
|
|
23
|
+
return (0, lazy_property_js_1.lazyProperty)(this, 'validatorsMap', map);
|
|
23
24
|
}
|
|
24
25
|
get $types() {
|
|
25
|
-
return Array.from(this.
|
|
26
|
+
return Array.from(this.validatorsMap.keys());
|
|
26
27
|
}
|
|
27
28
|
validateInContext(input, ctx) {
|
|
28
29
|
if (!(0, lex_data_1.isPlainObject)(input) || !('$type' in input)) {
|
|
29
30
|
return ctx.issueInvalidType(input, '$typed');
|
|
30
31
|
}
|
|
31
32
|
const { $type } = input;
|
|
32
|
-
const
|
|
33
|
-
if (
|
|
34
|
-
|
|
35
|
-
return result;
|
|
33
|
+
const validator = this.validatorsMap.get($type);
|
|
34
|
+
if (validator) {
|
|
35
|
+
return ctx.validate(input, validator);
|
|
36
36
|
}
|
|
37
37
|
if (this.closed) {
|
|
38
38
|
return ctx.issueInvalidPropertyValue(input, '$type', this.$types);
|
|
@@ -44,4 +44,8 @@ class TypedUnionSchema extends core_js_1.Schema {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
exports.TypedUnionSchema = TypedUnionSchema;
|
|
47
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
48
|
+
function typedUnion(refs, closed) {
|
|
49
|
+
return new TypedUnionSchema(refs, closed);
|
|
50
|
+
}
|
|
47
51
|
//# sourceMappingURL=typed-union.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-union.js","sourceRoot":"","sources":["../../src/schema/typed-union.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"typed-union.js","sourceRoot":"","sources":["../../src/schema/typed-union.ts"],"names":[],"mappings":";;;AAqEA,gCAKC;AA1ED,gDAAiD;AACjD,wCAMmB;AACnB,+DAAuD;AAGvD,MAAa,gBAGX,SAAQ,gBAOT;IAEsB;IACH;IAFlB,YACqB,UAAuB,EAC1B,MAAe;QAE/B,0EAA0E;QAC1E,2EAA2E;QAC3E,UAAU;QAEV,KAAK,EAAE,CAAA;QAPY,eAAU,GAAV,UAAU,CAAa;QAC1B,WAAM,GAAN,MAAM,CAAS;IAOjC,CAAC;IAED,IAAI,aAAa;QACf,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgC,CAAA;QACnD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAE1D,OAAO,IAAA,+BAAY,EAAC,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,iBAAiB,CAAC,KAAc,EAAE,GAAsB;QACtD,IAAI,CAAC,IAAA,wBAAa,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnE,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;CACF;AAvDD,4CAuDC;AAED,wBAAwB;AACxB,SAAgB,UAAU,CAGxB,IAAO,EAAE,MAAS;IAClB,OAAO,IAAI,gBAAgB,CAAO,IAAI,EAAE,MAAM,CAAC,CAAA;AACjD,CAAC","sourcesContent":["import { isPlainObject } from '@atproto/lex-data'\nimport {\n InferInput,\n InferOutput,\n Schema,\n Unknown$TypedObject,\n ValidationContext,\n} from '../core.js'\nimport { lazyProperty } from '../util/lazy-property.js'\nimport { TypedRefSchema } from './typed-ref.js'\n\nexport class TypedUnionSchema<\n const TValidators extends readonly TypedRefSchema[] = [],\n const TClosed extends boolean = boolean,\n> extends Schema<\n TClosed extends true\n ? InferInput<TValidators[number]>\n : InferInput<TValidators[number]> | Unknown$TypedObject,\n TClosed extends true\n ? InferOutput<TValidators[number]>\n : InferOutput<TValidators[number]> | Unknown$TypedObject\n> {\n constructor(\n protected readonly validators: TValidators,\n public readonly closed: TClosed,\n ) {\n // @NOTE In order to avoid circular dependency issues, we don't access the\n // refs's schema (or $type) here. Instead, we access them lazily when first\n // needed.\n\n super()\n }\n\n get validatorsMap(): Map<unknown, TValidators[number]> {\n const map = new Map<unknown, TValidators[number]>()\n for (const ref of this.validators) map.set(ref.$type, ref)\n\n return lazyProperty(this, 'validatorsMap', map)\n }\n\n get $types() {\n return Array.from(this.validatorsMap.keys())\n }\n\n validateInContext(input: unknown, ctx: ValidationContext) {\n if (!isPlainObject(input) || !('$type' in input)) {\n return ctx.issueInvalidType(input, '$typed')\n }\n\n const { $type } = input\n\n const validator = this.validatorsMap.get($type)\n if (validator) {\n return ctx.validate(input, validator)\n }\n\n if (this.closed) {\n return ctx.issueInvalidPropertyValue(input, '$type', this.$types)\n }\n\n if (typeof $type !== 'string') {\n return ctx.issueInvalidPropertyType(input, '$type', 'string')\n }\n\n return ctx.success(input)\n }\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function typedUnion<\n const R extends readonly TypedRefSchema[],\n const C extends boolean,\n>(refs: R, closed: C) {\n return new TypedUnionSchema<R, C>(refs, closed)\n}\n"]}
|
package/dist/schema/union.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InferInput, InferOutput, Schema, ValidationContext, ValidationFailure, Validator } from '../core.js';
|
|
2
2
|
export type UnionSchemaValidators = readonly [Validator, ...Validator[]];
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
validateInContext(input: unknown, ctx: ValidatorContext): ValidationResult<UnionSchemaOutput<V>>;
|
|
3
|
+
export declare class UnionSchema<const TValidators extends UnionSchemaValidators = any> extends Schema<InferInput<TValidators[number]>, InferOutput<TValidators[number]>> {
|
|
4
|
+
protected readonly validators: TValidators;
|
|
5
|
+
constructor(validators: TValidators);
|
|
6
|
+
validateInContext(input: unknown, ctx: ValidationContext): ValidationFailure | import("../core.js").ValidationSuccess<unknown>;
|
|
8
7
|
}
|
|
8
|
+
export declare function union<const TValidators extends UnionSchemaValidators>(validators: TValidators): UnionSchema<TValidators>;
|
|
9
9
|
//# sourceMappingURL=union.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../src/schema/union.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../src/schema/union.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,iBAAiB,EAEjB,iBAAiB,EACjB,SAAS,EACV,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;AAExE,qBAAa,WAAW,CACtB,KAAK,CAAC,WAAW,SAAS,qBAAqB,GAAG,GAAG,CACrD,SAAQ,MAAM,CACd,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAC/B,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CACjC;IACa,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW;gBAAvB,UAAU,EAAE,WAAW;IAItD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB;CAYzD;AAGD,wBAAgB,KAAK,CAAC,KAAK,CAAC,WAAW,SAAS,qBAAqB,EACnE,UAAU,EAAE,WAAW,4BAGxB"}
|
package/dist/schema/union.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnionSchema = void 0;
|
|
4
|
+
exports.union = union;
|
|
4
5
|
const core_js_1 = require("../core.js");
|
|
5
6
|
class UnionSchema extends core_js_1.Schema {
|
|
6
7
|
validators;
|
|
@@ -12,15 +13,16 @@ class UnionSchema extends core_js_1.Schema {
|
|
|
12
13
|
const failures = [];
|
|
13
14
|
for (const validator of this.validators) {
|
|
14
15
|
const result = ctx.validate(input, validator);
|
|
15
|
-
if (result.success)
|
|
16
|
+
if (result.success)
|
|
16
17
|
return result;
|
|
17
|
-
|
|
18
|
-
else {
|
|
19
|
-
failures.push(result);
|
|
20
|
-
}
|
|
18
|
+
failures.push(result);
|
|
21
19
|
}
|
|
22
20
|
return ctx.failure(core_js_1.ValidationError.fromFailures(failures));
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
23
|
exports.UnionSchema = UnionSchema;
|
|
24
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
25
|
+
function union(validators) {
|
|
26
|
+
return new UnionSchema(validators);
|
|
27
|
+
}
|
|
26
28
|
//# sourceMappingURL=union.js.map
|
package/dist/schema/union.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/schema/union.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/schema/union.ts"],"names":[],"mappings":";;;AAqCA,sBAIC;AAzCD,wCAQmB;AAInB,MAAa,WAEX,SAAQ,gBAGT;IACgC;IAA/B,YAA+B,UAAuB;QACpD,KAAK,EAAE,CAAA;QADsB,eAAU,GAAV,UAAU,CAAa;IAEtD,CAAC;IAED,iBAAiB,CAAC,KAAc,EAAE,GAAsB;QACtD,MAAM,QAAQ,GAAwB,EAAE,CAAA;QAExC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YAC7C,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,MAAM,CAAA;YAEjC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvB,CAAC;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,yBAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5D,CAAC;CACF;AAtBD,kCAsBC;AAED,wBAAwB;AACxB,SAAgB,KAAK,CACnB,UAAuB;IAEvB,OAAO,IAAI,WAAW,CAAc,UAAU,CAAC,CAAA;AACjD,CAAC","sourcesContent":["import {\n InferInput,\n InferOutput,\n Schema,\n ValidationContext,\n ValidationError,\n ValidationFailure,\n Validator,\n} from '../core.js'\n\nexport type UnionSchemaValidators = readonly [Validator, ...Validator[]]\n\nexport class UnionSchema<\n const TValidators extends UnionSchemaValidators = any,\n> extends Schema<\n InferInput<TValidators[number]>,\n InferOutput<TValidators[number]>\n> {\n constructor(protected readonly validators: TValidators) {\n super()\n }\n\n validateInContext(input: unknown, ctx: ValidationContext) {\n const failures: ValidationFailure[] = []\n\n for (const validator of this.validators) {\n const result = ctx.validate(input, validator)\n if (result.success) return result\n\n failures.push(result)\n }\n\n return ctx.failure(ValidationError.fromFailures(failures))\n }\n}\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function union<const TValidators extends UnionSchemaValidators>(\n validators: TValidators,\n) {\n return new UnionSchema<TValidators>(validators)\n}\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { LexMap } from '@atproto/lex-data';
|
|
2
|
-
import { Schema,
|
|
3
|
-
export type
|
|
4
|
-
export declare class UnknownObjectSchema extends Schema<
|
|
5
|
-
validateInContext(input: unknown, ctx:
|
|
2
|
+
import { Schema, ValidationContext } from '../core.js';
|
|
3
|
+
export type UnknownObject = LexMap;
|
|
4
|
+
export declare class UnknownObjectSchema extends Schema<UnknownObject> {
|
|
5
|
+
validateInContext(input: unknown, ctx: ValidationContext): import("../core.js").ValidationResult<LexMap>;
|
|
6
6
|
}
|
|
7
|
+
export declare const unknownObject: () => UnknownObjectSchema;
|
|
7
8
|
//# sourceMappingURL=unknown-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown-object.d.ts","sourceRoot":"","sources":["../../src/schema/unknown-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"unknown-object.d.ts","sourceRoot":"","sources":["../../src/schema/unknown-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAGtD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAElC,qBAAa,mBAAoB,SAAQ,MAAM,CAAC,aAAa,CAAC;IAC5D,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB;CAOzD;AAED,eAAO,MAAM,aAAa,2BAExB,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnknownObjectSchema = void 0;
|
|
3
|
+
exports.unknownObject = exports.UnknownObjectSchema = void 0;
|
|
4
4
|
const lex_data_1 = require("@atproto/lex-data");
|
|
5
5
|
const core_js_1 = require("../core.js");
|
|
6
|
+
const memoize_js_1 = require("../util/memoize.js");
|
|
6
7
|
class UnknownObjectSchema extends core_js_1.Schema {
|
|
7
8
|
validateInContext(input, ctx) {
|
|
8
9
|
if ((0, lex_data_1.isLexMap)(input)) {
|
|
@@ -12,4 +13,7 @@ class UnknownObjectSchema extends core_js_1.Schema {
|
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
exports.UnknownObjectSchema = UnknownObjectSchema;
|
|
16
|
+
exports.unknownObject = (0, memoize_js_1.memoizedOptions)(function () {
|
|
17
|
+
return new UnknownObjectSchema();
|
|
18
|
+
});
|
|
15
19
|
//# sourceMappingURL=unknown-object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown-object.js","sourceRoot":"","sources":["../../src/schema/unknown-object.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"unknown-object.js","sourceRoot":"","sources":["../../src/schema/unknown-object.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AACpD,wCAAsD;AACtD,mDAAoD;AAIpD,MAAa,mBAAoB,SAAQ,gBAAqB;IAC5D,iBAAiB,CAAC,KAAc,EAAE,GAAsB;QACtD,IAAI,IAAA,mBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC/C,CAAC;CACF;AARD,kDAQC;AAEY,QAAA,aAAa,GAAiB,IAAA,4BAAe,EAAC;IACzD,OAAO,IAAI,mBAAmB,EAAE,CAAA;AAClC,CAAC,CAAC,CAAA","sourcesContent":["import { LexMap, isLexMap } from '@atproto/lex-data'\nimport { Schema, ValidationContext } from '../core.js'\nimport { memoizedOptions } from '../util/memoize.js'\n\nexport type UnknownObject = LexMap\n\nexport class UnknownObjectSchema extends Schema<UnknownObject> {\n validateInContext(input: unknown, ctx: ValidationContext) {\n if (isLexMap(input)) {\n return ctx.success(input)\n }\n\n return ctx.issueInvalidType(input, 'unknown')\n }\n}\n\nexport const unknownObject = /*#__PURE__*/ memoizedOptions(function () {\n return new UnknownObjectSchema()\n})\n"]}
|
package/dist/schema/unknown.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Schema,
|
|
1
|
+
import { Schema, ValidationContext } from '../core.js';
|
|
2
2
|
export declare class UnknownSchema extends Schema<unknown> {
|
|
3
|
-
validateInContext(input: unknown, ctx:
|
|
3
|
+
validateInContext(input: unknown, ctx: ValidationContext): import("../core.js").ValidationResult<unknown>;
|
|
4
4
|
}
|
|
5
|
+
export declare const unknown: () => UnknownSchema;
|
|
5
6
|
//# sourceMappingURL=unknown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown.d.ts","sourceRoot":"","sources":["../../src/schema/unknown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"unknown.d.ts","sourceRoot":"","sources":["../../src/schema/unknown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAGtD,qBAAa,aAAc,SAAQ,MAAM,CAAC,OAAO,CAAC;IAChD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB;CAGzD;AAED,eAAO,MAAM,OAAO,qBAElB,CAAA"}
|
package/dist/schema/unknown.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnknownSchema = void 0;
|
|
3
|
+
exports.unknown = exports.UnknownSchema = void 0;
|
|
4
4
|
const core_js_1 = require("../core.js");
|
|
5
|
+
const memoize_js_1 = require("../util/memoize.js");
|
|
5
6
|
class UnknownSchema extends core_js_1.Schema {
|
|
6
7
|
validateInContext(input, ctx) {
|
|
7
8
|
return ctx.success(input);
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
exports.UnknownSchema = UnknownSchema;
|
|
12
|
+
exports.unknown = (0, memoize_js_1.memoizedOptions)(function () {
|
|
13
|
+
return new UnknownSchema();
|
|
14
|
+
});
|
|
11
15
|
//# sourceMappingURL=unknown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown.js","sourceRoot":"","sources":["../../src/schema/unknown.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"unknown.js","sourceRoot":"","sources":["../../src/schema/unknown.ts"],"names":[],"mappings":";;;AAAA,wCAAsD;AACtD,mDAAoD;AAEpD,MAAa,aAAc,SAAQ,gBAAe;IAChD,iBAAiB,CAAC,KAAc,EAAE,GAAsB;QACtD,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;CACF;AAJD,sCAIC;AAEY,QAAA,OAAO,GAAiB,IAAA,4BAAe,EAAC;IACnD,OAAO,IAAI,aAAa,EAAE,CAAA;AAC5B,CAAC,CAAC,CAAA","sourcesContent":["import { Schema, ValidationContext } from '../core.js'\nimport { memoizedOptions } from '../util/memoize.js'\n\nexport class UnknownSchema extends Schema<unknown> {\n validateInContext(input: unknown, ctx: ValidationContext) {\n return ctx.success(input)\n }\n}\n\nexport const unknown = /*#__PURE__*/ memoizedOptions(function () {\n return new UnknownSchema()\n})\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InferInput, InferOutput, Schema, ValidationContext, Validator } from '../core.js';
|
|
2
|
+
export declare class WithDefaultSchema<const TValidator extends Validator> extends Schema<InferInput<TValidator>, InferOutput<TValidator>> {
|
|
3
|
+
readonly validator: TValidator;
|
|
4
|
+
readonly defaultValue: InferInput<TValidator>;
|
|
5
|
+
constructor(validator: TValidator, defaultValue: InferInput<TValidator>);
|
|
6
|
+
validateInContext(input: unknown, ctx: ValidationContext): import("../core.js").ValidationResult<InferInput<TValidator>>;
|
|
7
|
+
}
|
|
8
|
+
export declare function withDefault<const TValidator extends Validator>(validator: TValidator, defaultValue: InferInput<TValidator>): WithDefaultSchema<TValidator>;
|
|
9
|
+
//# sourceMappingURL=with-default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-default.d.ts","sourceRoot":"","sources":["../../src/schema/with-default.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,SAAS,EACV,MAAM,YAAY,CAAA;AAEnB,qBAAa,iBAAiB,CAC5B,KAAK,CAAC,UAAU,SAAS,SAAS,CAClC,SAAQ,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAE7D,QAAQ,CAAC,SAAS,EAAE,UAAU;IAC9B,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC;gBADpC,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC;IAK/C,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB;CASzD;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,UAAU,SAAS,SAAS,EAC5D,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,iCAGrC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WithDefaultSchema = void 0;
|
|
4
|
+
exports.withDefault = withDefault;
|
|
5
|
+
const core_js_1 = require("../core.js");
|
|
6
|
+
class WithDefaultSchema extends core_js_1.Schema {
|
|
7
|
+
validator;
|
|
8
|
+
defaultValue;
|
|
9
|
+
constructor(validator, defaultValue) {
|
|
10
|
+
super();
|
|
11
|
+
this.validator = validator;
|
|
12
|
+
this.defaultValue = defaultValue;
|
|
13
|
+
}
|
|
14
|
+
validateInContext(input, ctx) {
|
|
15
|
+
// When in a validation context, the output should not be altered,
|
|
16
|
+
// so we don't apply the default.
|
|
17
|
+
if (input === undefined && ctx.options.mode !== 'validate') {
|
|
18
|
+
return ctx.validate(this.defaultValue, this.validator);
|
|
19
|
+
}
|
|
20
|
+
return ctx.validate(input, this.validator);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.WithDefaultSchema = WithDefaultSchema;
|
|
24
|
+
function withDefault(validator, defaultValue) {
|
|
25
|
+
return new WithDefaultSchema(validator, defaultValue);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=with-default.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-default.js","sourceRoot":"","sources":["../../src/schema/with-default.ts"],"names":[],"mappings":";;;AA6BA,kCAKC;AAlCD,wCAMmB;AAEnB,MAAa,iBAEX,SAAQ,gBAAuD;IAEpD;IACA;IAFX,YACW,SAAqB,EACrB,YAAoC;QAE7C,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAY;QACrB,iBAAY,GAAZ,YAAY,CAAwB;IAG/C,CAAC;IAED,iBAAiB,CAAC,KAAc,EAAE,GAAsB;QACtD,kEAAkE;QAClE,iCAAiC;QACjC,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3D,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACxD,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5C,CAAC;CACF;AAnBD,8CAmBC;AAED,SAAgB,WAAW,CACzB,SAAqB,EACrB,YAAoC;IAEpC,OAAO,IAAI,iBAAiB,CAAa,SAAS,EAAE,YAAY,CAAC,CAAA;AACnE,CAAC","sourcesContent":["import {\n InferInput,\n InferOutput,\n Schema,\n ValidationContext,\n Validator,\n} from '../core.js'\n\nexport class WithDefaultSchema<\n const TValidator extends Validator,\n> extends Schema<InferInput<TValidator>, InferOutput<TValidator>> {\n constructor(\n readonly validator: TValidator,\n readonly defaultValue: InferInput<TValidator>,\n ) {\n super()\n }\n\n validateInContext(input: unknown, ctx: ValidationContext) {\n // When in a validation context, the output should not be altered,\n // so we don't apply the default.\n if (input === undefined && ctx.options.mode !== 'validate') {\n return ctx.validate(this.defaultValue, this.validator)\n }\n\n return ctx.validate(input, this.validator)\n }\n}\n\nexport function withDefault<const TValidator extends Validator>(\n validator: TValidator,\n defaultValue: InferInput<TValidator>,\n) {\n return new WithDefaultSchema<TValidator>(validator, defaultValue)\n}\n"]}
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export * from './schema/_parameters.js';
|
|
2
|
-
export * from './schema/refine.js';
|
|
3
1
|
export * from './schema/array.js';
|
|
4
2
|
export * from './schema/blob.js';
|
|
5
3
|
export * from './schema/boolean.js';
|
|
@@ -22,7 +20,9 @@ export * from './schema/intersection.js';
|
|
|
22
20
|
export * from './schema/nullable.js';
|
|
23
21
|
export * from './schema/optional.js';
|
|
24
22
|
export * from './schema/ref.js';
|
|
23
|
+
export * from './schema/refine.js';
|
|
25
24
|
export * from './schema/union.js';
|
|
25
|
+
export * from './schema/with-default.js';
|
|
26
26
|
export * from './schema/params.js';
|
|
27
27
|
export * from './schema/payload.js';
|
|
28
28
|
export * from './schema/permission-set.js';
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AAGnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AAGxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA"}
|
package/dist/schema.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
// Global schemas
|
|
5
|
-
tslib_1.__exportStar(require("./schema/_parameters.js"), exports);
|
|
6
|
-
// Utilities
|
|
7
|
-
tslib_1.__exportStar(require("./schema/refine.js"), exports);
|
|
8
4
|
// Concrete Types
|
|
9
5
|
tslib_1.__exportStar(require("./schema/array.js"), exports);
|
|
10
6
|
tslib_1.__exportStar(require("./schema/blob.js"), exports);
|
|
@@ -29,7 +25,9 @@ tslib_1.__exportStar(require("./schema/intersection.js"), exports);
|
|
|
29
25
|
tslib_1.__exportStar(require("./schema/nullable.js"), exports);
|
|
30
26
|
tslib_1.__exportStar(require("./schema/optional.js"), exports);
|
|
31
27
|
tslib_1.__exportStar(require("./schema/ref.js"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./schema/refine.js"), exports);
|
|
32
29
|
tslib_1.__exportStar(require("./schema/union.js"), exports);
|
|
30
|
+
tslib_1.__exportStar(require("./schema/with-default.js"), exports);
|
|
33
31
|
// Lexicon specific Types
|
|
34
32
|
tslib_1.__exportStar(require("./schema/params.js"), exports);
|
|
35
33
|
tslib_1.__exportStar(require("./schema/payload.js"), exports);
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,4DAAiC;AACjC,2DAAgC;AAChC,8DAAmC;AACnC,4DAAiC;AACjC,0DAA+B;AAC/B,2DAAgC;AAChC,2DAAgC;AAChC,8DAAmC;AACnC,8DAAmC;AACnC,4DAAiC;AACjC,2DAAgC;AAChC,6DAAkC;AAClC,6DAAkC;AAClC,6DAAkC;AAClC,qEAA0C;AAC1C,8DAAmC;AAEnC,kBAAkB;AAClB,6DAAkC;AAClC,0EAA+C;AAC/C,mEAAwC;AACxC,+DAAoC;AACpC,+DAAoC;AACpC,0DAA+B;AAC/B,6DAAkC;AAClC,4DAAiC;AACjC,mEAAwC;AAExC,yBAAyB;AACzB,6DAAkC;AAClC,8DAAmC;AACnC,qEAA0C;AAC1C,iEAAsC;AACtC,gEAAqC;AACrC,4DAAiC;AACjC,6DAAkC;AAClC,mEAAwC;AACxC,4DAAiC;AACjC,mEAAwC;AACxC,gEAAqC;AACrC,kEAAuC","sourcesContent":["// Concrete Types\nexport * from './schema/array.js'\nexport * from './schema/blob.js'\nexport * from './schema/boolean.js'\nexport * from './schema/bytes.js'\nexport * from './schema/cid.js'\nexport * from './schema/dict.js'\nexport * from './schema/enum.js'\nexport * from './schema/integer.js'\nexport * from './schema/literal.js'\nexport * from './schema/never.js'\nexport * from './schema/null.js'\nexport * from './schema/object.js'\nexport * from './schema/regexp.js'\nexport * from './schema/string.js'\nexport * from './schema/unknown-object.js'\nexport * from './schema/unknown.js'\n\n// Composite Types\nexport * from './schema/custom.js'\nexport * from './schema/discriminated-union.js'\nexport * from './schema/intersection.js'\nexport * from './schema/nullable.js'\nexport * from './schema/optional.js'\nexport * from './schema/ref.js'\nexport * from './schema/refine.js'\nexport * from './schema/union.js'\nexport * from './schema/with-default.js'\n\n// Lexicon specific Types\nexport * from './schema/params.js'\nexport * from './schema/payload.js'\nexport * from './schema/permission-set.js'\nexport * from './schema/permission.js'\nexport * from './schema/procedure.js'\nexport * from './schema/query.js'\nexport * from './schema/record.js'\nexport * from './schema/subscription.js'\nexport * from './schema/token.js'\nexport * from './schema/typed-object.js'\nexport * from './schema/typed-ref.js'\nexport * from './schema/typed-union.js'\n"]}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
export type AssertFn<T> = <I extends string>(input: I) => asserts input is I & T;
|
|
2
|
-
export type CastFn<T> = <I extends string>(input: I) => I & T;
|
|
3
1
|
export type CheckFn<T> = <I extends string>(input: I) => input is I & T;
|
|
4
|
-
export declare function createAssertFunction<T extends string>(checkFn: (input: string) => input is T, errorMessage?: string): AssertFn<T>;
|
|
5
|
-
export declare function createAssertFunction<T extends string>(checkFn: (input: string) => boolean, errorMessage?: string): AssertFn<T>;
|
|
6
|
-
export declare function createCastFunction<T>(assertFn: AssertFn<T>): CastFn<T>;
|
|
7
|
-
export declare function createCheckFunction<T>(assertFn: AssertFn<T>): CheckFn<T>;
|
|
8
2
|
//# sourceMappingURL=assertion-util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-util.d.ts","sourceRoot":"","sources":["../../src/util/assertion-util.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"assertion-util.d.ts","sourceRoot":"","sources":["../../src/util/assertion-util.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA"}
|
|
@@ -1,31 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createAssertFunction = createAssertFunction;
|
|
4
|
-
exports.createCastFunction = createCastFunction;
|
|
5
|
-
exports.createCheckFunction = createCheckFunction;
|
|
6
|
-
function createAssertFunction(checkFn, errorMessage = 'Invalid format') {
|
|
7
|
-
return (input) => {
|
|
8
|
-
if (!checkFn(input))
|
|
9
|
-
throw new Error(errorMessage);
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
/*@__NO_SIDE_EFFECTS__*/
|
|
13
|
-
function createCastFunction(assertFn) {
|
|
14
|
-
return (input) => {
|
|
15
|
-
assertFn(input);
|
|
16
|
-
return input;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/*@__NO_SIDE_EFFECTS__ */
|
|
20
|
-
function createCheckFunction(assertFn) {
|
|
21
|
-
return (input) => {
|
|
22
|
-
try {
|
|
23
|
-
assertFn(input);
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
3
|
//# sourceMappingURL=assertion-util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion-util.js","sourceRoot":"","sources":["../../src/util/assertion-util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assertion-util.js","sourceRoot":"","sources":["../../src/util/assertion-util.ts"],"names":[],"mappings":"","sourcesContent":["export type CheckFn<T> = <I extends string>(input: I) => input is I & T\n"]}
|