@salesforce/templates
Version:
Salesforce JS library for templates
107 lines (106 loc) • 3.3 kB
TypeScript
interface StringKeyValueObject<V> {
[opt: string]: V;
}
export declare type Answers = StringKeyValueObject<string>;
export interface CreateOutput {
outputDir: string;
created: string[];
rawOutput: string;
}
/**
* 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 SfdxGenerator
* - 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
}
/**
* 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' | 'ApexUnitTest' | 'ApexException' | 'InboundEmailService';
classname: string;
}
declare 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';
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 {};