@jbrowse/mobx-state-tree 5.4.4 → 5.4.6
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 +1 -0
- package/dist/core/action.d.ts +87 -0
- package/dist/core/action.js.map +1 -0
- package/dist/core/actionContext.d.ts +27 -0
- package/dist/core/actionContext.js.map +1 -0
- package/dist/core/flow.d.ts +69 -0
- package/dist/core/flow.js.map +1 -0
- package/dist/core/json-patch.d.ts +46 -0
- package/dist/core/json-patch.js.map +1 -0
- package/dist/core/mst-operations.d.ts +459 -0
- package/dist/core/mst-operations.js.map +1 -0
- package/dist/core/node/BaseNode.d.ts +62 -0
- package/dist/core/node/BaseNode.js.map +1 -0
- package/dist/core/node/Hook.d.ts +17 -0
- package/dist/core/node/Hook.js.map +1 -0
- package/dist/core/node/create-node.d.ts +16 -0
- package/dist/core/node/create-node.js.map +1 -0
- package/dist/core/node/identifier-cache.d.ts +19 -0
- package/dist/core/node/identifier-cache.js.map +1 -0
- package/dist/core/node/livelinessChecking.d.ts +37 -0
- package/dist/core/node/livelinessChecking.js.map +1 -0
- package/dist/core/node/node-utils.d.ts +83 -0
- package/dist/core/node/node-utils.js.map +1 -0
- package/dist/core/node/object-node.d.ts +99 -0
- package/dist/core/node/object-node.js.map +1 -0
- package/dist/core/node/scalar-node.d.ts +19 -0
- package/dist/core/node/scalar-node.js.map +1 -0
- package/dist/core/process.d.ts +50 -0
- package/dist/core/process.js.map +1 -0
- package/dist/core/type/type-checker.d.ts +60 -0
- package/dist/core/type/type-checker.js.map +1 -0
- package/dist/core/type/type.d.ts +317 -0
- package/dist/core/type/type.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +38 -0
- package/dist/internal.js.map +1 -0
- package/dist/middlewares/create-action-tracking-middleware.d.ts +24 -0
- package/dist/middlewares/create-action-tracking-middleware.js.map +1 -0
- package/dist/middlewares/createActionTrackingMiddleware2.d.ts +34 -0
- package/dist/middlewares/createActionTrackingMiddleware2.js.map +1 -0
- package/dist/middlewares/on-action.d.ts +87 -0
- package/dist/middlewares/on-action.js.map +1 -0
- package/dist/types/complex-types/array.d.ts +80 -0
- package/dist/types/complex-types/array.js.map +1 -0
- package/dist/types/complex-types/map.d.ts +110 -0
- package/dist/types/complex-types/map.js.map +1 -0
- package/dist/types/complex-types/model.d.ts +192 -0
- package/dist/types/complex-types/model.js.map +1 -0
- package/dist/types/index.d.ts +32 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/primitives.d.ts +124 -0
- package/dist/types/primitives.js.map +1 -0
- package/dist/types/utility-types/custom.d.ts +74 -0
- package/dist/types/utility-types/custom.js.map +1 -0
- package/dist/types/utility-types/enumeration.d.ts +5 -0
- package/dist/types/utility-types/enumeration.js.map +1 -0
- package/dist/types/utility-types/frozen.d.ts +23 -0
- package/dist/types/utility-types/frozen.js.map +1 -0
- package/dist/types/utility-types/identifier.d.ts +86 -0
- package/dist/types/utility-types/identifier.js.map +1 -0
- package/dist/types/utility-types/late.d.ts +10 -0
- package/dist/types/utility-types/late.js.map +1 -0
- package/dist/types/utility-types/lazy.d.ts +22 -0
- package/dist/types/utility-types/lazy.js.map +1 -0
- package/dist/types/utility-types/literal.d.ts +37 -0
- package/dist/types/utility-types/literal.js.map +1 -0
- package/dist/types/utility-types/maybe.d.ts +26 -0
- package/dist/types/utility-types/maybe.js.map +1 -0
- package/dist/types/utility-types/optional.d.ts +41 -0
- package/dist/types/utility-types/optional.js.map +1 -0
- package/dist/types/utility-types/reference.d.ts +89 -0
- package/dist/types/utility-types/reference.js.map +1 -0
- package/dist/types/utility-types/refinement.d.ts +10 -0
- package/dist/types/utility-types/refinement.js.map +1 -0
- package/dist/types/utility-types/snapshotProcessor.d.ts +63 -0
- package/dist/types/utility-types/snapshotProcessor.js.map +1 -0
- package/dist/types/utility-types/union.d.ts +73 -0
- package/dist/types/utility-types/union.js.map +1 -0
- package/dist/utils.d.ts +230 -0
- package/dist/utils.js.map +1 -0
- package/package.json +6 -12
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { type AnyObjectNode, type IType, type IValidationContext, type IValidationResult, SimpleType, TypeFlags } from "../../internal.ts";
|
|
2
|
+
export interface CustomTypeOptions<S, T> {
|
|
3
|
+
/** Friendly name */
|
|
4
|
+
name: string;
|
|
5
|
+
/** given a serialized value and environment, how to turn it into the target type */
|
|
6
|
+
fromSnapshot(snapshot: S, env?: any): T;
|
|
7
|
+
/** return the serialization of the current value */
|
|
8
|
+
toSnapshot(value: T): S;
|
|
9
|
+
/** if true, this is a converted value, if false, it's a snapshot */
|
|
10
|
+
isTargetType(value: T | S): boolean;
|
|
11
|
+
/** a non empty string is assumed to be a validation error */
|
|
12
|
+
getValidationMessage(snapshot: S): string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `types.custom` - Creates a custom type. Custom types can be used for arbitrary immutable values, that have a serializable representation. For example, to create your own Date representation, Decimal type etc.
|
|
16
|
+
*
|
|
17
|
+
* The signature of the options is:
|
|
18
|
+
* ```ts
|
|
19
|
+
* export interface CustomTypeOptions<S, T> {
|
|
20
|
+
* // Friendly name
|
|
21
|
+
* name: string
|
|
22
|
+
* // given a serialized value and environment, how to turn it into the target type
|
|
23
|
+
* fromSnapshot(snapshot: S, env: any): T
|
|
24
|
+
* // return the serialization of the current value
|
|
25
|
+
* toSnapshot(value: T): S
|
|
26
|
+
* // if true, this is a converted value, if false, it's a snapshot
|
|
27
|
+
* isTargetType(value: T | S): value is T
|
|
28
|
+
* // a non empty string is assumed to be a validation error
|
|
29
|
+
* getValidationMessage?(snapshot: S): string
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* Example:
|
|
34
|
+
* ```ts
|
|
35
|
+
* const DecimalPrimitive = types.custom<string, Decimal>({
|
|
36
|
+
* name: "Decimal",
|
|
37
|
+
* fromSnapshot(value: string) {
|
|
38
|
+
* return new Decimal(value)
|
|
39
|
+
* },
|
|
40
|
+
* toSnapshot(value: Decimal) {
|
|
41
|
+
* return value.toString()
|
|
42
|
+
* },
|
|
43
|
+
* isTargetType(value: string | Decimal): boolean {
|
|
44
|
+
* return value instanceof Decimal
|
|
45
|
+
* },
|
|
46
|
+
* getValidationMessage(value: string): string {
|
|
47
|
+
* if (/^-?\d+\.\d+$/.test(value)) return "" // OK
|
|
48
|
+
* return `'${value}' doesn't look like a valid decimal number`
|
|
49
|
+
* }
|
|
50
|
+
* })
|
|
51
|
+
*
|
|
52
|
+
* const Wallet = types.model({
|
|
53
|
+
* balance: DecimalPrimitive
|
|
54
|
+
* })
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @param options
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
export declare function custom<S, T>(options: CustomTypeOptions<S, T>): IType<S | T, S, T>;
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
* @hidden
|
|
64
|
+
*/
|
|
65
|
+
export declare class CustomType<S, T> extends SimpleType<S | T, S, T> {
|
|
66
|
+
protected readonly options: CustomTypeOptions<S, T>;
|
|
67
|
+
readonly flags = TypeFlags.Custom;
|
|
68
|
+
constructor(options: CustomTypeOptions<S, T>);
|
|
69
|
+
describe(): string;
|
|
70
|
+
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
71
|
+
getSnapshot(node: this["N"]): S;
|
|
72
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: S | T): this["N"];
|
|
73
|
+
reconcile(current: this["N"], value: S | T, parent: AnyObjectNode, subpath: string): this["N"];
|
|
74
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../src/types/utility-types/custom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ISimpleType } from "../../internal.ts";
|
|
2
|
+
/** @hidden */
|
|
3
|
+
export type UnionStringArray<T extends readonly string[]> = T[number];
|
|
4
|
+
export declare function enumeration<T extends readonly string[]>(options: T): ISimpleType<UnionStringArray<T>>;
|
|
5
|
+
export declare function enumeration<T extends string>(name: string, options: T[]): ISimpleType<UnionStringArray<T[]>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enumeration.js","sourceRoot":"","sources":["../../../src/types/utility-types/enumeration.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,OAAO,EACP,OAAO,EACP,KAAK,EACN,MAAM,mBAAmB,CAAA;AAkB1B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CACzB,IAAuB,EACvB,OAAa;IAEb,MAAM,WAAW,GAAa,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IACxE,oBAAoB;IACpB,IAAI,OAAO,EAAE,EAAE,CAAC;QACd,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChC,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACtE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type AnyObjectNode, type IAnyType, type IType, type IValidationContext, type IValidationResult, SimpleType, TypeFlags } from "../../internal.ts";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
* @hidden
|
|
5
|
+
*/
|
|
6
|
+
export declare class Frozen<T> extends SimpleType<T, T, T> {
|
|
7
|
+
private subType?;
|
|
8
|
+
flags: TypeFlags;
|
|
9
|
+
constructor(subType?: IAnyType | undefined);
|
|
10
|
+
describe(): string;
|
|
11
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, value: this["C"]): this["N"];
|
|
12
|
+
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
13
|
+
}
|
|
14
|
+
export declare function frozen<C>(subType: IType<C, any, any>): IType<C, C, C>;
|
|
15
|
+
export declare function frozen<T>(defaultValue: T): IType<T | undefined | null, T, T>;
|
|
16
|
+
export declare function frozen<T = any>(): IType<T, T, T>;
|
|
17
|
+
/**
|
|
18
|
+
* Returns if a given value represents a frozen type.
|
|
19
|
+
*
|
|
20
|
+
* @param type
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
export declare function isFrozenType<IT extends IType<T | any, T, T>, T = any>(type: IT): type is IT;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frozen.js","sourceRoot":"","sources":["../../../src/types/utility-types/frozen.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAE1B;;;GAGG;AACH,MAAM,OAAO,MAAU,SAAQ,UAAmB;IAG5B;IAFpB,KAAK,GAAG,SAAS,CAAC,MAAM,CAAA;IAExB,YAAoB,OAAkB;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QADnC,YAAO,GAAP,OAAO,CAAW;IAEtC,CAAC;IAED,QAAQ;QACN,OAAO,uBAAuB,CAAA;IAChC,CAAC;IAED,WAAW,CACT,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,KAAgB;QAEhB,kBAAkB;QAClB,OAAO,gBAAgB,CACrB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EACX,UAAU,CAAC,KAAK,CAAC,CAClB,CAAA;IACH,CAAC;IAED,eAAe,CACb,KAAgB,EAChB,OAA2B;QAE3B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,gBAAgB,CACrB,OAAO,EACP,KAAK,EACL,gDAAgD,CACjD,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,gBAAgB,EAAE,CAAA;IAC3B,CAAC;CACF;AAED,MAAM,qBAAqB,GAAG,IAAI,MAAM,EAAE,CAAA;AAK1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,MAAM,CAAC,GAAS;IAC9B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,qBAAqB,CAAA;IAC9B,CAAC;SAAM,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAQ;IAER,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { type AnyObjectNode, type ISimpleType, type IValidationContext, type IValidationResult, type ScalarNode, SimpleType, TypeFlags } from "../../internal.ts";
|
|
2
|
+
declare abstract class BaseIdentifierType<T> extends SimpleType<T, T, T> {
|
|
3
|
+
private readonly validType;
|
|
4
|
+
readonly flags = TypeFlags.Identifier;
|
|
5
|
+
constructor(name: string, validType: "string" | "number");
|
|
6
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: this["C"]): this["N"];
|
|
7
|
+
reconcile(current: this["N"], newValue: this["C"], parent: AnyObjectNode, subpath: string): this["N"];
|
|
8
|
+
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
* @hidden
|
|
13
|
+
*/
|
|
14
|
+
export declare class IdentifierType extends BaseIdentifierType<string> {
|
|
15
|
+
readonly flags = TypeFlags.Identifier;
|
|
16
|
+
constructor();
|
|
17
|
+
describe(): string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
* @hidden
|
|
22
|
+
*/
|
|
23
|
+
export declare class IdentifierNumberType extends BaseIdentifierType<number> {
|
|
24
|
+
constructor();
|
|
25
|
+
getSnapshot(node: ScalarNode<number, number, number>): number;
|
|
26
|
+
describe(): string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* `types.identifier` - Identifiers are used to make references, lifecycle events and reconciling works.
|
|
30
|
+
* Inside a state tree, for each type can exist only one instance for each given identifier.
|
|
31
|
+
* For example there couldn't be 2 instances of user with id 1. If you need more, consider using references.
|
|
32
|
+
* Identifier can be used only as type property of a model.
|
|
33
|
+
* This type accepts as parameter the value type of the identifier field that can be either string or number.
|
|
34
|
+
*
|
|
35
|
+
* Example:
|
|
36
|
+
* ```ts
|
|
37
|
+
* const Todo = types.model("Todo", {
|
|
38
|
+
* id: types.identifier,
|
|
39
|
+
* title: types.string
|
|
40
|
+
* })
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
export declare const identifier: ISimpleType<string>;
|
|
46
|
+
/**
|
|
47
|
+
* `types.identifierNumber` - Similar to `types.identifier`. This one will serialize from / to a number when applying snapshots
|
|
48
|
+
*
|
|
49
|
+
* Example:
|
|
50
|
+
* ```ts
|
|
51
|
+
* const Todo = types.model("Todo", {
|
|
52
|
+
* id: types.identifierNumber,
|
|
53
|
+
* title: types.string
|
|
54
|
+
* })
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
export declare const identifierNumber: ISimpleType<number>;
|
|
60
|
+
/**
|
|
61
|
+
* Returns if a given value represents an identifier type.
|
|
62
|
+
*
|
|
63
|
+
* @param type
|
|
64
|
+
* @returns
|
|
65
|
+
*/
|
|
66
|
+
export declare function isIdentifierType<IT extends typeof identifier | typeof identifierNumber>(type: IT): type is IT;
|
|
67
|
+
/**
|
|
68
|
+
* Valid types for identifiers.
|
|
69
|
+
*/
|
|
70
|
+
export type ReferenceIdentifier = string | number;
|
|
71
|
+
/**
|
|
72
|
+
* @internal
|
|
73
|
+
* @hidden
|
|
74
|
+
*/
|
|
75
|
+
export declare function normalizeIdentifier(id: ReferenceIdentifier): string;
|
|
76
|
+
/**
|
|
77
|
+
* @internal
|
|
78
|
+
* @hidden
|
|
79
|
+
*/
|
|
80
|
+
export declare function isValidIdentifier(id: any): id is ReferenceIdentifier;
|
|
81
|
+
/**
|
|
82
|
+
* @internal
|
|
83
|
+
* @hidden
|
|
84
|
+
*/
|
|
85
|
+
export declare function assertIsValidIdentifier(id: ReferenceIdentifier, argNumber: number | number[]): void;
|
|
86
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../src/types/utility-types/identifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type IAnyType } from "../../internal.ts";
|
|
2
|
+
export declare function late<T extends IAnyType>(type: () => T): T;
|
|
3
|
+
export declare function late<T extends IAnyType>(name: string, type: () => T): T;
|
|
4
|
+
/**
|
|
5
|
+
* Returns if a given value represents a late type.
|
|
6
|
+
*
|
|
7
|
+
* @param type
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare function isLateType<IT extends IAnyType>(type: IT): type is IT;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"late.js","sourceRoot":"","sources":["../../../src/types/utility-types/late.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type AnyObjectNode, type IType, type IValidationContext, type IValidationResult, SimpleType, TypeFlags } from "../../internal.ts";
|
|
2
|
+
interface LazyOptions<T extends IType<any, any, any>, U> {
|
|
3
|
+
loadType: () => Promise<T>;
|
|
4
|
+
shouldLoadPredicate: (parent: U) => boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function lazy<T extends IType<any, any, any>, U>(name: string, options: LazyOptions<T, U>): T;
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export declare class Lazy<T extends IType<any, any, any>, U> extends SimpleType<T, T, T> {
|
|
12
|
+
private readonly options;
|
|
13
|
+
flags: TypeFlags;
|
|
14
|
+
private loadedType;
|
|
15
|
+
private pendingNodeList;
|
|
16
|
+
constructor(name: string, options: LazyOptions<T, U>);
|
|
17
|
+
describe(): string;
|
|
18
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, value: this["C"]): this["N"];
|
|
19
|
+
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
20
|
+
reconcile(current: this["N"], value: T, parent: AnyObjectNode, subpath: string): this["N"];
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/types/utility-types/lazy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type AnyObjectNode, type ISimpleType, type IValidationContext, type IValidationResult, type Primitives, SimpleType, TypeFlags } from "../../internal.ts";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
* @hidden
|
|
5
|
+
*/
|
|
6
|
+
export declare class Literal<T> extends SimpleType<T, T, T> {
|
|
7
|
+
readonly value: T;
|
|
8
|
+
readonly flags = TypeFlags.Literal;
|
|
9
|
+
constructor(value: T);
|
|
10
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: this["C"]): this["N"];
|
|
11
|
+
describe(): string;
|
|
12
|
+
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* `types.literal` - The literal type will return a type that will match only the exact given type.
|
|
16
|
+
* The given value must be a primitive, in order to be serialized to a snapshot correctly.
|
|
17
|
+
* You can use literal to match exact strings for example the exact male or female string.
|
|
18
|
+
*
|
|
19
|
+
* Example:
|
|
20
|
+
* ```ts
|
|
21
|
+
* const Person = types.model({
|
|
22
|
+
* name: types.string,
|
|
23
|
+
* gender: types.union(types.literal('male'), types.literal('female'))
|
|
24
|
+
* })
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @param value The value to use in the strict equal check
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare function literal<S extends Primitives>(value: S): ISimpleType<S>;
|
|
31
|
+
/**
|
|
32
|
+
* Returns if a given value represents a literal type.
|
|
33
|
+
*
|
|
34
|
+
* @param type
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
export declare function isLiteralType<IT extends ISimpleType<any>>(type: IT): type is IT;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../src/types/utility-types/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;GAGG;AACH,MAAM,OAAO,OAAW,SAAQ,UAAmB;IACxC,KAAK,CAAG;IACR,KAAK,GAAG,SAAS,CAAC,OAAO,CAAA;IAElC,YAAY,KAAQ;QAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,WAAW,CACT,MAA4B,EAC5B,OAAe,EACf,WAAgB,EAChB,YAAuB;QAEvB,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IAC3E,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,eAAe,CACb,KAAgB,EAChB,OAA2B;QAE3B,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/C,OAAO,gBAAgB,EAAE,CAAA;QAC3B,CAAC;QACD,OAAO,gBAAgB,CACrB,OAAO,EACP,KAAK,EACL,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACvD,CAAA;IACH,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,OAAO,CAAuB,KAAQ;IACpD,4CAA4C;IAC5C,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;IAE7C,OAAO,IAAI,OAAO,CAAI,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAQ;IAER,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type IAnyType, type IType } from "../../internal.ts";
|
|
2
|
+
/** @hidden */
|
|
3
|
+
export interface IMaybeIType<IT extends IAnyType, C, O> extends IType<IT["CreationType"] | C, IT["SnapshotType"] | O, IT["TypeWithoutSTN"] | O> {
|
|
4
|
+
}
|
|
5
|
+
/** @hidden */
|
|
6
|
+
export interface IMaybe<IT extends IAnyType> extends IMaybeIType<IT, undefined, undefined> {
|
|
7
|
+
}
|
|
8
|
+
/** @hidden */
|
|
9
|
+
export interface IMaybeNull<IT extends IAnyType> extends IMaybeIType<IT, null | undefined, null> {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* `types.maybe` - Maybe will make a type nullable, and also optional.
|
|
13
|
+
* The value `undefined` will be used to represent nullability.
|
|
14
|
+
*
|
|
15
|
+
* @param type
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
export declare function maybe<IT extends IAnyType>(type: IT): IMaybe<IT>;
|
|
19
|
+
/**
|
|
20
|
+
* `types.maybeNull` - Maybe will make a type nullable, and also optional.
|
|
21
|
+
* The value `null` will be used to represent no value.
|
|
22
|
+
*
|
|
23
|
+
* @param type
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
export declare function maybeNull<IT extends IAnyType>(type: IT): IMaybeNull<IT>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maybe.js","sourceRoot":"","sources":["../../../src/types/utility-types/maybe.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,KAAK,EACN,MAAM,mBAAmB,CAAA;AAE1B,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;AAChE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AAuBjD;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAsB,IAAQ;IACjD,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAErB,OAAO,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAsB,IAAQ;IACrD,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAErB,OAAO,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;AACtC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type AnyObjectNode, BaseType, type ExtractCSTWithSTN, type IAnyType, type IType, type IValidationContext, type IValidationResult } from "../../internal.ts";
|
|
2
|
+
type IFunctionReturn<T> = () => T;
|
|
3
|
+
type IOptionalValue<C, T> = C | IFunctionReturn<C | T>;
|
|
4
|
+
/** @hidden */
|
|
5
|
+
export type ValidOptionalValue = string | boolean | number | null | undefined;
|
|
6
|
+
/** @hidden */
|
|
7
|
+
export type ValidOptionalValues = [ValidOptionalValue, ...ValidOptionalValue[]];
|
|
8
|
+
/**
|
|
9
|
+
* @hidden
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare class OptionalValue<IT extends IAnyType, OptionalVals extends ValidOptionalValues> extends BaseType<IT["CreationType"] | OptionalVals[number], IT["SnapshotType"], IT["TypeWithoutSTN"]> {
|
|
13
|
+
private readonly _subtype;
|
|
14
|
+
private readonly _defaultValue;
|
|
15
|
+
readonly optionalValues: OptionalVals;
|
|
16
|
+
get flags(): number;
|
|
17
|
+
constructor(_subtype: IT, _defaultValue: IOptionalValue<IT["CreationType"], IT["Type"]>, optionalValues: OptionalVals);
|
|
18
|
+
describe(): string;
|
|
19
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: this["C"] | this["T"]): this["N"];
|
|
20
|
+
reconcile(current: this["N"], newValue: this["C"] | this["T"], parent: AnyObjectNode, subpath: string): this["N"];
|
|
21
|
+
getDefaultInstanceOrSnapshot(): this["C"] | this["T"];
|
|
22
|
+
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
23
|
+
isAssignableFrom(type: IAnyType): boolean;
|
|
24
|
+
getSubTypes(): IT;
|
|
25
|
+
}
|
|
26
|
+
/** @hidden */
|
|
27
|
+
export type OptionalDefaultValueOrFunction<IT extends IAnyType> = IT["CreationType"] | IT["SnapshotType"] | (() => ExtractCSTWithSTN<IT>);
|
|
28
|
+
/** @hidden */
|
|
29
|
+
export interface IOptionalIType<IT extends IAnyType, OptionalVals extends ValidOptionalValues> extends IType<IT["CreationType"] | OptionalVals[number], IT["SnapshotType"], IT["TypeWithoutSTN"]> {
|
|
30
|
+
}
|
|
31
|
+
export declare function optional<IT extends IAnyType>(type: IT, defaultValueOrFunction: OptionalDefaultValueOrFunction<IT>): IOptionalIType<IT, [undefined]>;
|
|
32
|
+
export declare function optional<IT extends IAnyType, OptionalVals extends ValidOptionalValues>(type: IT, defaultValueOrFunction: OptionalDefaultValueOrFunction<IT>, optionalValues: OptionalVals): IOptionalIType<IT, OptionalVals>;
|
|
33
|
+
/**
|
|
34
|
+
* Returns if a value represents an optional type.
|
|
35
|
+
*
|
|
36
|
+
* @template IT
|
|
37
|
+
* @param type
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
export declare function isOptionalType<IT extends IAnyType>(type: IT): type is IT;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional.js","sourceRoot":"","sources":["../../../src/types/utility-types/optional.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { type AnyObjectNode, type IAnyComplexType, type IAnyStateTreeNode, type IAnyType, type IMaybe, type IStateTreeNode, type IType, type IValidationContext, type IValidationResult, type ReferenceIdentifier, SimpleType, TypeFlags } from "../../internal.ts";
|
|
2
|
+
export type OnReferenceInvalidatedEvent<STN extends IAnyStateTreeNode> = {
|
|
3
|
+
parent: IAnyStateTreeNode;
|
|
4
|
+
invalidTarget: STN | undefined;
|
|
5
|
+
invalidId: ReferenceIdentifier;
|
|
6
|
+
replaceRef: (newRef: STN | null | undefined) => void;
|
|
7
|
+
removeRef: () => void;
|
|
8
|
+
cause: "detach" | "destroy" | "invalidSnapshotReference";
|
|
9
|
+
};
|
|
10
|
+
export type OnReferenceInvalidated<STN extends IAnyStateTreeNode> = (event: OnReferenceInvalidatedEvent<STN>) => void;
|
|
11
|
+
/** @hidden */
|
|
12
|
+
export type ReferenceT<IT extends IAnyType> = IT["TypeWithoutSTN"] & IStateTreeNode<IReferenceType<IT>>;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
export declare class InvalidReferenceError extends Error {
|
|
18
|
+
constructor(m: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
* @hidden
|
|
23
|
+
*/
|
|
24
|
+
export declare abstract class BaseReferenceType<IT extends IAnyComplexType> extends SimpleType<ReferenceIdentifier, ReferenceIdentifier, IT["TypeWithoutSTN"]> {
|
|
25
|
+
protected readonly targetType: IT;
|
|
26
|
+
private readonly onInvalidated?;
|
|
27
|
+
readonly flags = TypeFlags.Reference;
|
|
28
|
+
constructor(targetType: IT, onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>> | undefined);
|
|
29
|
+
describe(): string;
|
|
30
|
+
isAssignableFrom(type: IAnyType): boolean;
|
|
31
|
+
isValidSnapshot(value: this["C"], context: IValidationContext): IValidationResult;
|
|
32
|
+
private fireInvalidated;
|
|
33
|
+
private addTargetNodeWatcher;
|
|
34
|
+
protected watchTargetNodeForInvalidations(storedRefNode: this["N"], identifier: ReferenceIdentifier, customGetSet: ReferenceOptionsGetSet<IT> | undefined): void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
* @hidden
|
|
39
|
+
*/
|
|
40
|
+
export declare class IdentifierReferenceType<IT extends IAnyComplexType> extends BaseReferenceType<IT> {
|
|
41
|
+
constructor(targetType: IT, onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>);
|
|
42
|
+
getValue(storedRefNode: this["N"]): any;
|
|
43
|
+
getSnapshot(storedRefNode: this["N"]): ReferenceIdentifier;
|
|
44
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, initialValue: this["C"] | this["T"]): this["N"];
|
|
45
|
+
reconcile(current: this["N"], newValue: this["C"] | this["T"], parent: AnyObjectNode, subpath: string): this["N"];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
* @hidden
|
|
50
|
+
*/
|
|
51
|
+
export declare class CustomReferenceType<IT extends IAnyComplexType> extends BaseReferenceType<IT> {
|
|
52
|
+
private readonly options;
|
|
53
|
+
constructor(targetType: IT, options: ReferenceOptionsGetSet<IT>, onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>);
|
|
54
|
+
getValue(storedRefNode: this["N"]): any;
|
|
55
|
+
getSnapshot(storedRefNode: this["N"]): any;
|
|
56
|
+
instantiate(parent: AnyObjectNode | null, subpath: string, environment: any, newValue: this["C"] | this["T"]): this["N"];
|
|
57
|
+
reconcile(current: this["N"], newValue: this["C"] | this["T"], parent: AnyObjectNode, subpath: string): this["N"];
|
|
58
|
+
}
|
|
59
|
+
export interface ReferenceOptionsGetSet<IT extends IAnyComplexType> {
|
|
60
|
+
get(identifier: ReferenceIdentifier, parent: IAnyStateTreeNode | null): ReferenceT<IT>;
|
|
61
|
+
set(value: ReferenceT<IT>, parent: IAnyStateTreeNode | null): ReferenceIdentifier;
|
|
62
|
+
}
|
|
63
|
+
export interface ReferenceOptionsOnInvalidated<IT extends IAnyComplexType> {
|
|
64
|
+
onInvalidated: OnReferenceInvalidated<ReferenceT<IT>>;
|
|
65
|
+
}
|
|
66
|
+
export type ReferenceOptions<IT extends IAnyComplexType> = ReferenceOptionsGetSet<IT> | ReferenceOptionsOnInvalidated<IT> | (ReferenceOptionsGetSet<IT> & ReferenceOptionsOnInvalidated<IT>);
|
|
67
|
+
/** @hidden */
|
|
68
|
+
export interface IReferenceType<IT extends IAnyComplexType> extends IType<ReferenceIdentifier, ReferenceIdentifier, IT["TypeWithoutSTN"]> {
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* `types.reference` - Creates a reference to another type, which should have defined an identifier.
|
|
72
|
+
* See also the [reference and identifiers](https://github.com/mobxjs/mobx-state-tree#references-and-identifiers) section.
|
|
73
|
+
*/
|
|
74
|
+
export declare function reference<IT extends IAnyComplexType>(subType: IT, options?: ReferenceOptions<IT>): IReferenceType<IT>;
|
|
75
|
+
/**
|
|
76
|
+
* Returns if a given value represents a reference type.
|
|
77
|
+
*
|
|
78
|
+
* @param type
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
export declare function isReferenceType<IT extends IReferenceType<any>>(type: IT): type is IT;
|
|
82
|
+
export declare function safeReference<IT extends IAnyComplexType>(subType: IT, options: (ReferenceOptionsGetSet<IT> | {}) & {
|
|
83
|
+
acceptsUndefined: false;
|
|
84
|
+
onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>;
|
|
85
|
+
}): IReferenceType<IT>;
|
|
86
|
+
export declare function safeReference<IT extends IAnyComplexType>(subType: IT, options?: (ReferenceOptionsGetSet<IT> | {}) & {
|
|
87
|
+
acceptsUndefined?: boolean;
|
|
88
|
+
onInvalidated?: OnReferenceInvalidated<ReferenceT<IT>>;
|
|
89
|
+
}): IMaybe<IReferenceType<IT>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/types/utility-types/reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type IAnyType } from "../../internal.ts";
|
|
2
|
+
export declare function refinement<IT extends IAnyType>(name: string, type: IT, predicate: (snapshot: IT["CreationType"]) => boolean, message?: string | ((v: IT["CreationType"]) => string)): IT;
|
|
3
|
+
export declare function refinement<IT extends IAnyType>(type: IT, predicate: (snapshot: IT["CreationType"]) => boolean, message?: string | ((v: IT["CreationType"]) => string)): IT;
|
|
4
|
+
/**
|
|
5
|
+
* Returns if a given value is a refinement type.
|
|
6
|
+
*
|
|
7
|
+
* @param type
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare function isRefinementType<IT extends IAnyType>(type: IT): type is IT;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refinement.js","sourceRoot":"","sources":["../../../src/types/utility-types/refinement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { type IAnyType, type Instance, type IType } from "../../internal.ts";
|
|
2
|
+
/** @hidden */
|
|
3
|
+
declare const $mstNotCustomized: unique symbol;
|
|
4
|
+
/** @hidden */
|
|
5
|
+
export interface _NotCustomized {
|
|
6
|
+
readonly [$mstNotCustomized]: undefined;
|
|
7
|
+
}
|
|
8
|
+
/** @hidden */
|
|
9
|
+
export type _CustomOrOther<Custom, Other> = Custom extends _NotCustomized ? Other : Custom;
|
|
10
|
+
/**
|
|
11
|
+
* A type that has its snapshots processed.
|
|
12
|
+
*/
|
|
13
|
+
export interface ISnapshotProcessor<IT extends IAnyType, CustomC, CustomS> extends IType<_CustomOrOther<CustomC, IT["CreationType"]>, _CustomOrOther<CustomS, IT["SnapshotType"]>, IT["TypeWithoutSTN"]> {
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Snapshot processors.
|
|
17
|
+
*/
|
|
18
|
+
export interface ISnapshotProcessors<IT extends IAnyType, CustomC, CustomS> {
|
|
19
|
+
/**
|
|
20
|
+
* Function that transforms an input snapshot.
|
|
21
|
+
*/
|
|
22
|
+
preProcessor?(snapshot: CustomC): IT["CreationType"];
|
|
23
|
+
/**
|
|
24
|
+
* Function that transforms an output snapshot.
|
|
25
|
+
* @param snapshot
|
|
26
|
+
*/
|
|
27
|
+
postProcessor?(snapshot: IT["SnapshotType"], node: Instance<IT>): CustomS;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.
|
|
31
|
+
*
|
|
32
|
+
* Example:
|
|
33
|
+
* ```ts
|
|
34
|
+
* const Todo1 = types.model({ text: types.string })
|
|
35
|
+
* // in the backend the text type must be null when empty
|
|
36
|
+
* interface BackendTodo {
|
|
37
|
+
* text: string | null
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* const Todo2 = types.snapshotProcessor(Todo1, {
|
|
41
|
+
* // from snapshot to instance
|
|
42
|
+
* preProcessor(snapshot: BackendTodo) {
|
|
43
|
+
* return {
|
|
44
|
+
* text: sn.text || "";
|
|
45
|
+
* }
|
|
46
|
+
* },
|
|
47
|
+
*
|
|
48
|
+
* // from instance to snapshot
|
|
49
|
+
* postProcessor(snapshot, node): BackendTodo {
|
|
50
|
+
* return {
|
|
51
|
+
* text: !sn.text ? null : sn.text
|
|
52
|
+
* }
|
|
53
|
+
* }
|
|
54
|
+
* })
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @param type Type to run the processors over.
|
|
58
|
+
* @param processors Processors to run.
|
|
59
|
+
* @param name Type name, or undefined to inherit the inner type one.
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
export declare function snapshotProcessor<IT extends IAnyType, CustomC = _NotCustomized, CustomS = _NotCustomized>(type: IT, processors: ISnapshotProcessors<IT, CustomC, CustomS>, name?: string): ISnapshotProcessor<IT, CustomC, CustomS>;
|
|
63
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshotProcessor.js","sourceRoot":"","sources":["../../../src/types/utility-types/snapshotProcessor.ts"],"names":[],"mappings":"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"}
|