@salesforce/source-deploy-retrieve
Version:
JavaScript library to run Salesforce metadata deploys and retrieves
49 lines (48 loc) • 2.42 kB
TypeScript
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;
}