Skip to content

PURISTA API


PURISTA API / @purista/core / ServiceBuilder

Class: ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:79

This class is used to build a service.

Type Parameters

S

S extends ServiceBuilderTypes = ServiceBuilderTypes

Constructors

Constructor

new ServiceBuilder<S>(info): ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:104

Parameters

info

ServiceInfoType

Returns

ServiceBuilder<S>

Properties

info

info: ServiceInfoType

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:104


SClass

SClass: Newable<S["ServiceClassType"], ServiceClassTypes<S["ConfigType"], S["Resources"]>> = Service

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:101

Methods

addCommandDefinition()

addCommandDefinition(...commands): ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:132

Parameters

commands

...CommandDefinitionList<S["ServiceClassType"]>

Returns

ServiceBuilder<S>


addQueueDefinition()

addQueueDefinition(...queues): ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:165

Parameters

queues

...QueueDefinitionList<S["ServiceClassType"]>

Returns

ServiceBuilder<S>


addQueueWorkerDefinition()

addQueueWorkerDefinition(...workers): ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:176

Parameters

workers

...QueueWorkerDefinitionList<S["ServiceClassType"]>

Returns

ServiceBuilder<S>


addStreamDefinition()

addStreamDefinition(...streams): ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:154

Parameters

streams

...StreamDefinitionList<S["ServiceClassType"]>

Returns

ServiceBuilder<S>


addSubscriptionDefinition()

addSubscriptionDefinition(...subscription): ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:143

Parameters

subscription

...SubscriptionDefinitionList<S["ServiceClassType"]>

Returns

ServiceBuilder<S>


defineResource()

defineResource<ResourceName, ResourcesType>(): ServiceBuilder<SetNewTypeValue<S, "Resources", S["Resources"] & { [K in string]: InstanceOrType<ResourcesType> }>>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:220

Type Parameters

ResourceName

ResourceName extends string

ResourcesType

ResourcesType

Returns

ServiceBuilder<SetNewTypeValue<S, "Resources", S["Resources"] & { [K in string]: InstanceOrType<ResourcesType> }>>


getCommandBuilder()

getCommandBuilder<T, N>(commandName, description, eventName?): CommandDefinitionBuilder<S["ServiceClassType"], CommandDefinitionBuilderTypes<Schema, Schema, Schema, Schema, Schema, Schema, S["Resources"], InvokeList, StreamInvokeList, Record<string, Schema>, QueueInvokeList>>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:314

Type Parameters

T

T extends string

N

N extends string

Parameters

commandName

NonEmptyString<T>

description

string

eventName?

NonEmptyString<N>

Returns

CommandDefinitionBuilder<S["ServiceClassType"], CommandDefinitionBuilderTypes<Schema, Schema, Schema, Schema, Schema, Schema, S["Resources"], InvokeList, StreamInvokeList, Record<string, Schema>, QueueInvokeList>>


getCommandDefinitions()

getCommandDefinitions(): CommandDefinitionListResolved<S["ServiceClassType"]>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:395

Returns

CommandDefinitionListResolved<S["ServiceClassType"]>


getCustomClass()

getCustomClass(): Newable<S["ServiceClassType"], ServiceClassTypes<S["ConfigType"], S["Resources"]>>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:234

Returns

Newable<S["ServiceClassType"], ServiceClassTypes<S["ConfigType"], S["Resources"]>>


getFullServiceDefinition()

getFullServiceDefinition(): Promise<{ commands: CommandDefinitionListResolved<S["ServiceClassType"]>; deprecated: boolean; queues: QueueDefinitionListResolved<S["ServiceClassType"]>; queueWorkers: QueueWorkerDefinitionListResolved<S["ServiceClassType"]>; serviceDescription: string; serviceName: string; serviceVersion: string; streams: StreamDefinitionListResolved<S["ServiceClassType"]>; subscriptions: SubscriptionDefinitionListResolved<S["ServiceClassType"]>; }>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:540

Returns

