sfdx-git-delta
Version:
Generate the sfdx content in source format and destructive change from two git commits
90 lines • 3.05 kB
JavaScript
import Bot from './botHandler.js';
import ContainedDecomposed from './containedDecomposedHandler.js';
import CustomFieldHandler from './customFieldHandler.js';
import CustomLabel from './customLabelHandler.js';
import CustomObject from './customObjectHandler.js';
import Decomposed from './decomposedHandler.js';
import FlowHandler from './flowHandler.js';
import InBundle from './inBundleHandler.js';
import InFile from './inFileHandler.js';
import InFolder from './inFolderHandler.js';
import InResource from './inResourceHandler.js';
import Lwc from './lwcHandler.js';
import ObjectTranslation from './objectTranslationHandler.js';
import SharedFolder from './sharedFolderHandler.js';
import Standard from './standardHandler.js';
const handlerMap = {
AssignmentRules: InFile,
AuraDefinitionBundle: Lwc,
AutoResponseRules: InFile,
BusinessProcess: Decomposed,
CompactLayout: Decomposed,
CustomField: CustomFieldHandler,
CustomFieldTranslation: ObjectTranslation,
CustomLabel: CustomLabel,
CustomObject: CustomObject,
CustomObjectTranslation: ObjectTranslation,
Dashboard: InFolder,
DigitalExperienceBundle: InBundle,
Document: InFolder,
EmailTemplate: InFolder,
EscalationRules: InFile,
ExperienceBundle: InResource,
FieldSet: Decomposed,
Flow: FlowHandler,
GenAiFunction: Lwc,
GlobalValueSetTranslation: InFile,
Index: Decomposed,
LightningComponentBundle: Lwc,
ListView: Decomposed,
MarketingAppExtension: InFile,
MatchingRules: InFile,
PermissionSet: ContainedDecomposed,
Profile: InFile,
RecordType: Decomposed,
Report: InFolder,
SharingCriteriaRule: Decomposed,
SharingGuestRule: Decomposed,
SharingOwnerRule: Decomposed,
SharingReason: Decomposed,
SharingRules: InFile,
StandardValueSetTranslation: InFile,
StaticResource: InResource,
Territory2: Decomposed,
Territory2Model: CustomObject,
Territory2Rule: Decomposed,
Translations: InFile,
ValidationRule: Decomposed,
VirtualBot: Bot,
VirtualDiscovery: SharedFolder,
VirtualModeration: SharedFolder,
VirtualWave: SharedFolder,
WaveTemplateBundle: InResource,
WebLink: Decomposed,
Workflow: InFile,
WorkflowAlert: Decomposed,
WorkflowFieldUpdate: Decomposed,
WorkflowFlowAction: Decomposed,
WorkflowKnowledgePublish: Decomposed,
WorkflowOutboundMessage: Decomposed,
WorkflowRule: Decomposed,
WorkflowSend: Decomposed,
WorkflowTask: Decomposed,
};
export default class TypeHandlerFactory {
work;
metadata;
constructor(work, metadata) {
this.work = work;
this.metadata = metadata;
}
getTypeHandler(line) {
const type = this.metadata.get(line);
const xmlName = type.xmlName;
return xmlName in handlerMap
? new handlerMap[xmlName](line, type, this.work, this.metadata)
: new Standard(line, type, this.work, this.metadata);
}
}
//# sourceMappingURL=typeHandlerFactory.js.map
;