@jfdevelops/create-error 0.1.1 → 0.2.0
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 +353 -294
- package/dist/create-error.cjs +60 -13
- package/dist/create-error.cjs.map +1 -1
- package/dist/create-error.d.cts +21 -2
- package/dist/create-error.d.cts.map +1 -1
- package/dist/create-error.d.mts +21 -2
- package/dist/create-error.d.mts.map +1 -1
- package/dist/create-error.mjs +60 -14
- package/dist/create-error.mjs.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +2 -2
- package/dist/types.d.cts +67 -10
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +67 -10
- package/dist/types.d.mts.map +1 -1
- package/package.json +69 -70
package/dist/types.d.cts
CHANGED
|
@@ -107,12 +107,16 @@ interface CreateErrorConfig<Schema extends StandardSchemaV1> {
|
|
|
107
107
|
* validate constructor input; use `data.resolve` and `defineContext` for
|
|
108
108
|
* that.
|
|
109
109
|
*
|
|
110
|
+
* `data` is typed separately by each concrete error, so the blueprint can
|
|
111
|
+
* pass it along but cannot read its fields. Use `definition` values or the
|
|
112
|
+
* `implementation` callback for anything derived from it.
|
|
113
|
+
*
|
|
110
114
|
* @example Expose definition and resolved-data values
|
|
111
115
|
* ```ts
|
|
112
|
-
* properties: ({ definition, data }) => ({
|
|
116
|
+
* properties: ({ definition, data, implementation }) => ({
|
|
113
117
|
* code: definition.code,
|
|
114
118
|
* context: data,
|
|
115
|
-
* describe: () => `${definition.code}: ${data
|
|
119
|
+
* describe: () => `${definition.code}: ${implementation(data)}`,
|
|
116
120
|
* })
|
|
117
121
|
* ```
|
|
118
122
|
*/
|
|
@@ -142,9 +146,14 @@ type ResolveTemplate<Config> = Config extends {
|
|
|
142
146
|
};
|
|
143
147
|
} ? Resolved : never;
|
|
144
148
|
type InjectedDefinitionKeys<Template> = { [Key in keyof Template]: Template[Key] extends TypeSlot<'definition', PropertyKey> ? Key : never }[keyof Template];
|
|
145
|
-
type ConstructorInput<Config, Data> = Data extends readonly unknown[] ? Data : Data extends object ? Omit<Data, Extract<InjectedDefinitionKeys<ResolveTemplate<Config>>, keyof Data>> : Data;
|
|
149
|
+
type ConstructorInput<Config, Data> = Data extends readonly unknown[] | ((...arguments_: never[]) => unknown) ? Data : Data extends object ? Omit<Data, Extract<InjectedDefinitionKeys<ResolveTemplate<Config>>, keyof Data>> : Data;
|
|
146
150
|
type ReplaceTuple<Values extends readonly unknown[], Definition, Data, Implementation> = { [Index in keyof Values]: ReplaceTemplate<Values[Index], Definition, Data, Implementation> };
|
|
147
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Built-in class instances that are never plain objects. Templates are not
|
|
153
|
+
* expanded inside them, and they never receive definition fields.
|
|
154
|
+
*/
|
|
155
|
+
type OpaqueObject = Date | RegExp | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | PromiseLike<unknown> | ArrayBuffer | ArrayBufferView;
|
|
156
|
+
type ReplaceTemplate<Type, Definition, Data, Implementation> = Type extends TypeSlot<'definition', infer Key> ? Key extends keyof Definition ? Definition[Key] : never : Type extends TypeSlot<'data'> ? Data : Type extends TypeSlot<'implementation'> ? Implementation : Type extends OpaqueObject ? Type : Type extends ((...arguments_: infer Arguments) => infer Result) ? (...arguments_: ReplaceTuple<Arguments, Definition, Data, Implementation>) => ReplaceTemplate<Result, Definition, Data, Implementation> : Type extends readonly unknown[] ? ReplaceTuple<Type, Definition, Data, Implementation> : Type extends object ? { [Key in keyof Type]: ReplaceTemplate<Type[Key], Definition, Data, Implementation> } : Type;
|
|
148
157
|
type PropertiesTemplate<Config> = Config extends {
|
|
149
158
|
properties: (...arguments_: infer _Arguments) => infer Properties;
|
|
150
159
|
} ? Properties : object;
|
|
@@ -168,11 +177,17 @@ type InstanceProperties<Config, Definition, Data, Implementation> = ReplaceTempl
|
|
|
168
177
|
type MessageTemplate<Config> = Config extends {
|
|
169
178
|
message: (...arguments_: infer _Arguments) => infer Message;
|
|
170
179
|
} ? Message : string;
|
|
171
|
-
type ImplementationArgumentWithDefinition<Argument$1, Definition, Data> = Argument$1 extends TypeSlot<'data'> ? Data : ReplaceTemplate<Argument$1, Definition, Data, never> extends infer Resolved ? Argument$1 extends TypeSlot<string, unknown> ? Resolved : Resolved extends readonly unknown[] ? Resolved : Resolved extends ((...arguments_: infer _Arguments) => unknown) ? Resolved : Resolved extends object ? Omit<Definition, keyof Resolved> & Resolved : Resolved : never;
|
|
180
|
+
type ImplementationArgumentWithDefinition<Argument$1, Definition, Data> = Argument$1 extends TypeSlot<'data'> ? Data : ReplaceTemplate<Argument$1, Definition, Data, never> extends infer Resolved ? Argument$1 extends TypeSlot<string, unknown> ? Resolved : Resolved extends OpaqueObject | readonly unknown[] ? Resolved : Resolved extends ((...arguments_: infer _Arguments) => unknown) ? Resolved : Resolved extends object ? Omit<Definition, keyof Resolved> & Resolved : Resolved : never;
|
|
172
181
|
type ImplementationArgument<Config, Definition, Data> = MessageTemplate<Config> extends TypeSlot<'implementationArgument', infer Argument> ? ImplementationArgumentWithDefinition<Argument, Definition, Data> : never;
|
|
173
182
|
type ImplementationCallback<Config, Definition, Data> = (argument: ImplementationArgument<Config, Definition, Data>) => string;
|
|
174
183
|
type PassedImplementationArgument<Config, Definition, Data> = MessageTemplate<Config> extends TypeSlot<'implementationArgument', infer Argument> ? Argument extends TypeSlot<'data'> ? Data : ReplaceTemplate<Argument, Definition, Data, never> : never;
|
|
175
184
|
type PassedImplementationCallback<Config, Definition, Data> = (argument: PassedImplementationArgument<Config, Definition, Data>) => string;
|
|
185
|
+
/**
|
|
186
|
+
* Input accepted by `invariant`: the constructor input, or a function that
|
|
187
|
+
* returns it. When the constructor input can itself be a function, only the
|
|
188
|
+
* wrapped form is accepted so a callback is never mistaken for a lazy input.
|
|
189
|
+
*/
|
|
190
|
+
type InvariantInput<Input> = ExtendsNever<Extract<Input, (...arguments_: never[]) => unknown>, Input | (() => Input), () => Input>;
|
|
176
191
|
interface ErrorClassStatics {
|
|
177
192
|
/**
|
|
178
193
|
* Throws this error class when `condition` is falsy.
|
|
@@ -181,6 +196,10 @@ interface ErrorClassStatics {
|
|
|
181
196
|
* unless the invariant fails. TypeScript narrows `condition` after a
|
|
182
197
|
* successful call.
|
|
183
198
|
*
|
|
199
|
+
* TypeScript only allows assertion calls through explicitly typed names, so
|
|
200
|
+
* call this on a `class` declaration. For a class stored in a `const`, use
|
|
201
|
+
* the standalone {@link invariant} function instead.
|
|
202
|
+
*
|
|
184
203
|
* @example
|
|
185
204
|
* ```ts
|
|
186
205
|
* MissingUserError.invariant(
|
|
@@ -192,15 +211,22 @@ interface ErrorClassStatics {
|
|
|
192
211
|
* user.id; // narrowed to the truthy branch
|
|
193
212
|
* ```
|
|
194
213
|
*/
|
|
195
|
-
invariant<Condition, Input>(this: new (input: Input, options?: ErrorOptions) => Error, condition: Condition, input: Input
|
|
214
|
+
invariant<Condition, Input>(this: new (input: Input, options?: ErrorOptions) => Error, condition: Condition, input: InvariantInput<Input>, options?: ErrorOptions): asserts condition;
|
|
196
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* The instance type shared by every error in one family.
|
|
218
|
+
*
|
|
219
|
+
* Definition-derived fields use the schema's general output type, and the data
|
|
220
|
+
* property is `unknown` because each concrete error types its own data.
|
|
221
|
+
*/
|
|
222
|
+
type FamilyError<Schema extends StandardSchemaV1, Config> = InstanceProperties<Config, ConcreteDefinition<Schema>, unknown, (argument: never) => string>;
|
|
197
223
|
/**
|
|
198
224
|
* The shared native `Error` base created for one blueprint.
|
|
199
225
|
*
|
|
200
226
|
* Use `factory.Error` for family-wide `instanceof` checks or as a public base
|
|
201
227
|
* type for errors created by the same blueprint.
|
|
202
228
|
*/
|
|
203
|
-
type FamilyErrorClass = (abstract new (...arguments_: never[]) =>
|
|
229
|
+
type FamilyErrorClass<Instance extends Error = Error> = (abstract new (...arguments_: never[]) => Instance) & ErrorClassStatics;
|
|
204
230
|
/** An extendable concrete error class produced by a configured factory. */
|
|
205
231
|
interface ConcreteErrorClass<Input, Instance> extends ErrorClassStatics {
|
|
206
232
|
/**
|
|
@@ -216,6 +242,18 @@ type BuilderData<Data, InferredData> = ExtendsNever<Data, InferredData, Data>;
|
|
|
216
242
|
type DefaultBuilderData<Data> = ExtendsNever<Data, unknown, Data>;
|
|
217
243
|
type BuilderInput<Input, Data> = ExtendsNever<Input, Data, Input>;
|
|
218
244
|
type Expand<Type> = Type extends ((...arguments_: infer Arguments) => infer Result) ? (...arguments_: Arguments) => Result : Type;
|
|
245
|
+
/** Options for a concrete error class created by `implement`. */
|
|
246
|
+
interface ImplementOptions {
|
|
247
|
+
/**
|
|
248
|
+
* The class name, used for `error.name` and stack traces.
|
|
249
|
+
*
|
|
250
|
+
* Classes assigned to a variable have no name of their own, so set this
|
|
251
|
+
* when you use `const NotFoundError = factory(...).implement(...)`. A named
|
|
252
|
+
* subclass, such as `class NotFoundError extends ... {}`, uses its own name
|
|
253
|
+
* instead.
|
|
254
|
+
*/
|
|
255
|
+
name?: string;
|
|
256
|
+
}
|
|
219
257
|
/** Captures the final behavior for one concrete error class. */
|
|
220
258
|
interface ImplementationBuilder<Config, Definition, Input = never, Data = never> {
|
|
221
259
|
/**
|
|
@@ -227,14 +265,16 @@ interface ImplementationBuilder<Config, Definition, Input = never, Data = never>
|
|
|
227
265
|
*
|
|
228
266
|
* @example
|
|
229
267
|
* ```ts
|
|
268
|
+
* // The blueprint's message calls `implementation({ context: data })`.
|
|
230
269
|
* const MissingUserError = createRequestError({
|
|
231
270
|
* code: 'missingUser',
|
|
232
271
|
* }).implement(
|
|
233
272
|
* ({ code, context }) => `${code}: ${context.userId} was not found`,
|
|
273
|
+
* { name: 'MissingUserError' },
|
|
234
274
|
* );
|
|
235
275
|
* ```
|
|
236
276
|
*/
|
|
237
|
-
implement<InferredData = DefaultBuilderData<Data>>(implementation: Expand<ImplementationCallback<Config, Definition, BuilderData<Data, InferredData
|
|
277
|
+
implement<InferredData = DefaultBuilderData<Data>>(implementation: Expand<ImplementationCallback<Config, Definition, BuilderData<Data, InferredData>>>, options?: ImplementOptions): ImplementedErrorClass<Config, Definition, BuilderInput<Input, BuilderData<Data, InferredData>>, BuilderData<Data, InferredData>>;
|
|
238
278
|
}
|
|
239
279
|
/** Configures one concrete error definition before creating its class. */
|
|
240
280
|
interface ErrorDefinitionBuilder<Config, Definition> extends ImplementationBuilder<Config, Definition> {
|
|
@@ -284,8 +324,25 @@ type ErrorFamilyFactory<Schema extends StandardSchemaV1, Config> = {
|
|
|
284
324
|
* error instanceof createRequestError.Error;
|
|
285
325
|
* ```
|
|
286
326
|
*/
|
|
287
|
-
Error: FamilyErrorClass
|
|
327
|
+
Error: FamilyErrorClass<FamilyError<Schema, Config>>;
|
|
328
|
+
/**
|
|
329
|
+
* Checks whether `value` was created by any class in this family, narrowing
|
|
330
|
+
* it to the fields every family error shares.
|
|
331
|
+
*
|
|
332
|
+
* This is an `instanceof factory.Error` check, so errors from another copy
|
|
333
|
+
* of the factory, such as one loaded in a different realm, do not match.
|
|
334
|
+
*
|
|
335
|
+
* @example
|
|
336
|
+
* ```ts
|
|
337
|
+
* catch (error) {
|
|
338
|
+
* if (createRequestError.is(error)) {
|
|
339
|
+
* error.code; // string
|
|
340
|
+
* }
|
|
341
|
+
* }
|
|
342
|
+
* ```
|
|
343
|
+
*/
|
|
344
|
+
is(value: unknown): value is FamilyError<Schema, Config>;
|
|
288
345
|
};
|
|
289
346
|
//#endregion
|
|
290
|
-
export { BlueprintContext, BlueprintErrorTemplate, CreateErrorConfig, ErrorFamilyFactory };
|
|
347
|
+
export { BlueprintContext, BlueprintErrorTemplate, CreateErrorConfig, ErrorFamilyFactory, ImplementOptions, InvariantInput };
|
|
291
348
|
//# sourceMappingURL=types.d.cts.map
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";;;cAEc;;AAFgD,KAKzD,QAHS,CAAA,aAAuB,MAAA,EAAA,UAAA,KAAA,CAAA,GAAA;EAGhC,UACO,QAAA,CADC,EAAA;IAEM,SAAA,IAAA,EAAA,IAAA;IACG,SAAA,OAAA,EAAA,OAAA;EAFV,CAAA;CAAQ;AAAA,KAMf,eAAA,CAAA,eAA+B,gBAAhB,CAAA,GAClB,gBAAA,CAAiB,UADC,CACU,MADV,CAAA;KAGf,gBAH+B,CAAA,eAGC,gBAHD,CAAA,GAIlC,gBAAA,CAAiB,WAJiB,CAIL,MAJK,CAAA;KAM/B,eALyB,CAAA,KAAA,EAAA,UAAA,CAAA,GAKY,KALZ,SAAA,MAAA,GAM1B,UAN0B,GAMb,MANa,CAMN,OANM,CAAA,MAMQ,UANR,EAAA,MAM0B,KAN1B,CAAA,EAAA,KAAA,CAAA,GAO1B,UAP0B;KASzB,kBATc,CAAA,eASoB,gBATpB,CAAA,GAUjB,gBAViB,CAUA,MAVA,CAAA,SAAA,MAAA,GAAA,mBAAU,MAYE,gBAZF,CAYmB,MAZnB,CAAA,GAY6B,gBAZ7B,CAY8C,MAZ9C,CAAA,CAYsD,GAZtD,CAAA,GAanB,QAbmB,CAAA,YAAA,EAaI,GAbJ,CAAA,EAAA,GAExB,KAAA;KAeA,kBAfgC,CAAA,eAeE,gBAfF,CAAA,GAgBnC,gBAhBmC,CAgBlB,MAhBkB,CAAA,SAAA,MAAA,GAAA,mBACN,MAiBA,gBAjBA,CAiBiB,MAjBjB,CAAA,GAiB2B,gBAjB3B,CAiB4C,MAjB5C,CAAA,CAiBoD,GAjBpD,CAAA,EAA7B,GAAA,KAAA;KAqBG,QAAA,GAAW,QArBc,CAAA,MAAA,CAAA;AAAA,KAuBzB,kBAAA,GAAqB,QArBN,CAAA,gBAAA,CAAA,GAAA;EAAsB,CAAA,gBAAA,CAAA,CAAA,QAAA,EAuB5B,UAvB4B,CAAA,EAAA,MAAA,GAwB5B,QAxB4B,CAAA,wBAAA,EAwBO,UAxBP,CAAA;CACtC;;AAAoD,UA2BvC,gBA3BuC,CAAA,eA2BP,gBA3BO,CAAA,CAAA;EAAhC;EAAP,UAAA,EA6BH,kBA7BG,CA6BgB,MA7BhB,CAAA;EACb;EAAU,IAAA,EA+BN,QA/BM;EAET;;;;;;;EAGqD,cAAA,EAmCxC,kBAnCwC;;;AAChD,UAsCO,cAtCP,CAAA,eAsCqC,gBAtCrC,CAAA,CAAA;EAAQ;EAIb,UAAA,EAoCS,kBApCS,CAoCU,MApCV,CAAA;EAAgB;EACpB,KAAA,EAAA,MAAA;;;;;;;;AAEmE;AAI9D;;;;;;AASxB;;AAEiC,UAuChB,iBAvCgB,CAAA,eAuCiB,gBAvCjB,CAAA,CAAA;EAAnB;;;;EAgBG,UAAA,EA4BH,MA5BiB;EAAgB;;;;AAuB/C;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/types.d.mts
CHANGED
|
@@ -107,12 +107,16 @@ interface CreateErrorConfig<Schema extends StandardSchemaV1> {
|
|
|
107
107
|
* validate constructor input; use `data.resolve` and `defineContext` for
|
|
108
108
|
* that.
|
|
109
109
|
*
|
|
110
|
+
* `data` is typed separately by each concrete error, so the blueprint can
|
|
111
|
+
* pass it along but cannot read its fields. Use `definition` values or the
|
|
112
|
+
* `implementation` callback for anything derived from it.
|
|
113
|
+
*
|
|
110
114
|
* @example Expose definition and resolved-data values
|
|
111
115
|
* ```ts
|
|
112
|
-
* properties: ({ definition, data }) => ({
|
|
116
|
+
* properties: ({ definition, data, implementation }) => ({
|
|
113
117
|
* code: definition.code,
|
|
114
118
|
* context: data,
|
|
115
|
-
* describe: () => `${definition.code}: ${data
|
|
119
|
+
* describe: () => `${definition.code}: ${implementation(data)}`,
|
|
116
120
|
* })
|
|
117
121
|
* ```
|
|
118
122
|
*/
|
|
@@ -142,9 +146,14 @@ type ResolveTemplate<Config> = Config extends {
|
|
|
142
146
|
};
|
|
143
147
|
} ? Resolved : never;
|
|
144
148
|
type InjectedDefinitionKeys<Template> = { [Key in keyof Template]: Template[Key] extends TypeSlot<'definition', PropertyKey> ? Key : never }[keyof Template];
|
|
145
|
-
type ConstructorInput<Config, Data> = Data extends readonly unknown[] ? Data : Data extends object ? Omit<Data, Extract<InjectedDefinitionKeys<ResolveTemplate<Config>>, keyof Data>> : Data;
|
|
149
|
+
type ConstructorInput<Config, Data> = Data extends readonly unknown[] | ((...arguments_: never[]) => unknown) ? Data : Data extends object ? Omit<Data, Extract<InjectedDefinitionKeys<ResolveTemplate<Config>>, keyof Data>> : Data;
|
|
146
150
|
type ReplaceTuple<Values extends readonly unknown[], Definition, Data, Implementation> = { [Index in keyof Values]: ReplaceTemplate<Values[Index], Definition, Data, Implementation> };
|
|
147
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Built-in class instances that are never plain objects. Templates are not
|
|
153
|
+
* expanded inside them, and they never receive definition fields.
|
|
154
|
+
*/
|
|
155
|
+
type OpaqueObject = Date | RegExp | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | PromiseLike<unknown> | ArrayBuffer | ArrayBufferView;
|
|
156
|
+
type ReplaceTemplate<Type, Definition, Data, Implementation> = Type extends TypeSlot<'definition', infer Key> ? Key extends keyof Definition ? Definition[Key] : never : Type extends TypeSlot<'data'> ? Data : Type extends TypeSlot<'implementation'> ? Implementation : Type extends OpaqueObject ? Type : Type extends ((...arguments_: infer Arguments) => infer Result) ? (...arguments_: ReplaceTuple<Arguments, Definition, Data, Implementation>) => ReplaceTemplate<Result, Definition, Data, Implementation> : Type extends readonly unknown[] ? ReplaceTuple<Type, Definition, Data, Implementation> : Type extends object ? { [Key in keyof Type]: ReplaceTemplate<Type[Key], Definition, Data, Implementation> } : Type;
|
|
148
157
|
type PropertiesTemplate<Config> = Config extends {
|
|
149
158
|
properties: (...arguments_: infer _Arguments) => infer Properties;
|
|
150
159
|
} ? Properties : object;
|
|
@@ -168,11 +177,17 @@ type InstanceProperties<Config, Definition, Data, Implementation> = ReplaceTempl
|
|
|
168
177
|
type MessageTemplate<Config> = Config extends {
|
|
169
178
|
message: (...arguments_: infer _Arguments) => infer Message;
|
|
170
179
|
} ? Message : string;
|
|
171
|
-
type ImplementationArgumentWithDefinition<Argument$1, Definition, Data> = Argument$1 extends TypeSlot<'data'> ? Data : ReplaceTemplate<Argument$1, Definition, Data, never> extends infer Resolved ? Argument$1 extends TypeSlot<string, unknown> ? Resolved : Resolved extends readonly unknown[] ? Resolved : Resolved extends ((...arguments_: infer _Arguments) => unknown) ? Resolved : Resolved extends object ? Omit<Definition, keyof Resolved> & Resolved : Resolved : never;
|
|
180
|
+
type ImplementationArgumentWithDefinition<Argument$1, Definition, Data> = Argument$1 extends TypeSlot<'data'> ? Data : ReplaceTemplate<Argument$1, Definition, Data, never> extends infer Resolved ? Argument$1 extends TypeSlot<string, unknown> ? Resolved : Resolved extends OpaqueObject | readonly unknown[] ? Resolved : Resolved extends ((...arguments_: infer _Arguments) => unknown) ? Resolved : Resolved extends object ? Omit<Definition, keyof Resolved> & Resolved : Resolved : never;
|
|
172
181
|
type ImplementationArgument<Config, Definition, Data> = MessageTemplate<Config> extends TypeSlot<'implementationArgument', infer Argument> ? ImplementationArgumentWithDefinition<Argument, Definition, Data> : never;
|
|
173
182
|
type ImplementationCallback<Config, Definition, Data> = (argument: ImplementationArgument<Config, Definition, Data>) => string;
|
|
174
183
|
type PassedImplementationArgument<Config, Definition, Data> = MessageTemplate<Config> extends TypeSlot<'implementationArgument', infer Argument> ? Argument extends TypeSlot<'data'> ? Data : ReplaceTemplate<Argument, Definition, Data, never> : never;
|
|
175
184
|
type PassedImplementationCallback<Config, Definition, Data> = (argument: PassedImplementationArgument<Config, Definition, Data>) => string;
|
|
185
|
+
/**
|
|
186
|
+
* Input accepted by `invariant`: the constructor input, or a function that
|
|
187
|
+
* returns it. When the constructor input can itself be a function, only the
|
|
188
|
+
* wrapped form is accepted so a callback is never mistaken for a lazy input.
|
|
189
|
+
*/
|
|
190
|
+
type InvariantInput<Input> = ExtendsNever<Extract<Input, (...arguments_: never[]) => unknown>, Input | (() => Input), () => Input>;
|
|
176
191
|
interface ErrorClassStatics {
|
|
177
192
|
/**
|
|
178
193
|
* Throws this error class when `condition` is falsy.
|
|
@@ -181,6 +196,10 @@ interface ErrorClassStatics {
|
|
|
181
196
|
* unless the invariant fails. TypeScript narrows `condition` after a
|
|
182
197
|
* successful call.
|
|
183
198
|
*
|
|
199
|
+
* TypeScript only allows assertion calls through explicitly typed names, so
|
|
200
|
+
* call this on a `class` declaration. For a class stored in a `const`, use
|
|
201
|
+
* the standalone {@link invariant} function instead.
|
|
202
|
+
*
|
|
184
203
|
* @example
|
|
185
204
|
* ```ts
|
|
186
205
|
* MissingUserError.invariant(
|
|
@@ -192,15 +211,22 @@ interface ErrorClassStatics {
|
|
|
192
211
|
* user.id; // narrowed to the truthy branch
|
|
193
212
|
* ```
|
|
194
213
|
*/
|
|
195
|
-
invariant<Condition, Input>(this: new (input: Input, options?: ErrorOptions) => Error, condition: Condition, input: Input
|
|
214
|
+
invariant<Condition, Input>(this: new (input: Input, options?: ErrorOptions) => Error, condition: Condition, input: InvariantInput<Input>, options?: ErrorOptions): asserts condition;
|
|
196
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* The instance type shared by every error in one family.
|
|
218
|
+
*
|
|
219
|
+
* Definition-derived fields use the schema's general output type, and the data
|
|
220
|
+
* property is `unknown` because each concrete error types its own data.
|
|
221
|
+
*/
|
|
222
|
+
type FamilyError<Schema extends StandardSchemaV1, Config> = InstanceProperties<Config, ConcreteDefinition<Schema>, unknown, (argument: never) => string>;
|
|
197
223
|
/**
|
|
198
224
|
* The shared native `Error` base created for one blueprint.
|
|
199
225
|
*
|
|
200
226
|
* Use `factory.Error` for family-wide `instanceof` checks or as a public base
|
|
201
227
|
* type for errors created by the same blueprint.
|
|
202
228
|
*/
|
|
203
|
-
type FamilyErrorClass = (abstract new (...arguments_: never[]) =>
|
|
229
|
+
type FamilyErrorClass<Instance extends Error = Error> = (abstract new (...arguments_: never[]) => Instance) & ErrorClassStatics;
|
|
204
230
|
/** An extendable concrete error class produced by a configured factory. */
|
|
205
231
|
interface ConcreteErrorClass<Input, Instance> extends ErrorClassStatics {
|
|
206
232
|
/**
|
|
@@ -216,6 +242,18 @@ type BuilderData<Data, InferredData> = ExtendsNever<Data, InferredData, Data>;
|
|
|
216
242
|
type DefaultBuilderData<Data> = ExtendsNever<Data, unknown, Data>;
|
|
217
243
|
type BuilderInput<Input, Data> = ExtendsNever<Input, Data, Input>;
|
|
218
244
|
type Expand<Type> = Type extends ((...arguments_: infer Arguments) => infer Result) ? (...arguments_: Arguments) => Result : Type;
|
|
245
|
+
/** Options for a concrete error class created by `implement`. */
|
|
246
|
+
interface ImplementOptions {
|
|
247
|
+
/**
|
|
248
|
+
* The class name, used for `error.name` and stack traces.
|
|
249
|
+
*
|
|
250
|
+
* Classes assigned to a variable have no name of their own, so set this
|
|
251
|
+
* when you use `const NotFoundError = factory(...).implement(...)`. A named
|
|
252
|
+
* subclass, such as `class NotFoundError extends ... {}`, uses its own name
|
|
253
|
+
* instead.
|
|
254
|
+
*/
|
|
255
|
+
name?: string;
|
|
256
|
+
}
|
|
219
257
|
/** Captures the final behavior for one concrete error class. */
|
|
220
258
|
interface ImplementationBuilder<Config, Definition, Input = never, Data = never> {
|
|
221
259
|
/**
|
|
@@ -227,14 +265,16 @@ interface ImplementationBuilder<Config, Definition, Input = never, Data = never>
|
|
|
227
265
|
*
|
|
228
266
|
* @example
|
|
229
267
|
* ```ts
|
|
268
|
+
* // The blueprint's message calls `implementation({ context: data })`.
|
|
230
269
|
* const MissingUserError = createRequestError({
|
|
231
270
|
* code: 'missingUser',
|
|
232
271
|
* }).implement(
|
|
233
272
|
* ({ code, context }) => `${code}: ${context.userId} was not found`,
|
|
273
|
+
* { name: 'MissingUserError' },
|
|
234
274
|
* );
|
|
235
275
|
* ```
|
|
236
276
|
*/
|
|
237
|
-
implement<InferredData = DefaultBuilderData<Data>>(implementation: Expand<ImplementationCallback<Config, Definition, BuilderData<Data, InferredData
|
|
277
|
+
implement<InferredData = DefaultBuilderData<Data>>(implementation: Expand<ImplementationCallback<Config, Definition, BuilderData<Data, InferredData>>>, options?: ImplementOptions): ImplementedErrorClass<Config, Definition, BuilderInput<Input, BuilderData<Data, InferredData>>, BuilderData<Data, InferredData>>;
|
|
238
278
|
}
|
|
239
279
|
/** Configures one concrete error definition before creating its class. */
|
|
240
280
|
interface ErrorDefinitionBuilder<Config, Definition> extends ImplementationBuilder<Config, Definition> {
|
|
@@ -284,8 +324,25 @@ type ErrorFamilyFactory<Schema extends StandardSchemaV1, Config> = {
|
|
|
284
324
|
* error instanceof createRequestError.Error;
|
|
285
325
|
* ```
|
|
286
326
|
*/
|
|
287
|
-
Error: FamilyErrorClass
|
|
327
|
+
Error: FamilyErrorClass<FamilyError<Schema, Config>>;
|
|
328
|
+
/**
|
|
329
|
+
* Checks whether `value` was created by any class in this family, narrowing
|
|
330
|
+
* it to the fields every family error shares.
|
|
331
|
+
*
|
|
332
|
+
* This is an `instanceof factory.Error` check, so errors from another copy
|
|
333
|
+
* of the factory, such as one loaded in a different realm, do not match.
|
|
334
|
+
*
|
|
335
|
+
* @example
|
|
336
|
+
* ```ts
|
|
337
|
+
* catch (error) {
|
|
338
|
+
* if (createRequestError.is(error)) {
|
|
339
|
+
* error.code; // string
|
|
340
|
+
* }
|
|
341
|
+
* }
|
|
342
|
+
* ```
|
|
343
|
+
*/
|
|
344
|
+
is(value: unknown): value is FamilyError<Schema, Config>;
|
|
288
345
|
};
|
|
289
346
|
//#endregion
|
|
290
|
-
export { BlueprintContext, BlueprintErrorTemplate, CreateErrorConfig, ErrorFamilyFactory };
|
|
347
|
+
export { BlueprintContext, BlueprintErrorTemplate, CreateErrorConfig, ErrorFamilyFactory, ImplementOptions, InvariantInput };
|
|
291
348
|
//# sourceMappingURL=types.d.mts.map
|
package/dist/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":";;;cAEc;;AAFgD,KAKzD,QAHS,CAAA,aAAuB,MAAA,EAAA,UAAA,KAAA,CAAA,GAAA;EAGhC,UACO,QAAA,CADC,EAAA;IAEM,SAAA,IAAA,EAAA,IAAA;IACG,SAAA,OAAA,EAAA,OAAA;EAFV,CAAA;CAAQ;AAAA,KAMf,eAAA,CAAA,eAA+B,gBAAhB,CAAA,GAClB,gBAAA,CAAiB,UADC,CACU,MADV,CAAA;KAGf,gBAH+B,CAAA,eAGC,gBAHD,CAAA,GAIlC,gBAAA,CAAiB,WAJiB,CAIL,MAJK,CAAA;KAM/B,eALyB,CAAA,KAAA,EAAA,UAAA,CAAA,GAKY,KALZ,SAAA,MAAA,GAM1B,UAN0B,GAMb,MANa,CAMN,OANM,CAAA,MAMQ,UANR,EAAA,MAM0B,KAN1B,CAAA,EAAA,KAAA,CAAA,GAO1B,UAP0B;KASzB,kBATc,CAAA,eASoB,gBATpB,CAAA,GAUjB,gBAViB,CAUA,MAVA,CAAA,SAAA,MAAA,GAAA,mBAAU,MAYE,gBAZF,CAYmB,MAZnB,CAAA,GAY6B,gBAZ7B,CAY8C,MAZ9C,CAAA,CAYsD,GAZtD,CAAA,GAanB,QAbmB,CAAA,YAAA,EAaI,GAbJ,CAAA,EAAA,GAExB,KAAA;KAeA,kBAfgC,CAAA,eAeE,gBAfF,CAAA,GAgBnC,gBAhBmC,CAgBlB,MAhBkB,CAAA,SAAA,MAAA,GAAA,mBACN,MAiBA,gBAjBA,CAiBiB,MAjBjB,CAAA,GAiB2B,gBAjB3B,CAiB4C,MAjB5C,CAAA,CAiBoD,GAjBpD,CAAA,EAA7B,GAAA,KAAA;KAqBG,QAAA,GAAW,QArBc,CAAA,MAAA,CAAA;AAAA,KAuBzB,kBAAA,GAAqB,QArBN,CAAA,gBAAA,CAAA,GAAA;EAAsB,CAAA,gBAAA,CAAA,CAAA,QAAA,EAuB5B,UAvB4B,CAAA,EAAA,MAAA,GAwB5B,QAxB4B,CAAA,wBAAA,EAwBO,UAxBP,CAAA;CACtC;;AAAoD,UA2BvC,gBA3BuC,CAAA,eA2BP,gBA3BO,CAAA,CAAA;EAAhC;EAAP,UAAA,EA6BH,kBA7BG,CA6BgB,MA7BhB,CAAA;EACb;EAAU,IAAA,EA+BN,QA/BM;EAET;;;;;;;EAGqD,cAAA,EAmCxC,kBAnCwC;;;AAChD,UAsCO,cAtCP,CAAA,eAsCqC,gBAtCrC,CAAA,CAAA;EAAQ;EAIb,UAAA,EAoCS,kBApCS,CAoCU,MApCV,CAAA;EAAgB;EACpB,KAAA,EAAA,MAAA;;;;;;;;AAEmE;AAI9D;;;;;;AASxB;;AAEiC,UAuChB,iBAvCgB,CAAA,eAuCiB,gBAvCjB,CAAA,CAAA;EAAnB;;;;EAgBG,UAAA,EA4BH,MA5BiB;EAAgB;;;;AAuB/C;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,70 +1,69 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@jfdevelops/create-error",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Create strongly typed, configurable error families.",
|
|
5
|
-
"sideEffects": false,
|
|
6
|
-
"type": "module",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/jfdevelops/error-blueprint.git"
|
|
11
|
-
},
|
|
12
|
-
"bugs": {
|
|
13
|
-
"url": "https://github.com/jfdevelops/error-blueprint/issues"
|
|
14
|
-
},
|
|
15
|
-
"homepage": "https://github.com/jfdevelops/error-blueprint#readme",
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@jfdevelops/create-error",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Create strongly typed, configurable error families.",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/jfdevelops/error-blueprint.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/jfdevelops/error-blueprint/issues"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/jfdevelops/error-blueprint#readme",
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=20.19.0"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"LICENSE",
|
|
22
|
+
"README.md"
|
|
23
|
+
],
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"import": {
|
|
27
|
+
"types": "./dist/index.d.mts",
|
|
28
|
+
"default": "./dist/index.mjs"
|
|
29
|
+
},
|
|
30
|
+
"require": {
|
|
31
|
+
"types": "./dist/index.d.cts",
|
|
32
|
+
"default": "./dist/index.cjs"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"./package.json": "./package.json"
|
|
36
|
+
},
|
|
37
|
+
"main": "./dist/index.cjs",
|
|
38
|
+
"module": "./dist/index.mjs",
|
|
39
|
+
"types": "./dist/index.d.mts",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@standard-schema/spec": "1.1.0"
|
|
42
|
+
},
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public",
|
|
45
|
+
"provenance": true
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@changesets/cli": "3.0.3",
|
|
49
|
+
"@types/node": "^24.3.0",
|
|
50
|
+
"rolldown": "^1.0.0-beta.31",
|
|
51
|
+
"tsdown": "^0.17.2",
|
|
52
|
+
"typescript": "^5.9.2",
|
|
53
|
+
"vite": "^7.1.11",
|
|
54
|
+
"vitest": "^3.2.4",
|
|
55
|
+
"zod": "4.6.5"
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsdown",
|
|
59
|
+
"check": "pnpm typecheck && pnpm test && pnpm build && pnpm test:package",
|
|
60
|
+
"changeset": "changeset",
|
|
61
|
+
"dev": "tsdown --watch",
|
|
62
|
+
"release": "changeset publish",
|
|
63
|
+
"test": "vitest run",
|
|
64
|
+
"test:package": "tsc --noEmit -p test/fixtures/tsconfig.json",
|
|
65
|
+
"test:watch": "vitest",
|
|
66
|
+
"typecheck": "tsc --noEmit",
|
|
67
|
+
"version-packages": "changeset version"
|
|
68
|
+
}
|
|
69
|
+
}
|