Promise<{ commands: CommandDefinitionListResolved<S["ServiceClassType"]>; deprecated: boolean; queues: QueueDefinitionListResolved<S["ServiceClassType"]>; queueWorkers: QueueWorkerDefinitionListResolved<S["ServiceClassType"]>; serviceDescription: string; serviceName: string; serviceVersion: string; streams: StreamDefinitionListResolved<S["ServiceClassType"]>; subscriptions: SubscriptionDefinitionListResolved<S["ServiceClassType"]>; }>


getInstance()

getInstance(eventBridge, options?): Promise<S["ServiceClassType"]>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:238

Parameters

eventBridge

EventBridge

options?

{ [K in string | number | symbol]: ({ configStore?: ConfigStore; logger?: Logger; logLevel?: LogLevelName; queueBridge?: QueueBridge; secretStore?: SecretStore; spanProcessor?: SpanProcessor; stateStore?: StateStore } & (keyof S["Resources"] extends NeverObject ? { resources?: undefined } : { resources: S["Resources"] }) & (keyof S["ConfigInputType"] extends NeverObject ? { serviceConfig?: undefined } : { serviceConfig?: S["ConfigInputType"] }))[K] }

Returns

Promise<S["ServiceClassType"]>


getQueueBuilder()

getQueueBuilder<T>(queueName, description): QueueDefinitionBuilder

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:425

Type Parameters

T

T extends string

Parameters

queueName

NonEmptyString<T>

description

string

Returns

QueueDefinitionBuilder


getQueueDefinitions()

getQueueDefinitions(): QueueDefinitionListResolved<S["ServiceClassType"]>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:433

Returns

QueueDefinitionListResolved<S["ServiceClassType"]>


getQueueWorkerBuilder()

getQueueWorkerBuilder<T>(queueName, workerName): QueueWorkerBuilder

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:429

Type Parameters

T

T extends string

Parameters

queueName

NonEmptyString<T>

workerName

string

Returns

QueueWorkerBuilder


getQueueWorkerDefinitions()

getQueueWorkerDefinitions(): QueueWorkerDefinitionListResolved<S["ServiceClassType"]>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:443

Returns

QueueWorkerDefinitionListResolved<S["ServiceClassType"]>


getStreamBuilder()

getStreamBuilder<T, N>(streamName, description, finalEventName?): StreamDefinitionBuilder<S["ServiceClassType"], StreamDefinitionBuilderTypes<Schema, Schema, Schema, Schema, S["Resources"], InvokeList, StreamInvokeList, Record<string, Schema>, QueueInvokeList>>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:374

Type Parameters

T

T extends string

N

N extends string

Parameters

streamName

NonEmptyString<T>

description

string

finalEventName?

NonEmptyString<N>

Returns

StreamDefinitionBuilder<S["ServiceClassType"], StreamDefinitionBuilderTypes<Schema, Schema, Schema, Schema, S["Resources"], InvokeList, StreamInvokeList, Record<string, Schema>, QueueInvokeList>>


getStreamDefinitions()

getStreamDefinitions(): StreamDefinitionListResolved<S["ServiceClassType"]>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:415

Returns

StreamDefinitionListResolved<S["ServiceClassType"]>


getSubscriptionBuilder()

getSubscriptionBuilder<T>(subscriptionName, description): SubscriptionDefinitionBuilder<S["ServiceClassType"], SubscriptionDefinitionBuilderTypes<any, any, any, any, any, any, S["Resources"], InvokeList, StreamInvokeList, Record<string, Schema>, QueueInvokeList>>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:337

Type Parameters

T

T extends string

Parameters

subscriptionName

NonEmptyString<T>

description

string

Returns

SubscriptionDefinitionBuilder<S["ServiceClassType"], SubscriptionDefinitionBuilderTypes<any, any, any, any, any, any, S["Resources"], InvokeList, StreamInvokeList, Record<string, Schema>, QueueInvokeList>>


getSubscriptionDefinitions()

getSubscriptionDefinitions(): SubscriptionDefinitionListResolved<S["ServiceClassType"]>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:405

Returns

SubscriptionDefinitionListResolved<S["ServiceClassType"]>


markAsDeprecated()

