vest-utils 1.5.0 → 2.0.2

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.
Files changed (157) hide show
  1. package/README.md +7 -2
  2. package/dist/chunk-CLMFDpHK.mjs +18 -0
  3. package/dist/exports/minifyObject.cjs +114 -0
  4. package/dist/exports/minifyObject.cjs.map +1 -0
  5. package/dist/exports/minifyObject.mjs +113 -0
  6. package/dist/exports/minifyObject.mjs.map +1 -0
  7. package/dist/exports/standardSchemaSpec.cjs +0 -0
  8. package/dist/exports/standardSchemaSpec.mjs +1 -0
  9. package/dist/isEmpty-BBxAFjjm.mjs +103 -0
  10. package/dist/isEmpty-BBxAFjjm.mjs.map +1 -0
  11. package/dist/isEmpty-BuEa-96Q.cjs +235 -0
  12. package/dist/isEmpty-BuEa-96Q.cjs.map +1 -0
  13. package/dist/vest-utils.cjs +510 -0
  14. package/dist/vest-utils.cjs.map +1 -0
  15. package/dist/vest-utils.mjs +421 -0
  16. package/dist/vest-utils.mjs.map +1 -0
  17. package/minifyObject/package.json +12 -8
  18. package/package.json +43 -58
  19. package/src/Brand.ts +9 -0
  20. package/src/IO.ts +2 -0
  21. package/src/Predicates.ts +13 -0
  22. package/src/Result.ts +121 -0
  23. package/src/SimpleStateMachine.ts +157 -0
  24. package/src/StringObject.ts +6 -0
  25. package/src/__tests__/Architecture.test.ts +69 -0
  26. package/src/__tests__/Predicates.test.ts +118 -0
  27. package/src/__tests__/Result.test.ts +284 -0
  28. package/src/__tests__/SimpleStateMachine.test.ts +425 -0
  29. package/src/__tests__/StringObject.test.ts +18 -0
  30. package/src/__tests__/asArray.test.ts +14 -0
  31. package/src/__tests__/bindNot.test.ts +39 -0
  32. package/src/__tests__/bus.test.ts +135 -0
  33. package/src/__tests__/cache.test.ts +139 -0
  34. package/src/__tests__/callEach.test.ts +20 -0
  35. package/src/__tests__/defaultTo.test.ts +52 -0
  36. package/src/__tests__/deferThrow.test.ts +26 -0
  37. package/src/__tests__/either.test.ts +17 -0
  38. package/src/__tests__/freezeAssign.test.ts +24 -0
  39. package/src/__tests__/greaterThan.test.ts +68 -0
  40. package/src/__tests__/invariant.test.ts +47 -0
  41. package/src/__tests__/isArray.test.ts +16 -0
  42. package/src/__tests__/isBoolean.test.ts +16 -0
  43. package/src/__tests__/isEmpty.test.ts +55 -0
  44. package/src/__tests__/isEmptySet.test.ts +22 -0
  45. package/src/__tests__/isNull.test.ts +26 -0
  46. package/src/__tests__/isNumeric.test.ts +27 -0
  47. package/src/__tests__/isPositive.test.ts +38 -0
  48. package/src/__tests__/isPromise.test.ts +17 -0
  49. package/src/__tests__/isString.test.ts +13 -0
  50. package/src/__tests__/isUndefined.test.ts +27 -0
  51. package/src/__tests__/isUnsafeKey.test.ts +22 -0
  52. package/src/__tests__/lengthEquals.test.ts +58 -0
  53. package/src/__tests__/longerThan.test.ts +58 -0
  54. package/src/__tests__/mapFirst.test.ts +31 -0
  55. package/src/__tests__/nonnullish.test.ts +25 -0
  56. package/src/__tests__/noop.test.ts +12 -0
  57. package/src/__tests__/numberEquals.test.ts +67 -0
  58. package/src/__tests__/optionalFunctionValue.test.ts +29 -0
  59. package/src/__tests__/seq.test.ts +29 -0
  60. package/src/__tests__/text.test.ts +41 -0
  61. package/src/__tests__/tinyState.test.ts +68 -0
  62. package/src/__tests__/toNumber.test.ts +39 -0
  63. package/src/__tests__/vest-utils.test.ts +13 -0
  64. package/src/__tests__/withCatch.test.ts +17 -0
  65. package/src/__tests__/withResolvers.test.ts +45 -0
  66. package/src/asArray.ts +3 -0
  67. package/src/assign.ts +1 -0
  68. package/src/bindNot.ts +3 -0
  69. package/src/bus.ts +52 -0
  70. package/src/cache.ts +68 -0
  71. package/src/callEach.ts +5 -0
  72. package/src/defaultTo.ts +9 -0
  73. package/src/deferThrow.ts +7 -0
  74. package/src/dynamicValue.ts +9 -0
  75. package/src/either.ts +3 -0
  76. package/src/exports/__tests__/minifyObject.security.test.ts +65 -0
  77. package/src/exports/__tests__/minifyObject.test.ts +281 -0
  78. package/src/exports/minifyObject.ts +198 -0
  79. package/src/exports/standardSchemaSpec.ts +70 -0
  80. package/src/freezeAssign.ts +5 -0
  81. package/src/globals.d.ts +3 -0
  82. package/src/greaterThan.ts +8 -0
  83. package/src/hasOwnProperty.ts +9 -0
  84. package/src/invariant.ts +19 -0
  85. package/src/isArrayValue.ts +11 -0
  86. package/src/isBooleanValue.ts +3 -0
  87. package/src/isEmpty.ts +18 -0
  88. package/src/isEmptySet.ts +15 -0
  89. package/src/isFunction.ts +5 -0
  90. package/src/isNull.ts +7 -0
  91. package/src/isNullish.ts +10 -0
  92. package/src/isNumeric.ts +11 -0
  93. package/src/isPositive.ts +5 -0
  94. package/src/isPromise.ts +5 -0
  95. package/src/isStringValue.ts +3 -0
  96. package/src/isUndefined.ts +7 -0
  97. package/src/isUnsafeKey.ts +3 -0
  98. package/src/lengthEquals.ts +11 -0
  99. package/src/longerThan.ts +8 -0
  100. package/src/mapFirst.ts +25 -0
  101. package/src/nonnullish.ts +9 -0
  102. package/src/noop.ts +1 -0
  103. package/src/numberEquals.ts +11 -0
  104. package/src/seq.ts +16 -0
  105. package/src/text.ts +20 -0
  106. package/src/tinyState.ts +28 -0
  107. package/src/toNumber.ts +11 -0
  108. package/src/utilityTypes.ts +25 -0
  109. package/src/valueIsObject.ts +5 -0
  110. package/src/vest-utils.ts +73 -0
  111. package/src/withCatch.ts +11 -0
  112. package/src/withResolvers.ts +33 -0
  113. package/standardSchemaSpec/package.json +14 -0
  114. package/types/{minifyObject.d.ts → exports/minifyObject.d.cts} +4 -2
  115. package/types/exports/minifyObject.d.cts.map +1 -0
  116. package/types/exports/minifyObject.d.mts +7 -0
  117. package/types/exports/minifyObject.d.mts.map +1 -0
  118. package/types/exports/standardSchemaSpec.d.cts +59 -0
  119. package/types/exports/standardSchemaSpec.d.cts.map +1 -0
  120. package/types/exports/standardSchemaSpec.d.mts +59 -0
  121. package/types/exports/standardSchemaSpec.d.mts.map +1 -0
  122. package/types/vest-utils.d.cts +296 -0
  123. package/types/vest-utils.d.cts.map +1 -0
  124. package/types/vest-utils.d.mts +295 -0
  125. package/types/vest-utils.d.mts.map +1 -0
  126. package/types/vest-utils.d.ts +245 -143
  127. package/vitest.config.ts +9 -45
  128. package/dist/cjs/minifyObject.development.js +0 -217
  129. package/dist/cjs/minifyObject.development.js.map +0 -1
  130. package/dist/cjs/minifyObject.js +0 -6
  131. package/dist/cjs/minifyObject.production.js +0 -2
  132. package/dist/cjs/minifyObject.production.js.map +0 -1
  133. package/dist/cjs/package.json +0 -1
  134. package/dist/cjs/vest-utils.development.js +0 -378
  135. package/dist/cjs/vest-utils.development.js.map +0 -1
  136. package/dist/cjs/vest-utils.js +0 -6
  137. package/dist/cjs/vest-utils.production.js +0 -2
  138. package/dist/cjs/vest-utils.production.js.map +0 -1
  139. package/dist/es/minifyObject.development.js +0 -214
  140. package/dist/es/minifyObject.development.js.map +0 -1
  141. package/dist/es/minifyObject.production.js +0 -2
  142. package/dist/es/minifyObject.production.js.map +0 -1
  143. package/dist/es/package.json +0 -1
  144. package/dist/es/vest-utils.development.js +0 -330
  145. package/dist/es/vest-utils.development.js.map +0 -1
  146. package/dist/es/vest-utils.production.js +0 -2
  147. package/dist/es/vest-utils.production.js.map +0 -1
  148. package/dist/umd/minifyObject.development.js +0 -223
  149. package/dist/umd/minifyObject.development.js.map +0 -1
  150. package/dist/umd/minifyObject.production.js +0 -2
  151. package/dist/umd/minifyObject.production.js.map +0 -1
  152. package/dist/umd/vest-utils.development.js +0 -384
  153. package/dist/umd/vest-utils.development.js.map +0 -1
  154. package/dist/umd/vest-utils.production.js +0 -2
  155. package/dist/umd/vest-utils.production.js.map +0 -1
  156. package/types/minifyObject.d.ts.map +0 -1
  157. package/types/vest-utils.d.ts.map +0 -1
