function resolveBuilder

export declare function resolveBuilder<Builder extends JSONEncodable<any>, BuilderData extends Record<PropertyKey, any>>(builder: Builder | BuilderData | ((builder: Builder) => Builder), Constructor: new (data?: BuilderData) => Builder): Builder;

"Resolves" a builder from the 3 ways it can be input: 1. A clean instance 2. A data object that can be used to construct the builder 3. A function that takes a builder and returns a builder e.g. builder => builder.setFoo('bar')

Type Parameters

Builder extends JSONEncodable<any>

The builder type

BuilderData extends Record<PropertyKey, any>

The data object that can be used to construct the builder

Parameters

builder: Builder | BuilderData | ((builder: Builder) => Builder)
The user input, as described in the function description
Constructor: new (data?: BuilderData) => Builder
The constructor of the builder