@prismicio/types-internal 2.2.0-alpha.0 → 2.2.0-alpha.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/lib/common/Asset.d.ts +16 -0
- package/lib/common/Asset.js +11 -0
- package/lib/common/Embed.d.ts +15 -0
- package/lib/common/Embed.js +10 -0
- package/lib/common/index.d.ts +2 -0
- package/lib/common/index.js +2 -0
- package/lib/content/Document.d.ts +40 -40
- package/lib/content/fields/GroupContent.d.ts +12 -12
- package/lib/content/fields/GroupContent.js +11 -4
- package/lib/content/fields/WidgetContent.d.ts +56 -56
- package/lib/content/fields/nestable/NestableContent.d.ts +7 -7
- package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +12 -12
- package/lib/content/fields/nestable/RichTextContent/index.d.ts +9 -9
- package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +14 -14
- package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +5 -5
- package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +14 -14
- package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +14 -14
- package/lib/content/fields/slices/Slice/index.d.ts +30 -30
- package/lib/content/fields/slices/SliceItem.d.ts +30 -30
- package/lib/content/fields/slices/SlicesContent.d.ts +42 -42
- package/lib/customtypes/CustomType.d.ts +2 -0
- package/lib/customtypes/CustomType.js +8 -1
- package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -157
- package/lib/customtypes/widgets/nestable/NestableWidget.js +1 -17
- package/lib/import/converters/Document.d.ts +4 -2
- package/lib/import/converters/Document.js +9 -7
- package/lib/import/converters/fields/UID.d.ts +3 -0
- package/lib/import/converters/fields/UID.js +12 -0
- package/lib/import/converters/fields/index.d.ts +1 -0
- package/lib/import/converters/fields/index.js +1 -0
- package/lib/import/converters/fields/nestable/Boolean.d.ts +3 -0
- package/lib/import/converters/fields/nestable/Boolean.js +12 -0
- package/lib/import/converters/fields/nestable/Color.js +9 -6
- package/lib/import/converters/fields/nestable/Date.d.ts +1 -1
- package/lib/import/converters/fields/nestable/Date.js +5 -5
- package/lib/import/converters/fields/nestable/Embed.d.ts +4 -0
- package/lib/import/converters/fields/nestable/Embed.js +32 -0
- package/lib/import/converters/fields/nestable/GeooPoint.d.ts +3 -0
- package/lib/import/converters/fields/nestable/GeooPoint.js +15 -0
- package/lib/import/converters/fields/nestable/Image.d.ts +4 -0
- package/lib/import/converters/fields/nestable/Image.js +55 -0
- package/lib/import/converters/fields/nestable/Link.d.ts +4 -0
- package/lib/import/converters/fields/nestable/Link.js +70 -0
- package/lib/import/converters/fields/nestable/Nestable.d.ts +3 -1
- package/lib/import/converters/fields/nestable/Nestable.js +11 -1
- package/lib/import/converters/fields/nestable/Number.js +9 -6
- package/lib/import/converters/fields/nestable/Select.js +9 -6
- package/lib/import/converters/fields/nestable/Text.js +9 -6
- package/lib/import/converters/fields/nestable/Timestamp.d.ts +1 -1
- package/lib/import/converters/fields/nestable/Timestamp.js +9 -6
- package/lib/import/converters/fields/nestable/index.d.ts +5 -0
- package/lib/import/converters/fields/nestable/index.js +5 -0
- package/lib/import/validators/Document.d.ts +4 -4
- package/lib/import/validators/Document.js +45 -39
- package/lib/import/validators/fields/ImportContent.d.ts +5 -0
- package/lib/import/validators/fields/ImportContent.js +21 -0
- package/lib/import/validators/fields/ImportField.d.ts +125 -0
- package/lib/import/validators/fields/ImportField.js +24 -0
- package/lib/import/validators/fields/UID.d.ts +6 -0
- package/lib/import/validators/fields/UID.js +15 -0
- package/lib/import/validators/fields/index.d.ts +1 -5
- package/lib/import/validators/fields/index.js +1 -0
- package/lib/import/validators/fields/nestable/Boolean.d.ts +6 -0
- package/lib/import/validators/fields/nestable/Boolean.js +6 -0
- package/lib/import/validators/fields/nestable/Color.d.ts +5 -4
- package/lib/import/validators/fields/nestable/Color.js +4 -4
- package/lib/import/validators/fields/nestable/Date.d.ts +5 -3
- package/lib/import/validators/fields/nestable/Date.js +4 -2
- package/lib/import/validators/fields/nestable/Embed.d.ts +10 -0
- package/lib/import/validators/fields/nestable/Embed.js +36 -0
- package/lib/import/validators/fields/nestable/GeoPoint.d.ts +13 -0
- package/lib/import/validators/fields/nestable/GeoPoint.js +13 -0
- package/lib/import/validators/fields/nestable/Image/Decoder.d.ts +26 -0
- package/lib/import/validators/fields/nestable/Image/Decoder.js +40 -0
- package/lib/import/validators/fields/nestable/Image/Validator.d.ts +37 -0
- package/lib/import/validators/fields/nestable/Image/Validator.js +26 -0
- package/lib/import/validators/fields/nestable/Image/index.d.ts +26 -0
- package/lib/import/validators/fields/nestable/Image/index.js +28 -0
- package/lib/import/validators/fields/nestable/Image/model.d.ts +18 -0
- package/lib/import/validators/fields/nestable/Image/model.js +2 -0
- package/lib/import/validators/fields/nestable/Image.d.ts +62 -0
- package/lib/import/validators/fields/nestable/Image.js +76 -0
- package/lib/import/validators/fields/nestable/Link.d.ts +38 -0
- package/lib/import/validators/fields/nestable/Link.js +35 -0
- package/lib/import/validators/fields/nestable/Nestable.d.ts +120 -4
- package/lib/import/validators/fields/nestable/Nestable.js +59 -28
- package/lib/import/validators/fields/nestable/Number.d.ts +16 -9
- package/lib/import/validators/fields/nestable/Number.js +5 -4
- package/lib/import/validators/fields/nestable/Select.d.ts +15 -8
- package/lib/import/validators/fields/nestable/Select.js +4 -2
- package/lib/import/validators/fields/nestable/Text.d.ts +6 -3
- package/lib/import/validators/fields/nestable/Text.js +2 -1
- package/lib/import/validators/fields/nestable/Timestamp.d.ts +5 -3
- package/lib/import/validators/fields/nestable/Timestamp.js +4 -2
- package/lib/import/validators/fields/nestable/index.d.ts +6 -0
- package/lib/import/validators/fields/nestable/index.js +6 -0
- package/lib/utils/DocumentId.d.ts +1 -0
- package/lib/utils/DocumentId.js +7 -0
- package/lib/utils/Objects.d.ts +1 -0
- package/lib/utils/Objects.js +5 -1
- package/lib/validators/BasicTypes.d.ts +8 -0
- package/lib/validators/BasicTypes.js +19 -1
- package/lib/validators/DefaultOrElse.d.ts +5 -0
- package/lib/validators/DefaultOrElse.js +21 -0
- package/lib/validators/NumberRange.d.ts +32 -0
- package/lib/validators/NumberRange.js +40 -0
- package/lib/validators/function.d.ts +20 -0
- package/lib/validators/function.js +41 -1
- package/lib/validators/index.d.ts +2 -1
- package/lib/validators/index.js +4 -2
- package/package.json +3 -2
- package/src/common/Asset.ts +25 -0
- package/src/common/Embed.ts +22 -0
- package/src/common/index.ts +2 -0
- package/src/content/fields/GroupContent.ts +9 -5
- package/src/customtypes/CustomType.ts +13 -0
- package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -17
- package/src/import/converters/Document.ts +22 -11
- package/src/import/converters/fields/UID.ts +13 -0
- package/src/import/converters/fields/index.ts +1 -0
- package/src/import/converters/fields/nestable/Boolean.ts +13 -0
- package/src/import/converters/fields/nestable/Color.ts +7 -5
- package/src/import/converters/fields/nestable/Date.ts +12 -13
- package/src/import/converters/fields/nestable/Embed.ts +37 -0
- package/src/import/converters/fields/nestable/GeooPoint.ts +16 -0
- package/src/import/converters/fields/nestable/Image.ts +73 -0
- package/src/import/converters/fields/nestable/Link.ts +77 -0
- package/src/import/converters/fields/nestable/Nestable.ts +19 -0
- package/src/import/converters/fields/nestable/Number.ts +7 -5
- package/src/import/converters/fields/nestable/Select.ts +7 -5
- package/src/import/converters/fields/nestable/Text.ts +7 -5
- package/src/import/converters/fields/nestable/Timestamp.ts +8 -6
- package/src/import/converters/fields/nestable/index.ts +5 -0
- package/src/import/validators/Document.ts +87 -63
- package/src/import/validators/fields/ImportContent.ts +30 -0
- package/src/import/validators/fields/ImportField.ts +25 -0
- package/src/import/validators/fields/UID.ts +27 -0
- package/src/import/validators/fields/index.ts +1 -7
- package/src/import/validators/fields/nestable/Boolean.ts +7 -0
- package/src/import/validators/fields/nestable/Color.ts +23 -23
- package/src/import/validators/fields/nestable/Date.ts +26 -27
- package/src/import/validators/fields/nestable/Embed.ts +54 -0
- package/src/import/validators/fields/nestable/GeoPoint.ts +21 -0
- package/src/import/validators/fields/nestable/Image/Decoder.ts +61 -0
- package/src/import/validators/fields/nestable/Image/Validator.ts +35 -0
- package/src/import/validators/fields/nestable/Image/index.ts +45 -0
- package/src/import/validators/fields/nestable/Image/model.ts +18 -0
- package/src/import/validators/fields/nestable/Link.ts +54 -0
- package/src/import/validators/fields/nestable/Nestable.ts +65 -26
- package/src/import/validators/fields/nestable/Number.ts +32 -30
- package/src/import/validators/fields/nestable/Select.ts +32 -30
- package/src/import/validators/fields/nestable/Text.ts +6 -6
- package/src/import/validators/fields/nestable/Timestamp.ts +29 -26
- package/src/import/validators/fields/nestable/index.ts +6 -0
- package/src/utils/DocumentId.ts +9 -0
- package/src/utils/Objects.ts +10 -0
- package/src/validators/BasicTypes.ts +48 -0
- package/src/validators/DefaultOrElse.ts +24 -0
- package/src/validators/NumberRange.ts +51 -0
- package/src/validators/function.ts +44 -0
- package/src/validators/index.ts +2 -1
- package/lib/import/converters/fields/utils.d.ts +0 -1
- package/lib/import/converters/fields/utils.js +0 -10
- package/lib/validators/NullOrT.d.ts +0 -2
- package/lib/validators/NullOrT.js +0 -13
- package/src/import/converters/fields/utils.ts +0 -7
- package/src/validators/NullOrT.ts +0 -18
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { isRight } from "fp-ts/lib/Either"
|
|
2
|
+
import * as t from "io-ts"
|
|
3
|
+
|
|
4
|
+
import { EmptyArray, EmptyObject } from "./BasicTypes"
|
|
5
|
+
|
|
6
|
+
export const DefaultOrElse = <I, A, O = A>(inputValidator: t.Type<I>) => {
|
|
7
|
+
return (codec: t.Type<A, O>) =>
|
|
8
|
+
new t.Type<A | null, O | undefined>(
|
|
9
|
+
"NullOrT",
|
|
10
|
+
(u: unknown): u is A | null => null === u || codec.is(u),
|
|
11
|
+
(u: unknown) => {
|
|
12
|
+
if (isRight(inputValidator.decode(u))) return t.success(null)
|
|
13
|
+
return codec.decode(u)
|
|
14
|
+
},
|
|
15
|
+
(chunk) => (chunk ? codec.encode(chunk) : undefined),
|
|
16
|
+
)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const NullOrElse = <A, O = A>(codec: t.Type<A, O>) =>
|
|
20
|
+
DefaultOrElse<null, A, O>(t.null)(codec)
|
|
21
|
+
export const EmptyObjectOrElse = <A, O = A>(codec: t.Type<A, O>) =>
|
|
22
|
+
DefaultOrElse<Record<never, never>, A, O>(EmptyObject)(codec)
|
|
23
|
+
export const EmptyArrayOrElse = <A, O = A>(codec: t.Type<A, O>) =>
|
|
24
|
+
DefaultOrElse<never[], A, O>(EmptyArray)(codec)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as t from "io-ts"
|
|
2
|
+
|
|
3
|
+
import { Number } from "./BasicTypes"
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Creates a custom runtime type for validating that a number falls within a specified range.
|
|
7
|
+
*
|
|
8
|
+
* @param min - The minimum value of the range.
|
|
9
|
+
* @param max - The maximum value of the range.
|
|
10
|
+
* @param fieldName - The name of the field being validated (used in error messages).
|
|
11
|
+
* @returns A runtime type representing the number range validation.
|
|
12
|
+
*
|
|
13
|
+
* * @example
|
|
14
|
+
* // Creating a custom runtime type for age validation
|
|
15
|
+
* const AgeType = numberInRange(18, 99, 'Age');
|
|
16
|
+
*
|
|
17
|
+
* // Valid age
|
|
18
|
+
* const validAgeResult = AgeType.decode(25);
|
|
19
|
+
* if (t.isRight(validAgeResult)) {
|
|
20
|
+
* console.log('Valid age:', validAgeResult.right); // Output: Valid age: 25
|
|
21
|
+
* } else {
|
|
22
|
+
* console.error('Invalid age:', t.left(validAgeResult).map(t.reporter.report));
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // Invalid age
|
|
27
|
+
* const invalidAgeResult = AgeType.decode(15);
|
|
28
|
+
* if (t.isRight(invalidAgeResult)) {
|
|
29
|
+
* console.log('Valid age:', invalidAgeResult.right);
|
|
30
|
+
* } else {
|
|
31
|
+
* console.error('Invalid age:', t.left(invalidAgeResult).map(t.reporter.report));
|
|
32
|
+
* }
|
|
33
|
+
*/
|
|
34
|
+
export default (min: number, max: number, fieldName: string) =>
|
|
35
|
+
Number.pipe(
|
|
36
|
+
new t.Type<number, number, number>(
|
|
37
|
+
"numberInRange",
|
|
38
|
+
(u: unknown): u is number => Number.is(u),
|
|
39
|
+
(u: number, context) => {
|
|
40
|
+
if (u > max || u < min) {
|
|
41
|
+
return t.failure(
|
|
42
|
+
u,
|
|
43
|
+
context,
|
|
44
|
+
`${fieldName} must be a number between ${min} and ${max}`,
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
return t.success(u)
|
|
48
|
+
},
|
|
49
|
+
t.identity,
|
|
50
|
+
),
|
|
51
|
+
)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { either } from "fp-ts"
|
|
2
2
|
import { pipe } from "fp-ts/function"
|
|
3
3
|
import * as t from "io-ts"
|
|
4
|
+
import { withValidate } from "io-ts-types"
|
|
4
5
|
import { mapOutput } from "io-ts-types/mapOutput"
|
|
5
6
|
|
|
6
7
|
export function nullable<A, O>(c: t.Type<A, O>) {
|
|
@@ -69,3 +70,46 @@ export function addType<A, O extends object, I, T extends string>(
|
|
|
69
70
|
): t.Type<A, O & { __TYPE__: T }, I> {
|
|
70
71
|
return mapOutput(codec, (o) => ({ ...o, __TYPE__: t } as const))
|
|
71
72
|
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Returns a clone of the given codec that tries to find sub-error with message already set.
|
|
76
|
+
* If there is such error it just returns sub-errors array.
|
|
77
|
+
* If there is no such error it generates new error with given message.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* expect(
|
|
81
|
+
* withFallbackMessage(
|
|
82
|
+
* t.type({age: withMessage(t.number, () => 'Invalid child')}),
|
|
83
|
+
* () => "Invalid parent"
|
|
84
|
+
* )
|
|
85
|
+
* ).toSubsetEqualLeft([{message: "Invalid child"}])
|
|
86
|
+
* expect(
|
|
87
|
+
* withFallbackMessage(
|
|
88
|
+
* t.type({age: t.number}),
|
|
89
|
+
* () => "Invalid parent"
|
|
90
|
+
* )
|
|
91
|
+
* ).toSubsetEqualLeft([{message: "Invalid parent"}])
|
|
92
|
+
*/
|
|
93
|
+
export function withFallbackMessage<C extends t.Any>(
|
|
94
|
+
codec: C,
|
|
95
|
+
message: (i: t.InputOf<C>, c: t.Context) => string,
|
|
96
|
+
): C {
|
|
97
|
+
return withValidate(codec, (i, c) => {
|
|
98
|
+
return either.mapLeft((errors: t.Errors) => {
|
|
99
|
+
if (errors.find((error) => error.message)) {
|
|
100
|
+
return errors
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return [
|
|
104
|
+
{
|
|
105
|
+
value: i,
|
|
106
|
+
context: c,
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
108
|
+
message: message(i, c),
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
110
|
+
actual: i,
|
|
111
|
+
},
|
|
112
|
+
]
|
|
113
|
+
})(codec.validate(i, c))
|
|
114
|
+
})
|
|
115
|
+
}
|
package/src/validators/index.ts
CHANGED
|
@@ -2,13 +2,14 @@ export * from "./BasicTypes"
|
|
|
2
2
|
export { default as DateFromString } from "./DateFromString"
|
|
3
3
|
export { default as DateFromStringOrNumber } from "./DateFromStringOrNumber"
|
|
4
4
|
export { default as DateFromTsMs } from "./DateFromTsMs"
|
|
5
|
+
export * from "./DefaultOrElse"
|
|
5
6
|
export * as Function from "./function"
|
|
6
7
|
export { default as IntFromNumber } from "./IntFromNumber"
|
|
7
8
|
export { default as IntFromPixels } from "./IntFromPixels"
|
|
8
9
|
export { default as NonEmptyString } from "./NonEmptyString"
|
|
9
10
|
export { default as NonEmptyStringOrNull } from "./NonEmptyStringOrNull"
|
|
10
|
-
export * from "./NullOrT"
|
|
11
11
|
export { default as NumberOrNull } from "./NumberOrNull"
|
|
12
|
+
export { default as NumberRange } from "./NumberRange"
|
|
12
13
|
export { default as StringFromBoolean } from "./StringFromBoolean"
|
|
13
14
|
export { default as StringFromNumber } from "./StringFromNumber"
|
|
14
15
|
export { default as StringOrNull } from "./StringOrNull"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const nullableConverter: <I, O>(value: I | null, converter: (value: I) => O) => O | undefined;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nullableConverter = void 0;
|
|
4
|
-
const nullableConverter = (value, converter) => {
|
|
5
|
-
if (value === null)
|
|
6
|
-
return undefined;
|
|
7
|
-
else
|
|
8
|
-
return converter(value);
|
|
9
|
-
};
|
|
10
|
-
exports.nullableConverter = nullableConverter;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NullOrT = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const fp_ts_1 = require("fp-ts");
|
|
6
|
-
const function_1 = require("fp-ts/function");
|
|
7
|
-
const t = (0, tslib_1.__importStar)(require("io-ts"));
|
|
8
|
-
const NullOrT = (codec) => {
|
|
9
|
-
return (asO) => new t.Type(`NullOr${codec.name}`, (u) => t.null.is(u) || codec.is(u), (u) => {
|
|
10
|
-
return (0, function_1.pipe)(t.union([t.null, codec]).decode(u), fp_ts_1.either.map((decoded) => asO(decoded)));
|
|
11
|
-
}, (f) => f);
|
|
12
|
-
};
|
|
13
|
-
exports.NullOrT = NullOrT;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { either } from "fp-ts"
|
|
2
|
-
import { pipe } from "fp-ts/function"
|
|
3
|
-
import * as t from "io-ts"
|
|
4
|
-
|
|
5
|
-
export const NullOrT = <T, O = T>(codec: t.Type<T>) => {
|
|
6
|
-
return (asO: (value: T | null) => O) =>
|
|
7
|
-
new t.Type<O>(
|
|
8
|
-
`NullOr${codec.name}`,
|
|
9
|
-
(u: unknown): u is O => t.null.is(u) || codec.is(u),
|
|
10
|
-
(u: unknown) => {
|
|
11
|
-
return pipe(
|
|
12
|
-
t.union([t.null, codec]).decode(u),
|
|
13
|
-
either.map((decoded) => asO(decoded)),
|
|
14
|
-
)
|
|
15
|
-
},
|
|
16
|
-
(f) => f,
|
|
17
|
-
)
|
|
18
|
-
}
|