@@ -1,194 +1,296 @@
1
- type DropFirst<T extends unknown[]> = T extends [
2
- unknown,
3
- ...infer U
4
- ] ? U : never;
1
+ //#endregion
2
+ //#region src/withResolvers.d.ts
3
+ declare global {
4
+ interface PromiseConstructor {
5
+ withResolvers<T$1>(): {
6
+ promise: Promise<T$1>;
7
+ resolve: (value: T$1 | PromiseLike<T$1>) => void;
8
+ reject: (reason?: any) => void;
9
+ };
10
+ }
11
+ }
12
+ declare function withResolvers<T$1>(): {
13
+ promise: Promise<T$1>;
14
+ resolve: (value: T$1 | PromiseLike<T$1>) => void;
15
+ reject: (reason?: any) => void;
16
+ };
17
+ //#endregion
18
+ //#region src/utilityTypes.d.ts
19
+ type DropFirst<T$1 extends unknown[]> = T$1 extends [unknown, ...infer U] ? U : never;
5
20
  type Stringable = string | CB<string>;
6
- type CB<T = any, Args extends TArgs = TArgs> = (...args: Args) => T;
7
- type ValueOf<T> = T[keyof T];
8
- type Nullish<T = void> = Nullable<T> | Maybe<T>;
9
- type Nullable<T> = T | null;
10
- type Maybe<T> = T | undefined;
11
- type OneOrMoreOf<T> = T | T[];
12
- type DynamicValue<T, Args extends TArgs = TArgs> = T | CB<T, Args>;
13
- type BlankValue = Maybe<"">;
21
+ type CB<T$1 = any, Args extends TArgs = TArgs> = (...args: Args) => T$1;
22
+ type ValueOf<T$1> = T$1[keyof T$1];
23
+ type Nullish<T$1 = void> = Nullable<T$1> | Maybe<T$1>;
24
+ type Nullable<T$1> = T$1 | null;
25
+ type Maybe<T$1> = T$1 | undefined;
26
+ type OneOrMoreOf<T$1> = T$1 | T$1[];
27
+ type DynamicValue<T$1, Args extends TArgs = TArgs> = T$1 | CB<T$1, Args>;
28
+ type BlankValue = Maybe<''>;
14
29
  type TArgs = any[];
