Skip to content

PURISTA API


PURISTA API / @purista/core / ClientBuilder

Class: ClientBuilder

Defined in: ClientBuilder/ClientBuilder.impl.ts:42

ClientBuilder to generate clients, based on service definitions.

Extends

Constructors

Constructor

new ClientBuilder(config?): ClientBuilder

Defined in: ClientBuilder/ClientBuilder.impl.ts:51

Parameters

config?

Partial<{ buildAs: "esm" | "commonjs" | "both"; definitionPath: string; eventBridgeClient?: { clientName: string; }; httpClient?: { clientName: string; }; outputPath: string; package?: { description: string; name: string; private: boolean; }; version: string; }>

Returns

ClientBuilder

Overrides

GenericEventEmitter.constructor

Properties

config

config: object

Defined in: ClientBuilder/ClientBuilder.impl.ts:43

buildAs

buildAs: "esm" | "commonjs" | "both"

definitionPath

definitionPath: string

eventBridgeClient

eventBridgeClient: object = eventBridgeClientConfigSchema

eventBridgeClient.clientName

clientName: string

httpClient

httpClient: object = httpClientConfigSchema

httpClient.clientName

clientName: string

outputPath

outputPath: string

package?

optional package: object

package.description

description: string

package.name

name: string

package.private

private: boolean

version

version: string


rootPath

rootPath: string

Defined in: ClientBuilder/ClientBuilder.impl.ts:49

The root path from where relative definition/config/output paths are resolved. Defaults to the current working directory (process.cwd()).

Methods

build()

build(): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:240

Runs the tsc against the generated ts source files. Depending on settings, it will generate ESM and/or commonJS files

Returns

Promise<void>


cleanDistFolder()

cleanDistFolder(): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:146

Deletes the content of the output folder. Should be called before generating the client

Returns

Promise<void>


createIndex()

createIndex(): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:156

Creates a index.ts file which exports the client(s) and types. Is used in generated package.json

Returns

Promise<void>


createPackageJson()

createPackageJson(): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:178

Creates a package.json file in the output folder. Exports the files which are build by tsc based on generated client files

Returns

Promise<void>


destroy()

destroy(): void

Defined in: ClientBuilder/ClientBuilder.impl.ts:853

Destroys the builder and cleans the event listeners

Returns

void


emit()

emit<K>(eventName, parameter?): void

Defined in: core/types/GenericEventEmitter.ts:27

Type Parameters

K

K extends EventKey<ClientBuilderEvents>

Parameters

eventName

K

parameter?

ClientBuilderEvents[K]

Returns

void

Inherited from

GenericEventEmitter.emit


generateEventBridgeClient()

generateEventBridgeClient(serviceDefinition): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:742

Generates the zero-dependency EventBridge client source files.

Parameters

serviceDefinition

FullServiceDefinition

Returns

Promise<void>


generateHEventBridgeClient()

generateHEventBridgeClient(serviceDefinition): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:786

Parameters

serviceDefinition

FullServiceDefinition

Returns

Promise<void>

Deprecated

Use generateEventBridgeClient instead.


generateHttpClient()

generateHttpClient(serviceDefinition): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:362

Generate zero‑dependency HTTP client source files from the given definition.

Parameters

serviceDefinition

FullServiceDefinition

The full service definition containing the exposed commands.

Returns

Promise<void>

Example

ts
const services = await clientBuilder.loadDefinitionFiles()
await clientBuilder.generateHttpClient(services)

getDefinitionPath()

getDefinitionPath(): string

Defined in: ClientBuilder/ClientBuilder.impl.ts:129

Resolves the definitions folder path from config with rootPath

Returns

string

path of definitions folder


getDefinitionsFromServiceBuilders()

getDefinitionsFromServiceBuilders(serviceBuilders): Promise<FullServiceDefinition>

Defined in: ClientBuilder/ClientBuilder.impl.ts:103

Gets the definitions from the provided service builders

Parameters

serviceBuilders

ServiceBuilder<ServiceBuilderTypes>[]

Returns

Promise<FullServiceDefinition>


getOutputPath()

getOutputPath(): string

Defined in: ClientBuilder/ClientBuilder.impl.ts:137

Resolves the output folder path from config with rootPath

Returns

string

path of output folder


loadConfig()

loadConfig(path?): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:81

Loads the config from a JSON file. If no path is provided, it loads purista.client.json from rootPath.

Parameters

path?

string

Returns

Promise<void>


loadDefinitionFiles()

loadDefinitionFiles(path?): Promise<FullServiceDefinition>

Defined in: ClientBuilder/ClientBuilder.impl.ts:322

Load service definitions from JSON files.

Parameters

path?

string

Optional path to the folder containing the definition files. Defaults to the configured definition path.

Returns

Promise<FullServiceDefinition>

Example

ts
const defs = await clientBuilder.loadDefinitionFiles()

off()

off<K>(eventName, fn): void

Defined in: core/types/GenericEventEmitter.ts:23

Type Parameters

K

K extends EventKey<ClientBuilderEvents>

Parameters

eventName

K

fn

EventReceiver<ClientBuilderEvents[K]>

Returns

void

Inherited from

GenericEventEmitter.off


on()

on<K>(eventName, fn): void

Defined in: core/types/GenericEventEmitter.ts:19

Type Parameters

K

K extends EventKey<ClientBuilderEvents>

Parameters

eventName

K

fn

EventReceiver<ClientBuilderEvents[K]>

Returns

void

Inherited from

GenericEventEmitter.on


removeAllListeners()

removeAllListeners(): void

Defined in: core/types/GenericEventEmitter.ts:31

Returns

void

Inherited from

GenericEventEmitter.removeAllListeners


writeConfig()

writeConfig(path?): Promise<void>

Defined in: ClientBuilder/ClientBuilder.impl.ts:120

Writes the config to a config file. Defaults to purista.client.json in rootPath directory

Parameters

path?

string

Returns

Promise<void>