markAsDeprecated(): ServiceBuilder<S>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:127

Returns

ServiceBuilder<S>


resolveDefinitions()

resolveDefinitions(): Promise<{ commands: CommandDefinitionListResolved<S["ServiceClassType"]>; queues: QueueDefinitionListResolved<S["ServiceClassType"]>; queueWorkers: QueueWorkerDefinitionListResolved<S["ServiceClassType"]>; streams: StreamDefinitionListResolved<S["ServiceClassType"]>; subscriptions: SubscriptionDefinitionListResolved<S["ServiceClassType"]>; }>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:187

Returns

Promise<{ commands: CommandDefinitionListResolved<S["ServiceClassType"]>; queues: QueueDefinitionListResolved<S["ServiceClassType"]>; queueWorkers: QueueWorkerDefinitionListResolved<S["ServiceClassType"]>; streams: StreamDefinitionListResolved<S["ServiceClassType"]>; subscriptions: SubscriptionDefinitionListResolved<S["ServiceClassType"]>; }>


setConfigSchema()

setConfigSchema<T>(schema): ServiceBuilder<SetNewTypeValues<S, { ConfigInputType: InferIn<T> extends Record<string, unknown> ? InferIn<InferIn<T>> : NeverObject; ConfigType: Infer<T> extends Record<string, unknown> ? Infer<Infer<T>> : NeverObject; ServiceClassType: Service<ServiceClassTypes<Infer<T> extends Record<string, unknown> ? Infer<Infer<T>> : EmptyObject, S["Resources"]>>; }>>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:106

Type Parameters

T

T extends Schema

Parameters

schema

T

Returns

ServiceBuilder<SetNewTypeValues<S, { ConfigInputType: InferIn<T> extends Record<string, unknown> ? InferIn<InferIn<T>> : NeverObject; ConfigType: Infer<T> extends Record<string, unknown> ? Infer<Infer<T>> : NeverObject; ServiceClassType: Service<ServiceClassTypes<Infer<T> extends Record<string, unknown> ? Infer<Infer<T>> : EmptyObject, S["Resources"]>>; }>>


setCustomClass()

setCustomClass<T>(customClass): ServiceBuilder<SetNewTypeValue<S, "ServiceClassType", T>>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:227

Type Parameters

T

T extends Service<ServiceClassTypes<S["ConfigType"], S["Resources"]>>

Parameters

customClass

Newable<T, ServiceClassTypes<S["ConfigType"], S["Resources"]>>

Returns

ServiceBuilder<SetNewTypeValue<S, "ServiceClassType", T>>


setDefaultConfig()

setDefaultConfig(config): this

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:122

Parameters

config

Complete<S["ConfigType"]>

Returns

this


testServiceSetup()

testServiceSetup(): Promise<boolean>

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:453

Returns

Promise<boolean>


validateCommandDefinitions()

validateCommandDefinitions(): void

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:553

Returns

void

Deprecated

Use testServiceSetup() instead


validateCommands()

protected validateCommands(commandDefinitions): void

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:465

Parameters

commandDefinitions

CommandDefinitionListResolved<any>

Returns

void


validateQueues()

protected validateQueues(queueDefinitions): void

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:510

Parameters

queueDefinitions

QueueDefinitionListResolved<any>

Returns

void


validateQueueWorkers()

protected validateQueueWorkers(queueWorkers, queues): void

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:521

Parameters

queueWorkers

QueueWorkerDefinitionListResolved<any>

queues

QueueDefinitionListResolved<any>

Returns

void


validateStreams()

protected validateStreams(streamDefinitions): void

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:499

Parameters

streamDefinitions

StreamDefinitionListResolved<any>

Returns

void


validateSubscriptionDefinitions()

validateSubscriptionDefinitions(): void

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:561

Returns

void

Deprecated

Use testServiceSetup() instead


validateSubscriptions()

protected validateSubscriptions(subscriptionDefinitions): void

Defined in: ServiceBuilder/ServiceBuilder.impl.ts:487

Parameters

subscriptionDefinitions

SubscriptionDefinitionListResolved<any>

Returns

void