15
- type Predicate<T = any> = boolean | ((value: T) => boolean);
30
+ type Predicate<T$1 = any> = boolean | ((value: T$1) => boolean);
31
+ //#endregion
32
+ //#region src/cache.d.ts
16
33
  /**
17
34
  * Creates a cache function
18
35
  */
19
- declare function createCache<T = unknown>(maxSize?: number): CacheApi<T>;
20
- type CacheApi<T = unknown> = {
21
- (deps: unknown[], cacheAction: (...args: unknown[]) => T): T;
22
- get(deps: unknown[]): Nullable<[
23
- unknown[],
24
- T
25
- ]>;
26
- invalidate(item: any): void;
36
+ declare function createCache<T$1 = unknown>(maxSize?: number): CacheApi<T$1>;
37
+ type CacheApi<T$1 = unknown> = {
38
+ (deps: unknown[], cacheAction: DynamicValue<T$1>): T$1;
39
+ get(deps: unknown[]): Nullable<[unknown[], T$1]>;
40
+ set(deps: unknown[], value: T$1): void;
41
+ invalidate(item: any): void;
27
42
  };
43
+ declare namespace bus_d_exports {
44
+ export { BusType, createBus };
45
+ }
46
+ declare const EVENT_WILDCARD = "*";
47
+ type TEventsWildcard = typeof EVENT_WILDCARD;
48
+ declare function createBus<TEvents extends Record<string, any> = Record<string, any>>(): BusType<TEvents>;
28
49
  type OnReturn = {
29
- off: CB<void>;
50
+ off: CB<void>;
30
51
  };
31
- type BusType = {
32
- on: (event: string, handler: CB) => OnReturn;
33
- emit: (event: string, data?: any) => void;
52
+ type BusType<TEvents extends Record<string, any>> = {
53
+ on<T$1 extends keyof TEvents>(event: T$1, handler: (payload: TEvents[T$1]) => void): OnReturn;
54
+ on(event: TEventsWildcard, handler: (payload: any) => void): OnReturn;
55
+ emit<T$1 extends keyof TEvents>(event: T$1, ...args: TEvents[T$1] extends void ? [payload?: TEvents[T$1]] : [payload: TEvents[T$1]]): void;
56
+ emit(event: TEventsWildcard, payload?: any): void;
34
57
  };
35
- type TinyState<S> = () => [
36
- value: S,
37
- setValue: (next: SetValueInput<S>) => void,
38
- resetValue: () => void
39
- ];
40
- type SetValueInput<S> = DynamicValue<S, [
41
- prev: S
42
- ]>;
58
+ declare namespace tinyState_d_exports {
59
+ export { TinyState, createTinyState };
60
+ }
61
+ declare function createTinyState<S>(initialValue: SetValueInput<S>): TinyState<S>;
62
+ type TinyState<S> = () => [value: S, setValue: (next: SetValueInput<S>) => void, resetValue: () => void];
63
+ type SetValueInput<S> = DynamicValue<S, [prev: S]>;
64
+ //#endregion
65
+ //#region src/isNullish.d.ts
43
66
  declare function isNullish(value: any): value is Nullish;
44
67
  declare const isNotNullish: (value: any) => boolean;
45
- declare function asArray<T>(possibleArg: T | T[]): T[];
68
+ //#endregion
69
+ //#region src/asArray.d.ts
70
+ declare function asArray<T$1>(possibleArg: T$1 | T$1[]): T$1[];
71
+ //#endregion
72
+ //#region src/callEach.d.ts
46
73
  declare function callEach(arr: CB[]): void;
74
+ //#endregion
75
+ //#region src/hasOwnProperty.d.ts
47
76
  /**
48
77
  * A safe hasOwnProperty access
49
78
  */
50
- declare function hasOwnProperty<T>(obj: T, key: string | number | symbol): key is keyof T;
79
+ declare function hasOwnProperty<T$1>(obj: T$1, key: string | number | symbol): key is keyof T$1;
80
+ //#endregion
81
+ //#region src/isPromise.d.ts
51
82
  declare function isPromise(value: any): value is Promise<unknown>;
52
- declare function optionalFunctionValue<T>(value: DynamicValue<T>, ...args: unknown[]): T;
83
+ //#endregion
84
+ //#region src/dynamicValue.d.ts
85
+ declare function dynamicValue<T$1>(value: DynamicValue<T$1>, ...args: unknown[]): T$1;
86
+ //#endregion
87
+ //#region src/assign.d.ts
53
88
  declare const _default: {
54
- <T extends {}, U>(target: T, source: U): T & U;
55
- <T_1 extends {}, U_1, V>(target: T_1, source1: U_1, source2: V): T_1 & U_1 & V;
56
- <T_2 extends {}, U_2, V_1, W>(target: T_2, source1: U_2, source2: V_1, source3: W): T_2 & U_2 & V_1 & W;
57
- (target: object, ...sources: any[]): any;
89
+ <T$1 extends {}, U$1>(target: T$1, source: U$1): T$1 & U$1;
90
+ <T_1 extends {}, U_1, V>(target: T_1, source1: U_1, source2: V): T_1 & U_1 & V;
91
+ <T_2 extends {}, U_2, V_1, W>(target: T_2, source1: U_2, source2: V_1, source3: W): T_2 & U_2 & V_1 & W;
92
+ (target: object, ...sources: any[]): any;
58
93
  };
59
- declare function defaultTo<T>(value: DynamicValue<Nullish<T>>, defaultValue: DynamicValue<T>): T;
60
- declare function invariant(condition: any,
61
- // eslint-disable-next-line @typescript-eslint/ban-types
62
- message?: String | Stringable): asserts condition;
94
+ //#endregion
95
+ //#region src/defaultTo.d.ts
96
+ declare function defaultTo<T$1>(value: DynamicValue<Nullish<T$1>>, defaultValue: DynamicValue<T$1>): T$1;
97
+ //#endregion
98
+ //#region src/invariant.d.ts
99
+ declare function invariant(condition: any, message?: String | Stringable): asserts condition;
100
+ //#endregion
101
+ //#region src/isStringValue.d.ts
63
102
  declare function isStringValue(v: unknown): v is string;
64
- declare function bindNot<T extends (...args: any[]) => unknown>(fn: T): (...args: Parameters<T>) => boolean;
103
+ //#endregion
104
+ //#region src/isUnsafeKey.d.ts
105
+ declare function isUnsafeKey(key: string): boolean;
106
+ //#endregion
107
+ //#region src/bindNot.d.ts
108
+ declare function bindNot<T$1 extends (...args: any[]) => unknown>(fn: T$1): (...args: Parameters<T$1>) => boolean;
109
+ //#endregion
110
+ //#region src/either.d.ts
65
111
  declare function either(a: unknown, b: unknown): boolean;
112
+ //#endregion
113
+ //#region src/isBooleanValue.d.ts
66
114
  declare function isBoolean(value: unknown): value is boolean;
115
+ //#endregion
116
+ //#region src/deferThrow.d.ts
67
117
  declare function deferThrow(message?: string): void;
68
- declare namespace bus {
69
- type DropFirst<T extends unknown[]> = T extends [
70
- unknown,
71
- ...infer U
72
- ] ? U : never;
73
- type Stringable = string | CB<string>;
74
- type CB<T = any, Args extends TArgs = TArgs> = (...args: Args) => T;
75
- type ValueOf<T> = T[keyof T];
76
- type Nullish<T = void> = Nullable<T> | Maybe<T>;
77
- type Nullable<T> = T | null;
78
- type Maybe<T> = T | undefined;
79
- type OneOrMoreOf<T> = T | T[];
80
- type DynamicValue<T, Args extends TArgs = TArgs> = T | CB<T, Args>;
81
- type BlankValue = Maybe<"">;
82
- type TArgs = any[];
83
- type Predicate<T = any> = boolean | ((value: T) => boolean);
84
- function createBus(): BusType;
85
- type OnReturn = {
86
- off: CB<void>;
87
- };
88
- type BusType = {
89
- on: (event: string, handler: CB) => OnReturn;
90
- emit: (event: string, data?: any) => void;
91
- };
92
- }
118
+ //#endregion
119
+ //#region src/seq.d.ts
93
120
  declare const seq: CB<string, any[]>;
94
121
  declare function genSeq(namespace?: string): CB<string>;
122
+ //#endregion
123
+ //#region src/isFunction.d.ts
95
124
  declare function isFunction(value: unknown): value is (...args: unknown[]) => unknown;
96
- declare function mapFirst<T>(array: T[], callback: (item: T, breakout: (conditional: boolean, value: unknown) => void, index: number) => unknown): any;
125
+ //#endregion
126
+ //#region src/mapFirst.d.ts
127
+ declare function mapFirst<T$1>(array: T$1[], callback: (item: T$1, breakout: (conditional: boolean, value: unknown) => void, index: number) => unknown): any;
128
+ //#endregion
129
+ //#region src/greaterThan.d.ts
97
130
  declare function greaterThan(value: number | string, gt: number | string): boolean;
131
+ //#endregion
132
+ //#region src/longerThan.d.ts
98
133
  declare function longerThan(value: string | unknown[], arg1: string | number): boolean;
134
+ //#endregion
135
+ //#region src/isNumeric.d.ts
99
136
  declare function isNumeric(value: string | number): boolean;
100
137
  declare const isNotNumeric: (value: string | number) => boolean;
138
+ //#endregion
139
+ //#region src/valueIsObject.d.ts
101
140
  declare function isObject(v: any): v is Record<any, any>;
141
+ //#endregion
142
+ //#region src/lengthEquals.d.ts
102
143
  declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
103
144
  declare const lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
145
+ //#endregion
146
+ //#region src/numberEquals.d.ts
104
147
  declare function numberEquals(value: string | number, eq: string | number): boolean;
105
148
  declare const numberNotEquals: (value: string | number, eq: string | number) => boolean;
149
+ //#endregion
150
+ //#region src/isNull.d.ts
106
151
  declare function isNull(value: unknown): value is null;
107
152
  declare const isNotNull: (value: unknown) => boolean;
153
+ //#endregion
154
+ //#region src/isUndefined.d.ts
108
155
  declare function isUndefined(value?: unknown): value is undefined;
109
156
  declare const isNotUndefined: (value?: unknown) => boolean;
110
- // The module is named "isArrayValue" since it
111
- // is conflicting with a nested npm dependency.
112
- // We may need to revisit this in the future.
157
+ //#endregion
158
+ //#region src/isArrayValue.d.ts
113
159
  declare function isArray(value: unknown): value is Array<unknown>;
114
160
  declare const isNotArray: (value: unknown) => boolean;
161
+ //#endregion
162
+ //#region src/isEmpty.d.ts
115
163
  declare function isEmpty(value: unknown): boolean;
116
164
  declare const isNotEmpty: (value: unknown) => boolean;
165
+ //#endregion
166
+ //#region src/isEmptySet.d.ts
167
+ /**
168
+ * Checks if a given set is empty.
169
+ * @param value value to check
170
+ */
171
+ declare function isEmptySet(value: Set<unknown>): boolean;
172
+ /**
173
+ * Checks if a given set is NOT empty.
174
+ * @param value value to check
175
+ */
176
+ declare function isNotEmptySet(value: Set<unknown>): boolean;
177
+ //#endregion
178
+ //#region src/isPositive.d.ts
117
179
  declare function isPositive(value: number | string): boolean;
180
+ //#endregion
181
+ //#region src/text.d.ts
118
182
  declare function text(str: string, ...substitutions: Array<unknown>): string;
183
+ //#endregion
184
+ //#region src/Result.d.ts
185
+ type Result<T$1, E = unknown> = Success<T$1, E> | Failure<T$1, E>;
186
+ type Success<T$1, E> = {
187
+ chain<U$1, E2 = E>(fn: (value: T$1) => Result<U$1, E2>): Result<U$1, E | E2>;
188
+ map<U$1>(fn: (value: T$1) => U$1): Result<U$1, E>;
189
+ mapError<E2>(fn: (error: E) => E2): Result<T$1, E2>;
190
+ match<U$1>(handlers: {
191
+ ok: (value: T$1) => U$1;
192
+ err: (error: E) => U$1;
193
+ }): U$1;
194
+ readonly type: 'ok';
195
+ unwrap(): T$1;
196
+ unwrapOr(defaultValue: T$1): T$1;
197
+ readonly value: T$1;
198
+ };
199
+ type Failure<T$1, E> = {
200
+ chain<U$1, E2 = E>(fn: (value: T$1) => Result<U$1, E2>): Result<U$1, E | E2>;
201
+ readonly error: E;
202
+ map<U$1>(fn: (value: T$1) => U$1): Result<U$1, E>;
203
+ mapError<E2>(fn: (error: E) => E2): Result<T$1, E2>;
204
+ match<U$1>(handlers: {
205
+ ok: (value: T$1) => U$1;
206
+ err: (error: E) => U$1;
207
+ }): U$1;
208
+ readonly type: 'err';
209
+ unwrap(): T$1;
210
+ unwrapOr(defaultValue: T$1): T$1;
211
+ };
212
+ declare function ok<T$1, E = unknown>(value: T$1): Success<T$1, E>;
213
+ declare function err<T$1 = never, E = unknown>(error: E): Failure<T$1, E>;
214
+ declare const makeResult: {
215
+ readonly Ok: typeof ok;
216
+ readonly Err: typeof err;
217
+ };
218
+ declare function isResult(value: unknown): value is Result<unknown, unknown>;
219
+ declare function isSuccess<T$1, E>(value: Result<T$1, E>): value is Success<T$1, E>;
220
+ declare function isFailure<T$1, E>(value: Result<T$1, E>): value is Failure<T$1, E>;
221
+ /**
222
+ * Unwraps a Result.
223
+ * If the Result is Success, it returns the value.
224
+ * If the Result is Failure, it throws the error.
225
+ */
226
+ declare function unwrap<T$1>(result: Result<T$1, any>): T$1;
227
+ //#endregion
228
+ //#region src/SimpleStateMachine.d.ts
119
229
  declare const STATE_WILD_CARD = "*";
120
230
  type TStateWildCard = typeof STATE_WILD_CARD;
121
- type TStateMachine<S extends string = string, A extends S = S> = {
122
- initial: S;
123
- states: Partial<{
124
- [key in S & TStateWildCard]: {
125
- [key in A]?: S | [
126
- S,
127
- CB<boolean, [
128
- payload?: any
129
- ]>
130
- ];
131
- };
132
- }>;
231
+ type TransitionTarget<S extends string> = S | [S, CB<boolean, [payload?: any]>];
232
+ type StatesMap<S extends string = string, A extends string = string> = Record<S | TStateWildCard, Partial<Record<A, TransitionTarget<S>>>>;
233
+ type TStateMachine<S extends string = string, A extends string = string> = {
234
+ initial: S;
235
+ states: Partial<StatesMap<S, A>>;
133
236
  };
134
- type TStateMachineApi<S extends string = string, A extends S = S> = {
135
- getState: CB<S>;
136
- initial: CB<S>;
137
- staticTransition: (from: S, action: A, payload?: any) => S;
138
- transition: (action: A, payload?: any) => void;
237
+ type TStateMachineApi<S extends string = string, A extends string = string> = {
238
+ getState: CB<S>;
239
+ initial: CB<S>;
240
+ staticTransition: (from: S, action: A, payload?: any) => S;
241
+ transition: (action: A, payload?: any) => Result<void, string>;
139
242
  };
140
- declare function StateMachine<S extends string = string, A extends S = S>(machine: TStateMachine<S, A>): TStateMachineApi<S, A>;
141
- declare function nonnullish<T>(value: Nullish<T>, error?: string): T;
142
- declare namespace tinyState {
143
- type DropFirst<T extends unknown[]> = T extends [
144
- unknown,
145
- ...infer U
146
- ] ? U : never;
147
- type Stringable = string | CB<string>;
148
- type CB<T = any, Args extends TArgs = TArgs> = (...args: Args) => T;
149
- type ValueOf<T> = T[keyof T];
150
- type Nullish<T = void> = Nullable<T> | Maybe<T>;
151
- type Nullable<T> = T | null;
152
- type Maybe<T> = T | undefined;
153
- type OneOrMoreOf<T> = T | T[];
154
- type DynamicValue<T, Args extends TArgs = TArgs> = T | CB<T, Args>;
155
- type BlankValue = Maybe<"">;
156
- type TArgs = any[];
157
- type Predicate<T = any> = boolean | ((value: T) => boolean);
158
- function createTinyState<S>(initialValue: SetValueInput<S>): TinyState<S>;
159
- type TinyState<S> = () => [
160
- value: S,
161
- setValue: (next: SetValueInput<S>) => void,
162
- resetValue: () => void
163
- ];
164
- type SetValueInput<S> = DynamicValue<S, [
165
- prev: S
166
- ]>;
167
- }
168
- // eslint-disable-next-line @typescript-eslint/ban-types
243
+ type TransitionValue<V> = V extends [infer T, any] ? T extends string ? T : never : V extends string ? V : never;
244
+ type Values<T$1> = T$1[keyof T$1];
245
+ type StateConfigs<M extends {
246
+ states: Record<string, any>;
247
+ }> = Values<M['states']>;
248
+ type ActionFromConfig<M extends {
249
+ states: Record<string, any>;
250
+ }> = StateConfigs<M> extends infer SC ? SC extends any ? Extract<keyof SC, string> : never : never;
251
+ type TargetStatesFromConfig<M extends {
252
+ states: Record<string, any>;
253
+ }> = StateConfigs<M> extends infer SC ? SC extends any ? TransitionValue<Values<SC>> : never : never;
254
+ type StateFromConfig<M extends {
255
+ initial: string;
256
+ states: Record<string, any>;
257
+ }> = M['initial'] | Extract<keyof M['states'], string> | TargetStatesFromConfig<M>;
258
+ declare function StateMachine<M extends {
259
+ initial: string;
260
+ states: Record<string, any>;
261
+ }>(machine: M): TStateMachineApi<StateFromConfig<M>, ActionFromConfig<M>>;
262
+ //#endregion
263
+ //#region src/nonnullish.d.ts
264
+ declare function nonnullish<T$1>(value: Nullish<T$1>, error?: string): T$1;
265
+ //#endregion
266
+ //#region src/StringObject.d.ts
169
267
  declare function StringObject(value?: Stringable): String;
170
- // eslint-disable-next-line @typescript-eslint/no-empty-function
268
+ //#endregion
269
+ //#region src/noop.d.ts
171
270
  declare function noop(): void;
172
- declare namespace Predicates {
173
- type DropFirst<T extends unknown[]> = T extends [
174
- unknown,
175
- ...infer U
176
- ] ? U : never;
177
- type Stringable = string | CB<string>;
178
- type CB<T = any, Args extends TArgs = TArgs> = (...args: Args) => T;
179
- type ValueOf<T> = T[keyof T];
180
- type Nullish<T = void> = Nullable<T> | Maybe<T>;
181
- type Nullable<T> = T | null;
182
- type Maybe<T> = T | undefined;
183
- type OneOrMoreOf<T> = T | T[];
184
- type DynamicValue<T, Args extends TArgs = TArgs> = T | CB<T, Args>;
185
- type BlankValue = Maybe<"">;
186
- type TArgs = any[];
187
- type Predicate<T = any> = boolean | ((value: T) => boolean);
188
- function all<T = any>(...p: Predicate<T>[]): (value: T) => boolean;
189
- function any<T = any>(...p: Predicate<T>[]): (value: T) => boolean;
271
+ declare namespace Predicates_d_exports {
272
+ export { all, any };
190
273
  }
191
- declare function freezeAssign<T extends object>(...args: Partial<T>[]): T;
192
- export { createCache as cache, CacheApi, BusType, TinyState, isNullish, isNotNullish, asArray, callEach, hasOwnProperty, isPromise, optionalFunctionValue, _default as assign, defaultTo, invariant, isStringValue, bindNot, either, isBoolean, deferThrow, bus, seq, genSeq, isFunction, mapFirst, greaterThan, longerThan, isNumeric, isNotNumeric, isObject, lengthEquals, lengthNotEquals, numberEquals, numberNotEquals, isNull, isNotNull, isUndefined, isNotUndefined, isArray, isNotArray, isEmpty, isNotEmpty, isPositive, text, TStateMachine, StateMachine, TStateMachineApi, nonnullish, tinyState, StringObject, noop, Predicates, freezeAssign };
193
- export type { DropFirst, Stringable, CB, ValueOf, Nullish, Nullable, Maybe, OneOrMoreOf, DynamicValue, BlankValue, Predicate };
194
- //# sourceMappingURL=vest-utils.d.ts.map
274
+ declare function all<T$1 = any>(...p: Predicate<T$1>[]): (value: T$1) => boolean;
275
+ declare function any<T$1 = any>(...p: Predicate<T$1>[]): (value: T$1) => boolean;
276
+ //#endregion
277
+ //#region src/freezeAssign.d.ts
278
+ declare function freezeAssign<T$1 extends object>(...args: Partial<T$1>[]): T$1;
279
+ //#endregion
280
+ //#region src/withCatch.d.ts
281
+ declare function withCatch<T$1>(cb: CB<T$1>): () => T$1 | unknown;
282
+ //#endregion
283
+ //#region src/Brand.d.ts
284
+ type Brand<T$1, B> = T$1 & {
285
+ readonly __brand: B;
286
+ };
287
+ declare function makeBrand<T$1 extends Brand<any, any>>(value: unknown): T$1;
288
+ //#endregion
289
+ //#region src/toNumber.d.ts
290
+ declare function toNumber(value: any): Result<number, string>;
291
+ //#endregion
292
+ //#region src/IO.d.ts
293
+ type IO<T$1> = () => T$1;
294
+ //#endregion
295
+ export { type BlankValue, type Brand, type BusType, type CB, type CacheApi, type DropFirst, type DynamicValue, type Failure, type IO, type Maybe, type Nullable, type Nullish, type OneOrMoreOf, type Predicate, Predicates_d_exports as Predicates, type Result, StateMachine, StringObject, type Stringable, type TStateMachine, type TStateMachineApi, type TinyState, type ValueOf, asArray, _default as assign, bindNot, bus_d_exports as bus, createCache as cache, callEach, defaultTo, deferThrow, dynamicValue, either, freezeAssign, genSeq, greaterThan, hasOwnProperty, invariant, isArray, isBoolean, isEmpty, isEmptySet, isFailure, isFunction, isNotArray, isNotEmpty, isNotEmptySet, isNotNull, isNotNullish, isNotNumeric, isNotUndefined, isNull, isNullish, isNumeric, isObject, isPositive, isPromise, isResult, isStringValue, isSuccess, isUndefined, isUnsafeKey, lengthEquals, lengthNotEquals, longerThan, makeBrand, makeResult, mapFirst, nonnullish, noop, numberEquals, numberNotEquals, seq, text, tinyState_d_exports as tinyState, toNumber, unwrap, withCatch, withResolvers };
296
+ //# sourceMappingURL=vest-utils.d.cts.map
package/vitest.config.ts CHANGED
@@ -1,57 +1,21 @@
1
+ import path, { resolve } from 'path';
2
+ import { fileURLToPath } from 'url';
3
+
1
4
  import { defineConfig } from 'vitest/config';
2
- import { resolve } from 'path';
5
+
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
3
8
 
4
9
  export default defineConfig({
5
10
  test: {
6
11
  globals: true,
7
12
  include: ['./**/__tests__/*.test.ts'],
8
- setupFiles: [resolve(__dirname, '../../', 'vx/config/vitest/customMatchers.ts')],
13
+ setupFiles: [resolve(__dirname, '../../', 'vx/config/vitest')],
9
14
  },
10
15
  root: __dirname,
11
16
  resolve: {
12
17
  alias: {
13
18
  'vest-utils': resolve(__dirname, 'src/vest-utils.ts'),
14
- valueIsObject: resolve(__dirname, 'src/valueIsObject.ts'),
15
- utilityTypes: resolve(__dirname, 'src/utilityTypes.ts'),
16
- tinyState: resolve(__dirname, 'src/tinyState.ts'),
17
- text: resolve(__dirname, 'src/text.ts'),
18
- seq: resolve(__dirname, 'src/seq.ts'),
19
- optionalFunctionValue: resolve(__dirname, 'src/optionalFunctionValue.ts'),
20
- numberEquals: resolve(__dirname, 'src/numberEquals.ts'),
21
- noop: resolve(__dirname, 'src/noop.ts'),
22
- nonnullish: resolve(__dirname, 'src/nonnullish.ts'),
23
- mapFirst: resolve(__dirname, 'src/mapFirst.ts'),
24
- longerThan: resolve(__dirname, 'src/longerThan.ts'),
25
- lengthEquals: resolve(__dirname, 'src/lengthEquals.ts'),
26
- isUndefined: resolve(__dirname, 'src/isUndefined.ts'),
27
- isStringValue: resolve(__dirname, 'src/isStringValue.ts'),
28
- isPromise: resolve(__dirname, 'src/isPromise.ts'),
29
- isPositive: resolve(__dirname, 'src/isPositive.ts'),
30
- isNumeric: resolve(__dirname, 'src/isNumeric.ts'),
31
- isNullish: resolve(__dirname, 'src/isNullish.ts'),
32
- isNull: resolve(__dirname, 'src/isNull.ts'),
33
- isFunction: resolve(__dirname, 'src/isFunction.ts'),
34
- isEmpty: resolve(__dirname, 'src/isEmpty.ts'),
35
- isBooleanValue: resolve(__dirname, 'src/isBooleanValue.ts'),
36
- isArrayValue: resolve(__dirname, 'src/isArrayValue.ts'),
37
- invariant: resolve(__dirname, 'src/invariant.ts'),
38
- hasOwnProperty: resolve(__dirname, 'src/hasOwnProperty.ts'),
39
- greaterThan: resolve(__dirname, 'src/greaterThan.ts'),
40
- 'globals.d': resolve(__dirname, 'src/globals.d.ts'),
41
- freezeAssign: resolve(__dirname, 'src/freezeAssign.ts'),
42
- either: resolve(__dirname, 'src/either.ts'),
43
- deferThrow: resolve(__dirname, 'src/deferThrow.ts'),
44
- defaultTo: resolve(__dirname, 'src/defaultTo.ts'),
45
- callEach: resolve(__dirname, 'src/callEach.ts'),
46
- cache: resolve(__dirname, 'src/cache.ts'),
47
- bus: resolve(__dirname, 'src/bus.ts'),
48
- bindNot: resolve(__dirname, 'src/bindNot.ts'),
49
- assign: resolve(__dirname, 'src/assign.ts'),
50
- asArray: resolve(__dirname, 'src/asArray.ts'),
51
- StringObject: resolve(__dirname, 'src/StringObject.ts'),
52
- SimpleStateMachine: resolve(__dirname, 'src/SimpleStateMachine.ts'),
53
- Predicates: resolve(__dirname, 'src/Predicates.ts'),
54
- minifyObject: resolve(__dirname, 'src/exports/minifyObject.ts')
55
- }
19
+ },
56
20
  },
57
- });
21
+ });