Comparing version 3.0.2 to 3.0.3
@@ -1,2 +0,2 @@ | ||
import { StaackCoreValue, KeyConsumer, KeyProvider, IKey, KeyProviderFn, MaybeParam } from 'staack'; | ||
import { StaackCoreValue, KeyConsumer, KeyProvider, IKey, KeyProviderFn } from 'staack'; | ||
export { IKey, KeyConsumer, KeyProvider, KeyProviderFn } from 'staack'; | ||
@@ -46,2 +46,5 @@ | ||
withMessage(message: string): Erreur; | ||
merge(other: Erreur): Erreur; | ||
mergeOn(other: Erreur): Erreur; | ||
dedupe(): Erreur; | ||
static is: typeof isErreur; | ||
@@ -57,15 +60,19 @@ static resolve: typeof resolve; | ||
interface IErreurType<T, HasDefault extends boolean = boolean> { | ||
interface IErreurType<T, HasDefault extends boolean = boolean, Args extends readonly any[] = [T]> { | ||
readonly Consumer: KeyConsumer<T, HasDefault>; | ||
readonly Provider: KeyProviderFn<T, HasDefault>; | ||
readonly create: (...args: MaybeParam<T>) => Erreur; | ||
readonly extends: (erreur: Erreur | null, ...args: MaybeParam<T>) => Erreur; | ||
readonly create: (...args: Args) => Erreur; | ||
readonly append: (erreur: Erreur, ...args: Args) => Erreur; | ||
} | ||
type Transform<T> = (current: Erreur, value: T) => Erreur; | ||
type TransformErreur<T> = (base: Erreur, provider: KeyProvider<T>, value: T) => Erreur; | ||
type TransformValue<T, Args extends readonly any[]> = (...args: Args) => T; | ||
declare const ErreurType: { | ||
define: <T>(name: string, transform?: Transform<T> | undefined) => IErreurType<T, false>; | ||
defineWithDefault: <T_1>(name: string, defaultValue: T_1, transform?: Transform<T_1> | undefined) => IErreurType<T_1, true>; | ||
defineEmpty: (name: string, transform?: Transform<undefined>) => IErreurType<undefined, false>; | ||
defineAdvanced: <T, HasDefault extends boolean, Args extends readonly any[]>(key: IKey<T, HasDefault>, transformValue: TransformValue<T, Args>, transformErreur?: TransformErreur<T>) => IErreurType<T, HasDefault, Args>; | ||
define: <T_1>(name: string, transformErreur?: TransformErreur<T_1>) => IErreurType<T_1, false, [T_1]>; | ||
defineWithDefault: <T_2>(name: string, defaultValue: T_2, transformErreur?: TransformErreur<T_2>) => IErreurType<T_2, true, [T_2]>; | ||
defineEmpty: (name: string, transformErreur?: TransformErreur<undefined>) => IErreurType<undefined, false, [ | ||
]>; | ||
defineWithTransform: <T_3, Args_1 extends readonly any[]>(name: string, transformValue: TransformValue<T_3, Args_1>, transformErreur?: TransformErreur<T_3>) => IErreurType<T_3, false, Args_1>; | ||
}; | ||
export { Erreur, ErreurType, IErreurType, MessageKey, StackTraceKey, Transform }; | ||
export { Erreur, ErreurType, IErreurType, MessageKey, StackTraceKey, TransformErreur, TransformValue }; |
@@ -47,17 +47,23 @@ "use strict"; | ||
var ErreurType = (() => { | ||
const DEFAULT_TRANSFORM_ERREUR = (base, provider) => base.with(provider); | ||
return { | ||
defineAdvanced, | ||
define, | ||
defineWithDefault, | ||
defineEmpty | ||
defineEmpty, | ||
defineWithTransform | ||
}; | ||
function define(name, transform) { | ||
return defineInternal(import_staack.Key.create(name), transform); | ||
function define(name, transformErreur = DEFAULT_TRANSFORM_ERREUR) { | ||
return defineAdvanced(import_staack.Key.create(name), (v) => v, transformErreur); | ||
} | ||
function defineWithDefault(name, defaultValue, transform) { | ||
return defineInternal(import_staack.Key.createWithDefault(name, defaultValue), transform); | ||
function defineWithTransform(name, transformValue, transformErreur = DEFAULT_TRANSFORM_ERREUR) { | ||
return defineAdvanced(import_staack.Key.create(name), transformValue, transformErreur); | ||
} | ||
function defineEmpty(name, transform) { | ||
return defineInternal(import_staack.Key.createEmpty(name), transform); | ||
function defineWithDefault(name, defaultValue, transformErreur = DEFAULT_TRANSFORM_ERREUR) { | ||
return defineAdvanced(import_staack.Key.createWithDefault(name, defaultValue), (v) => v, transformErreur); | ||
} | ||
function defineInternal(key, transform) { | ||
function defineEmpty(name, transformErreur = DEFAULT_TRANSFORM_ERREUR) { | ||
return defineAdvanced(import_staack.Key.createEmpty(name), () => void 0, transformErreur); | ||
} | ||
function defineAdvanced(key, transformValue, transformErreur = DEFAULT_TRANSFORM_ERREUR) { | ||
return { | ||
@@ -67,11 +73,11 @@ Consumer: key.Consumer, | ||
create, | ||
extends: extendsErreur | ||
append | ||
}; | ||
function create(...args) { | ||
return extendsErreur(null, ...args); | ||
return append(Erreur.create(), ...args); | ||
} | ||
function extendsErreur(erreur, ...args) { | ||
const parent = erreur || Erreur.create(); | ||
const transformed = transform ? transform(parent, args[0]) : parent; | ||
return transformed.with(key.Provider(...args)); | ||
function append(erreur, ...args) { | ||
const value = transformValue(...args); | ||
const provider = key.Provider(value); | ||
return transformErreur(erreur, provider, value); | ||
} | ||
@@ -195,2 +201,22 @@ } | ||
} | ||
merge(other) { | ||
if (other === this) { | ||
return this; | ||
} | ||
const nextCore = import_staack2.StaackCore.merge(this.context, other.context); | ||
if (nextCore === this.context) { | ||
return this; | ||
} | ||
return new _Erreur(nextCore); | ||
} | ||
mergeOn(other) { | ||
return other.merge(this); | ||
} | ||
dedupe() { | ||
const nextCore = import_staack2.StaackCore.dedupe(this.context); | ||
if (nextCore === this.context) { | ||
return this; | ||
} | ||
return new _Erreur(nextCore); | ||
} | ||
}; | ||
@@ -197,0 +223,0 @@ var Erreur = _Erreur; |
{ | ||
"name": "erreur", | ||
"version": "3.0.2", | ||
"version": "3.0.3", | ||
"description": "Type safe custom errors", | ||
@@ -46,3 +46,3 @@ "keywords": [ | ||
"dependencies": { | ||
"staack": "^3.0.1" | ||
"staack": "^3.0.2" | ||
}, | ||
@@ -49,0 +49,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
22659
502
Updatedstaack@^3.0.2