@sprucelabs/spruce-templates
Version:
Templates used for code generation in skills!
142 lines (141 loc) • 5.06 kB
TypeScript
import { PermissionContractMap } from '@sprucelabs/mercury-types';
import { Schema, SchemaTemplateItem, FieldTemplateItem } from '@sprucelabs/schema';
import { TemplateRenderAs } from '@sprucelabs/schema';
import handlebars from 'handlebars';
import { FieldDefinitions } from '#spruce/schemas/fields/fields.types';
import { DirectoryTemplateCode, DirectoryTemplateContextMap, ValueTypes, SchemaBuilderTemplateItem, ErrorOptions, ErrorTemplateItem, TestOptions, EventListenerOptions, EventContractTemplateItem, EventPayloadOptions, StoreTemplateOptions, StoreTemplateItem, ViewsOptions as CombinedViewsOptions, ListenerTemplateItem } from './types/templates.types';
import './addons';
export declare const templates: {
schemasTypes(options: {
schemaTemplateItems: SchemaTemplateItem[];
fieldTemplateItems: FieldTemplateItem[];
valueTypes: ValueTypes;
globalSchemaNamespace?: string;
typesTemplate?: string;
}): string;
valueTypes(options: {
schemaTemplateItems: SchemaTemplateItem[];
fieldTemplateItems: FieldTemplateItem[];
globalSchemaNamespace?: string;
}): string;
schema(options: SchemaTemplateItem & {
schemaTemplateItems: SchemaTemplateItem[];
fieldTemplateItems: FieldTemplateItem[];
valueTypes: ValueTypes;
globalSchemaNamespace?: string;
registerBuiltSchemas: boolean;
schemaFile?: string;
typesFile?: string;
}): string;
schemaBuilder(options: SchemaBuilderTemplateItem): string;
error(options: ErrorOptions): string;
errorOptionsTypes(options: {
options: ErrorTemplateItem[];
}): string;
schemaExample(options: {
nameCamel: string;
namePascal: string;
definition: Schema;
}): string;
schemaPlugin(): string;
errorPlugin(): string;
conversationPlugin(): string;
deployPlugin(): string;
errorExample(options: {
nameCamel: string;
namePascal: string;
definition: Schema;
}): string;
test(options: TestOptions): string;
fieldsTypes(options: {
fieldTemplateItems: FieldTemplateItem[];
}): string;
fieldClassMap(options: {
fieldTemplateItems: FieldTemplateItem[];
}): string;
launchConfig(): string;
vsCodeSettings(): Promise<string>;
listener(options: EventListenerOptions): string;
listeners(options: {
listeners: ListenerTemplateItem[];
}): string;
eventContract(options: EventContractTemplateItem & {
schemaTemplateItems: SchemaTemplateItem[];
}): string;
eventOptions(options: {
isGlobal: boolean;
}): string;
permissionPlugin(): string;
permissions(options: {
contracts: {
path: string;
nameCamel: string;
}[];
}): string;
permissionContractBuilder(options: {
nameCamel: string;
nameKebab: string;
nameReadable: string;
description?: string;
}): string;
permissionTypes(options: {
contracts: PermissionContractMap;
}): string;
eventEmitPayload(options: EventPayloadOptions): string;
eventEmitTarget(options: EventPayloadOptions): string;
eventResponsePayload(options: EventPayloadOptions): string;
combinedEventsContract(options: {
templateItems: EventContractTemplateItem[];
shouldImportCoreEvents?: boolean;
skillEventContractTypesFile: string;
}): string;
sandboxWillBootListener(): string;
polish(): string;
directoryTemplate<K extends DirectoryTemplateCode>(options: {
kind: K;
context: DirectoryTemplateContextMap[K];
}): Promise<(import("./types/templates.types").DirectoryTemplateFile & {
contents: string;
})[]>;
isValidTemplatedDirectory(options: {
kind: DirectoryTemplateCode;
dir: string;
}): Promise<boolean>;
conversationTopic(options: {
nameReadable: string;
}): string;
generateFieldKey(renderAs: TemplateRenderAs, definition: FieldDefinitions): string;
storePlugin(): string;
store(options: StoreTemplateOptions): string;
storeTypes(options: {
stores: StoreTemplateItem[];
}): string;
stores(options: {
stores: StoreTemplateItem[];
}): string;
skillViewController(options: {
namePascal: string;
nameKebab: string;
}): string;
viewController(options: {
viewModel: string;
namePascal: string;
nameKebab: string;
}): string;
appController(options: {
id: string;
namespacePascal: string;
}): string;
views(options: CombinedViewsOptions): string;
viewPlugin(): string;
viewControllerPlugin(options: {
namePascal: string;
nameCamel: string;
}): string;
theme(): string;
logTransport(): string;
};
export type Templates = typeof templates;
export { default as importExtractorUtil } from './utilities/importExtractor.utility';
export default handlebars;
export * from './types/templates.types';