Interface ExtensionBlueprint<T>
interface ExtensionBlueprint < T extends ExtensionBlueprintParameters = ExtensionBlueprintParameters , > { dataRefs : T [ "dataRefs" ] ; make < TName extends string | undefined , TParamsInput extends | object | ParamsFactory < ExtensionBlueprintDefineParams < object , any > & object > | ParamsFactory < ExtensionBlueprintDefineParams < object , object > > | ParamsFactory < ExtensionBlueprintDefineParams < object , any > > , UParentInputs extends ExtensionDataRef , > ( args : { attachTo ?: ExtensionDefinitionAttachTo<UParentInputs> & VerifyExtensionAttachTo<NonNullable<T["output"]>, UParentInputs>
; disabled ?: boolean ; if ?: FilterPredicate ; name ?: TName ; params : TParamsInput extends ExtensionBlueprintDefineParams < object , any > ? TParamsInput : T [ "params" ] extends ExtensionBlueprintDefineParams < object , any > ? "Error: This blueprint uses advanced parameter types and requires you to pass parameters as using the following callback syntax: `<blueprint>.make({ params: defineParams => defineParams(<params>) })`" : T [ "params" ] ; } , ) : OverridableExtensionDefinition < { config : T [ "config" ] ; configInput : T [ "configInput" ] ; inputs : T [ "inputs" ] ; kind : T [ "kind" ] ; name : (
string | undefined )
extends TName ? undefined : TName ; output : T [ "output" ] ; params : T [ "params" ] ; } , > ; makeWithOverrides < TName extends string | undefined , UFactoryOutput extends ExtensionDataValue < any , any > , UNewOutput extends ExtensionDataRef , UParentInputs extends ExtensionDataRef , TExtraInputs extends { [ key : string ]: ExtensionInput < ExtensionDataRef , { internal ?: boolean ; optional : boolean ; singleton : boolean } , > ; } = {} , TNewExtensionConfigSchema extends { [ key : string ]: StandardSchemaV1 < unknown , unknown > } = {} , > ( args : { attachTo ?: ExtensionDefinitionAttachTo<UParentInputs> & VerifyExtensionAttachTo<ExtensionDataRef extends UNewOutput ? NonNullable<...> : UNewOutput, UParentInputs>
; config ?: undefined ; configSchema ?: TNewExtensionConfigSchema & { [ KName in string | number | symbol ] ?: ` Error: Config key ' ${ KName & string } ' is already defined in parent schema ` } ; disabled ?: boolean ; if ?: FilterPredicate ; inputs ?: TExtraInputs & { [ KName in string | number | symbol ] ?: ` Error: Input ' ${ KName & string } ' is already defined in parent definition ` } ; name ?: TName ; output ?: UNewOutput [] ; factory ( originalFactory : < TParamsInput extends | object | ParamsFactory < ExtensionBlueprintDefineParams < object , any > & object > | ParamsFactory < ExtensionBlueprintDefineParams < object , object > > | ParamsFactory < ExtensionBlueprintDefineParams < object , any > > , > ( params : TParamsInput extends ExtensionBlueprintDefineParams < object , any , > ? TParamsInput : T [ "params" ] extends ExtensionBlueprintDefineParams < object , any > ? "Error: This blueprint uses advanced parameter types and requires you to pass parameters as using the following callback syntax: `originalFactory(defineParams => defineParams(<params>))`" : T [ "params" ] , context ?: { config ?: T [ "config" ] ; inputs ?: ResolvedInputValueOverrides < NonNullable < T [ "inputs" ] > > ; } , ) => ExtensionDataContainer < NonNullable < T [ "output" ] > > , context : { apis : ApiHolder ; config : T [ "config" ] & { [ key in string | number | symbol ] : InferOutput < TNewExtensionConfigSchema [ key ] , > } ; inputs : Expand < ResolvedExtensionInputs < T [ "inputs" ] & TExtraInputs > > ; node : AppNode ; } , ) : Iterable < UFactoryOutput , any , any > & VerifyExtensionFactoryOutput < ExtensionDataRef extends UNewOutput ? NonNullable < T [ "output" ] > : UNewOutput , UFactoryOutput , > ; } , ) : OverridableExtensionDefinition < { config : Expand < { [ key in string | number | symbol ] : InferOutput < TNewExtensionConfigSchema [ key ] > } & T [ "config" ] , > ; configInput : Expand < { [ key in string | number | symbol ] ?: InferInput < TNewExtensionConfigSchema [ key ] > } & T [ "configInput" ] , > ; inputs : Expand < T [ "inputs" ] & TExtraInputs > ; kind : T [ "kind" ] ; name : (
string | undefined )
extends TName ? undefined : TName ; output : ExtensionDataRef extends UNewOutput ? T [ "output" ] : UNewOutput ; params : T [ "params" ] ; } , > ; }
Properties
Methods
make
make < TName extends string | undefined , TParamsInput extends | object | ParamsFactory < ExtensionBlueprintDefineParams < object , any > & object > | ParamsFactory < ExtensionBlueprintDefineParams < object , object > > | ParamsFactory < ExtensionBlueprintDefineParams < object , any > > , UParentInputs extends ExtensionDataRef , > ( args : { attachTo ?: ExtensionDefinitionAttachTo<UParentInputs> & VerifyExtensionAttachTo<NonNullable<T["output"]>, UParentInputs>
; disabled ?: boolean ; if ?: FilterPredicate ; name ?: TName ; params : TParamsInput extends ExtensionBlueprintDefineParams < object , any > ? TParamsInput : T [ "params" ] extends ExtensionBlueprintDefineParams < object , any > ? "Error: This blueprint uses advanced parameter types and requires you to pass parameters as using the following callback syntax: `<blueprint>.make({ params: defineParams => defineParams(<params>) })`" : T [ "params" ] ; } , ) : OverridableExtensionDefinition < { config : T [ "config" ] ; configInput : T [ "configInput" ] ; inputs : T [ "inputs" ] ; kind : T [ "kind" ] ; name : (
string | undefined )
extends TName ? undefined : TName ; output : T [ "output" ] ; params : T [ "params" ] ; } , >
Parameters
args : { attachTo ?: ExtensionDefinitionAttachTo<UParentInputs> & VerifyExtensionAttachTo<NonNullable<T["output"]>, UParentInputs>; disabled ?: boolean ; if ?: FilterPredicate ; name ?: TName ; params : TParamsInput extends ExtensionBlueprintDefineParams < object , any > ? TParamsInput : T [ "params" ] extends ExtensionBlueprintDefineParams < object , any > ? "Error: This blueprint uses advanced parameter types and requires you to pass parameters as using the following callback syntax: `<blueprint>.make({ params: defineParams => defineParams(<params>) })`" : T [ "params" ] ; }
Returns OverridableExtensionDefinition < { config : T [ "config" ] ; configInput : T [ "configInput" ] ; inputs : T [ "inputs" ] ; kind : T [ "kind" ] ; name : (string | undefined ) extends TName ? undefined : TName ; output : T [ "output" ] ; params : T [ "params" ] ; } , >
make With Overrides
makeWithOverrides < TName extends string | undefined , UFactoryOutput extends ExtensionDataValue < any , any > , UNewOutput extends ExtensionDataRef , UParentInputs extends ExtensionDataRef , TExtraInputs extends { [ key : string ]: ExtensionInput < ExtensionDataRef , { internal ?: boolean ; optional : boolean ; singleton : boolean } , > ; } = {} , TNewExtensionConfigSchema extends { [ key : string ]: StandardSchemaV1 < unknown , unknown > } = {} , > ( args : { attachTo ?: ExtensionDefinitionAttachTo<UParentInputs> & VerifyExtensionAttachTo<ExtensionDataRef extends UNewOutput ? NonNullable<...> : UNewOutput, UParentInputs>
; config ?: undefined ; configSchema ?: TNewExtensionConfigSchema & { [ KName in string | number | symbol ] ?: ` Error: Config key ' ${ KName & string } ' is already defined in parent schema ` } ; disabled ?: boolean ; if ?: FilterPredicate ; inputs ?: TExtraInputs & { [ KName in string | number | symbol ] ?: ` Error: Input ' ${ KName & string } ' is already defined in parent definition ` } ; name ?: TName ; output ?: UNewOutput [] ; factory ( originalFactory : < TParamsInput extends | object | ParamsFactory < ExtensionBlueprintDefineParams < object , any > & object > | ParamsFactory < ExtensionBlueprintDefineParams < object , object > > | ParamsFactory < ExtensionBlueprintDefineParams < object , any > > , > ( params : TParamsInput extends ExtensionBlueprintDefineParams < object , any , > ? TParamsInput : T [ "params" ] extends ExtensionBlueprintDefineParams < object , any > ? "Error: This blueprint uses advanced parameter types and requires you to pass parameters as using the following callback syntax: `originalFactory(defineParams => defineParams(<params>))`" : T [ "params" ] , context ?: { config ?: T [ "config" ] ; inputs ?: ResolvedInputValueOverrides < NonNullable < T [ "inputs" ] > > ; } , ) => ExtensionDataContainer < NonNullable < T [ "output" ] > > , context : { apis : ApiHolder ; config : T [ "config" ] & { [ key in string | number | symbol ] : InferOutput < TNewExtensionConfigSchema [ key ] , > } ; inputs : Expand < ResolvedExtensionInputs < T [ "inputs" ] & TExtraInputs > > ; node : AppNode ; } , ) : Iterable < UFactoryOutput , any , any > & VerifyExtensionFactoryOutput < ExtensionDataRef extends UNewOutput ? NonNullable < T [ "output" ] > : UNewOutput , UFactoryOutput , > ; } , ) : OverridableExtensionDefinition < { config : Expand < { [ key in string | number | symbol ] : InferOutput < TNewExtensionConfigSchema [ key ] > } & T [ "config" ] , > ; configInput : Expand < { [ key in string | number | symbol ] ?: InferInput < TNewExtensionConfigSchema [ key ] > } & T [ "configInput" ] , > ; inputs : Expand < T [ "inputs" ] & TExtraInputs > ; kind : T [ "kind" ] ; name : (
string | undefined )
extends TName ? undefined : TName ; output : ExtensionDataRef extends UNewOutput ? T [ "output" ] : UNewOutput ; params : T [ "params" ] ; } , >
Parameters
args : { attachTo ?: ExtensionDefinitionAttachTo<UParentInputs> & VerifyExtensionAttachTo<ExtensionDataRef extends UNewOutput ? NonNullable<...> : UNewOutput, UParentInputs>; config ?: undefined ; configSchema ?: TNewExtensionConfigSchema & { [ KName in string | number | symbol ] ?: ` Error: Config key ' ${ KName & string } ' is already defined in parent schema ` } ; disabled ?: boolean ; if ?: FilterPredicate ; inputs ?: TExtraInputs & { [ KName in string | number | symbol ] ?: ` Error: Input ' ${ KName & string } ' is already defined in parent definition ` } ; name ?: TName ; output ?: UNewOutput [] ; factory ( originalFactory : < TParamsInput extends | object | ParamsFactory < ExtensionBlueprintDefineParams < object , any > & object > | ParamsFactory < ExtensionBlueprintDefineParams < object , object > > | ParamsFactory < ExtensionBlueprintDefineParams < object , any > > , > ( params : TParamsInput extends ExtensionBlueprintDefineParams < object , any , > ? TParamsInput : T [ "params" ] extends ExtensionBlueprintDefineParams < object , any > ? "Error: This blueprint uses advanced parameter types and requires you to pass parameters as using the following callback syntax: `originalFactory(defineParams => defineParams(<params>))`" : T [ "params" ] , context ?: { config ?: T [ "config" ] ; inputs ?: ResolvedInputValueOverrides < NonNullable < T [ "inputs" ] > > ; } , ) => ExtensionDataContainer < NonNullable < T [ "output" ] > > , context : { apis : ApiHolder ; config : T [ "config" ] & { [ key in string | number | symbol ] : InferOutput < TNewExtensionConfigSchema [ key ] , > } ; inputs : Expand < ResolvedExtensionInputs < T [ "inputs" ] & TExtraInputs > > ; node : AppNode ; } , ) : Iterable < UFactoryOutput , any , any > & VerifyExtensionFactoryOutput < ExtensionDataRef extends UNewOutput ? NonNullable < T [ "output" ] > : UNewOutput , UFactoryOutput , > ; }
Creates a new extension from the blueprint.
You must either pass
paramsdirectly, or define afactorythat can optionally call the original factory with the same params.