@bluelibs/runner - v5.5.0
    Preparing search index...

    Interface ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>

    Fluent builder interface for constructing resources. Each method returns a new builder with updated type parameters.

    interface ResourceFluentBuilder<
        TConfig = void,
        TValue extends Promise<any> = Promise<any>,
        TDeps extends DependencyMapType = {},
        TContext = any,
        TMeta extends IResourceMeta = IResourceMeta,
        TTags extends TagType[] = TagType[],
        TMiddleware extends
            ResourceMiddlewareAttachmentType[] = ResourceMiddlewareAttachmentType[],
    > {
        id: string;
        build(): IResource<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        configSchema<TNewConfig>(
            schema: IValidationSchema<TNewConfig>,
        ): ResourceFluentBuilder<
            TNewConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        context<TNewCtx>(
            factory: () => TNewCtx,
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TNewCtx,
            TMeta,
            TTags,
            TMiddleware,
        >;
        dependencies<TNewDeps extends DependencyMapType>(
            deps: TNewDeps | ((config: TConfig) => TNewDeps),
            options?: { override?: false },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps & TNewDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        dependencies<TNewDeps extends DependencyMapType>(
            deps: TNewDeps | ((config: TConfig) => TNewDeps),
            options: { override: true },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TNewDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        dispose(
            fn: (
                this: unknown,
                value: TValue extends Promise<U> ? U : TValue,
                config: TConfig,
                dependencies: ResourceDependencyValuesType<TDependencies>,
                context: TContext,
            ) => Promise<void>,
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        exports(
            items: RegisterableItems[],
            options?: { override?: boolean },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        init<TNewConfig = TConfig, TNewValue extends Promise<any> = TValue>(
            fn: ResourceInitFn<
                ResolveConfig<TConfig, TNewConfig>,
                TNewValue,
                TDeps,
                TContext,
                TMeta,
                TTags,
                TMiddleware,
            >,
        ): ResourceFluentBuilder<
            ResolveConfig<TConfig, TNewConfig>,
            TNewValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        meta<TNewMeta extends IResourceMeta>(
            m: TNewMeta,
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TNewMeta,
            TTags,
            TMiddleware,
        >;
        middleware<TNewMw extends ResourceMiddlewareAttachmentType[]>(
            mw: TNewMw,
            options?: { override?: boolean },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TNewMw,
        >;
        overrides(
            o: OverridableElements[],
            options?: { override?: boolean },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        register(
            items:
                | RegisterableItems
                | RegisterableItems[]
                | ((config: TConfig) => RegisterableItems | RegisterableItems[]),
            options?: { override?: boolean },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        resultSchema<TResolved>(
            schema: IValidationSchema<TResolved>,
        ): ResourceFluentBuilder<
            TConfig,
            Promise<TResolved>,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        schema<TNewConfig>(
            schema: IValidationSchema<TNewConfig>,
        ): ResourceFluentBuilder<
            TNewConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
        tags<TNewTags extends TagType[]>(
            tags: TNewTags,
            options?: { override?: false },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            [...TTags[], ...TNewTags[]],
            TMiddleware,
        >;
        tags<TNewTags extends TagType[]>(
            tags: TNewTags,
            options: { override: true },
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TNewTags,
            TMiddleware,
        >;
        throws(
            list: ThrowsList,
        ): ResourceFluentBuilder<
            TConfig,
            TValue,
            TDeps,
            TContext,
            TMeta,
            TTags,
            TMiddleware,
        >;
    }

    Type Parameters

    Index

    Properties

    id: string

    Methods