UNPKG

@salesforce/source-deploy-retrieve

Version:

JavaScript library to run Salesforce metadata deploys and retrieves

49 lines (48 loc) 2.42 kB
import { MetadataXml, SourceAdapter } from '../types'; import { ForceIgnore } from '../forceIgnore'; import { NodeFSTreeContainer, TreeContainer } from '../treeContainers'; import { SourceComponent } from '../sourceComponent'; import { SourcePath } from '../../common/types'; import { MetadataType } from '../../registry/types'; import { RegistryAccess } from '../../registry/registryAccess'; export declare abstract class BaseSourceAdapter implements SourceAdapter { protected type: MetadataType; protected registry: RegistryAccess; protected forceIgnore: ForceIgnore; protected tree: TreeContainer; /** * Whether or not an adapter should expect a component to be in its own, self-named * folder, including its root metadata xml file. */ protected ownFolder: boolean; protected metadataWithContent: boolean; constructor(type: MetadataType, registry?: RegistryAccess, forceIgnore?: ForceIgnore, tree?: NodeFSTreeContainer); getComponent(path: SourcePath, isResolvingSource?: boolean): SourceComponent | undefined; /** * Control whether metadata and content metadata files are allowed for an adapter. */ allowMetadataWithContent(): boolean; /** * If the path given to `getComponent` is the root metadata xml file for a component, * parse the name and return it. This is an optimization to not make a child adapter do * anymore work to find it. * * @param path File path of a metadata component */ protected parseAsRootMetadataXml(path: SourcePath): MetadataXml | undefined; protected parseMetadataXml(path: SourcePath): MetadataXml | undefined; /** * Determine the related root metadata xml when the path given to `getComponent` isn't one. * * @param trigger Path that `getComponent` was called with */ protected abstract getRootMetadataXmlPath(trigger: SourcePath): SourcePath | undefined; /** * Populate additional properties on a SourceComponent, such as source files and child components. * The component passed to `populate` has its fullName, xml, and type properties already set. * * @param component Component to populate properties on * @param trigger Path that `getComponent` was called with */ protected abstract populate(trigger: SourcePath, component?: SourceComponent, isResolvingSource?: boolean): SourceComponent | undefined; }