UNPKG

@salesforce/templates

Version:

Salesforce JS library for templates

119 lines (118 loc) 4.79 kB
import AnalyticsTemplateGenerator from '../generators/analyticsTemplateGenerator'; import ApexClassGenerator from '../generators/apexClassGenerator'; import ApexTriggerGenerator from '../generators/apexTriggerGenerator'; import LightningAppGenerator from '../generators/lightningAppGenerator'; import LightningComponentGenerator from '../generators/lightningComponentGenerator'; import LightningEventGenerator from '../generators/lightningEventGenerator'; import LightningInterfaceGenerator from '../generators/lightningInterfaceGenerator'; import LightningTestGenerator from '../generators/lightningTestGenerator'; import ProjectGenerator from '../generators/projectGenerator'; import StaticResourceGenerator from '../generators/staticResourceGenerator'; import VisualforceComponentGenerator from '../generators/visualforceComponentGenerator'; import VisualforcePageGenerator from '../generators/visualforcePageGenerator'; import { BaseGenerator } from '../generators/baseGenerator'; export type GeneratorClass<TOptions extends TemplateOptions> = new (options: TOptions) => BaseGenerator<TOptions>; export type Generators = typeof AnalyticsTemplateGenerator | typeof ApexClassGenerator | typeof ApexTriggerGenerator | typeof LightningAppGenerator | typeof LightningComponentGenerator | typeof LightningEventGenerator | typeof LightningTestGenerator | typeof LightningInterfaceGenerator | typeof ProjectGenerator | typeof StaticResourceGenerator | typeof VisualforceComponentGenerator | typeof VisualforcePageGenerator; /** * Available Template types * Each template type must have a corresponding generator class: * - generator class file should locate in generators/ * - generator class file should default export a generator class extending SfGenerator * - generator class file should have a name same as the type name, except with the first letter lowercased */ export declare enum TemplateType { AnalyticsTemplate = 0, ApexClass = 1, ApexTrigger = 2, LightningApp = 3, LightningComponent = 4, LightningEvent = 5, LightningInterface = 6, LightningTest = 7, Project = 8, VisualforceComponent = 9, VisualforcePage = 10, StaticResource = 11 } export declare const generators: Map<TemplateType, GeneratorClass<any>>; export type CreateOutput = { outputDir: string; created: string[]; rawOutput: string; }; /** * Template Options * If not supplied, the apiversion and outputdir use default values. */ export interface TemplateOptions { apiversion?: string; outputdir?: string; } export interface AnalyticsTemplateOptions extends TemplateOptions { templatename: string; } export interface ApexClassOptions extends TemplateOptions { template: 'DefaultApexClass' | 'BasicUnitTest' | 'ApexUnitTest' | 'ApexException' | 'InboundEmailService'; classname: string; } type ApexTriggerEvent = 'before insert' | 'before update' | 'before delete' | 'after insert' | 'after update' | 'after delete' | 'after undelete'; export interface ApexTriggerOptions extends TemplateOptions { triggername: string; triggerevents: ApexTriggerEvent[]; sobject: string; template: 'ApexTrigger'; } export interface LightningAppOptions extends TemplateOptions { appname: string; template: 'DefaultLightningApp'; internal: boolean; } export interface LightningComponentOptions extends TemplateOptions { componentname: string; template: 'default' | 'analyticsDashboard' | 'analyticsDashboardWithStep' | 'typeScript'; type: 'aura' | 'lwc'; internal: boolean; } export interface LightningEventOptions extends TemplateOptions { eventname: string; template: 'DefaultLightningEvt'; internal: boolean; } export interface LightningInterfaceOptions extends TemplateOptions { interfacename: string; template: 'DefaultLightningIntf'; internal: boolean; } export interface LightningTestOptions extends TemplateOptions { template: 'DefaultLightningTest'; testname: string; internal: boolean; } export interface ProjectOptions extends TemplateOptions { projectname: string; defaultpackagedir: string; /** * namespace * Note that namespace is a reserved keyword for yeoman generator */ ns: string; template: 'standard' | 'empty' | 'analytics'; manifest: boolean; loginurl: string; } export interface VisualforceComponentOptions extends TemplateOptions { componentname: string; label: string; template: 'DefaultVFComponent'; } export interface VisualforcePageOptions extends TemplateOptions { pagename: string; label: string; template: 'DefaultVFPage'; } export interface StaticResourceOptions extends TemplateOptions { resourcename: string; contenttype: string; template: 'empty'; } export {};