@aurahelper/connector

Powerfull Libraries to connect with Salesforce to list, describe, deploy or retrieve metadata types. Also can describe SObjects, Create Projects, Authorize Orgs, Execute Queries, Export or Import Data... To the correct work of this library, you need to ha

Usage no npm install needed!

<script type="module">
  import aurahelperConnector from 'https://cdn.skypack.dev/@aurahelper/connector';
</script>

README

Aura Helper Connector Module

Version Total Downloads Downloads/Month Issues Known Vulnerabilities Code Size License

Module to connect with Salesforce to list or describe metadata types, list or describe all SObjects, make queries, create SFDX Project, validate, deploy or retrieve in SFDX and Metadata API Formats, export and import data and much more. Is used to Aura Helper and Aura Helper CLI to support salesfore conections.


Table of Contents


Connection Class

Class to connect with Salesforce to list or describe metadata types, list or describe all SObjects, make queries, create SFDX Project, validate, deploy or retrieve in SFDX and Metadata API Formats, export and import data and much more. Is used to Aura Helper and Aura Helper CLI to support salesfore conections.

The setters methods are defined like a builder pattern to make it more usefull

All connection methods return a Promise with the associated data to the processes.

Class Members


Fields

The fields that start with _ are for internal use only (Does not modify this fields to a correct connection work). To the rest of fields, setter methods are recommended instead modify fields.

usernameOrAlias

Username or Alias to connect with the org. The org bust be authorized in the system.

  • string

apiVersion

Number API Version to connect with the org.

  • string | number

projectFolder

Path to the local project folder

  • string

namespacePrefix

Namespace prefix from the Org to connect

  • string

multiThread

True to able to the connection object to use several threads and processor cores to run some processes and run faster, false to use only one thread and core.

  • boolean

packageFolder

Project package folder path (manifest folder). Must be a child of Project folder

  • string

packageFile

Project package file path (package.xml file). Must be a child of Package folder

  • string

Constructors

The Connection class has only one constructor to create a connection

constructor(usernameOrAlias, apiVersion, projectFolder, namespacePrefix)

Constructor to create a new connection object. All parameters are optional and you can use the setters methods to set the values when you want.

Parameters:

  • usernameOrAlias: Org Username or Alias to connect. (Must be authorized in the system)
    • string
  • apiVersion: API Version number to connect with salesforce
    • string | number
  • projectFolder: Path to the project root folder
    • string
  • namespacePrefix: Namespace prefix from the Org to connect
    • string

Methods


setUsernameOrAlias(usernameOrAlias)

Method to set the Username or Alias to connect with org

Parameters:

  • usernameOrAlias: Org Username or Alias to connect. (Must be authorized in the system)
    • string

Return:

Returns the connection object

  • Connection

Examples:

Set Connection username or alias

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setUsernameOrAlias('MyOrg'); 

setApiVersion(apiVersion)

Method to set the API Version to connect

Parameters:

  • apiVersion: API Version number to connect with salesforce
    • string | number

Return:

Returns the connection object

  • Connection

Examples:

Set Connection api version

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setApiVersion(50);

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').setApiVersion(50); 

setProjectFolder(projectFolder)

Method to set the project root folder path. When set the project root, automatically set the packageFolder and packageFile to their respective paths

Parameters:

  • projectFolder: Path to the project root folder
    • string

Return:

Returns the connection object

  • Connection

Examples:

Set Connection project folder

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setProjectFolder('project/root/path');

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').setProjectFolder('project/root/path'); 

setPackageFolder(packageFolder)

Method to set the package folder path. When set the package folder, automatically set packageFile to the respective path

Parameters:

  • packageFolder: Path to the package folder
    • string

Return:

Returns the connection object

  • Connection

Examples:

Set Connection package folder (manifest folder)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setPackageFolder('project/root/path/manifest');

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').setPackageFolder('project/root/path/manifest'); 

setPackageFile(packageFile)

Method to set the package xml file path

Parameters:

  • packageFile: Path to the package folder
    • string

Return:

Returns the connection object

  • Connection

Examples:

Set Connection package file (package.xml)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setPackageFile('project/root/path/manifest/package.xml');

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').setPackageFile('project/root/path/manifest/package.xml'); 

setNamespacePrefix(namespacePrefix)

Method to set the package xml file path

Parameters:

  • namespacePrefix: Namespace prefix from the Org to connect
    • string

Return:

Returns the connection object

  • Connection

Examples:

Set Connection namespace prefix

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setNamespacePrefix('orgPrefix');

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').setNamespacePrefix('orgPrefix'); 

setMultiThread()

Method to able to the connection object to use several threads and processor cores to run some processes and run faster

Return:

Returns the connection object

  • Connection

Examples:

Set Connection to user multiple threads and cores

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setMultiThread();

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').setMultiThread(); 

setSingleThread()

Method to set the connection object to use only one thread and processo core to all processes

Return:

Returns the connection object

  • Connection

Examples:

Set Connection to user single thread and core

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.setSingleThread();

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').setSingleThread(); 

onPrepare(callback)

Method to handle the event when preparing execution of some processes

Parameters:

  • callback: Callback function to call when connection is on prepare
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on prepare stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onPrepare(() => {
      console.log('Handling progress on prepare');
    }));

onCreateProject(callback)

Method to handle the event before the create a project on some processes

Parameters:

  • callback: Callback function to handle progress when connection will create a project
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on create project stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onCreateProject(() => {
      console.log('Handling progress on create project');
    }));

onRetrieve(callback)

Method to handle the event before start retrieve data on some processes

Parameters:

  • callback: Callback function to handle progress when connection retrieve data
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on retrieve stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onRetrieve(() => {
      console.log('Handling progress on create project');
    }));

onProcess(callback)

Method to handle the event before start processing results on some processes

Parameters:

  • callback: Callback function to handle progress when connection is processing results
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on process stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onProcess(() => {
      console.log('Handling progress when process');
    }));

onLoadingLocal(callback)

Method to handle the event before start loading local metadata types on some processes

Parameters:

  • callback: Callback function to handle progress when connection load metadata types from local project
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on loading local stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onLoadingLocal(() => {
      console.log('Handling progress on loading local data');
    }));

onLoadingOrg(callback)

Method to handle the event before start loading metadata types from org on some processes

Parameters:

  • callback: Callback function to handle progress when connection load metadata types from connected org
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on loading org stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onLoadingOrg(() => {
      console.log('Handling progress on create project');
    }));

onCopyData(callback)

Method to handle the event before start copying files on some processes

Parameters:

  • callback: Callback function to handle progress when connection start to copying files
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on copy data stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onCopyData(() => {
      console.log('Handling progress when copy data');
    }));

onCopyFile(callback)

Method to handle the event before start copying file content on some processes

Parameters:

  • callback: Callback function to handle progress when connection star to copy a single file
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on copy file stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onCopyFile((status) => {
      console.log('Handling progress when copy file');
      console.log('MetadataType => ' + status.entityType);
      console.log('MetadataObject => ' + status.entityObject);
      console.log('MetadataItem => ' + status.entityItem);
      console.log('file => ' + status.data);
    }));

onCompressFile(callback)

Method to handle the event before start compress XML File on some processes

Parameters:

  • callback: Callback function to handle progress when start compress
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on compress file stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onCompressFile((status) => {
      console.log('Handling progress when compress file');
      console.log('MetadataType => ' + status.entityType);
      console.log('MetadataObject => ' + status.entityObject);
      console.log('MetadataItem => ' + status.entityItem);
      console.log('file => ' + status.data);
    }));

onBeforeDownloadType(callback)

Method to handle the event before download a Metadata Type from Org on some processes

Parameters:

  • callback: Callback function to handle progress when start download metadata type
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on before download type stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onBeforeDownloadType((status) => {
      console.log('Handling progress when describe metadata types');
      console.log('MetadataType => ' + status.entityType);
    }));

onAfterDownloadType(callback)

Method to handle the event after download a Metadata Type from Org on some processes

Parameters:

  • callback: Callback function to handle progress when metadata type is downloaded
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on after download type stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onAfterDownloadType((status) => {
      console.log('Handling progress when describe metadata types');
      console.log('MetadataType => ' + status.entityType);
      console.log('Downloaded Data => ' + status.data);
    }));

onBeforeDownloadSObject(callback)

Method to handle the event before download a SObject when describe SObejcts

Parameters:

  • callback: Callback function to handle progress when start download sobject
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on before download sobject stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onBeforeDownloadSObject((status) => {
      console.log('Handling progress describe sobjects');
      console.log('SObject => ' + status.entityObject);
    }));

onAfterDownloadSObject(callback)

Method to handle the event after download a SObject when describe SObejcts

Parameters:

  • callback: Callback function to handle progress when sobject is downloaded
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on after download sobject stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onAfterDownloadSObject((status) => {
      console.log('Handling progress describe sobjects');
      console.log('SObject => ' + status.entityObject);
      console.log('Downloaded Data => ' + status.data);
    }));

onErrorDownload(callback)

Method to handle the event when error ocurred when download metadata

Parameters:

  • callback: Callback function to handle error
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Handling progress on error download stage

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onErrorDownload((status) => {
      console.log('Handling progress describe sobjects');
      console.log('Metadata or SObject => ' + status.entityObject);
      console.log('message' + status.data);
    }));

onAbort(callback)

Method to handle the event when connection is aborted

Parameters:

  • callback: Callback function to call when connectin is aborted
    • Function

Return:

Returns the connection object

  • Connection

Examples:

Set connection abort callback

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onAbort(() => {

    }));

    // Or can concatenate method calls because setters return a connection object
    connection.setUsernameOrAlias('MyOrg').onAbort(() => {

    })); 

abortConnection()

Method to abort all connection running processes. When finishes call onAbort() callback

Examples:

Abort connection and handle on abort callback

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.onAbort(() => {
        // Execute when abortConnection() finish and kill all running processes
    }));

    connection.abortConnection(); 

getAuthUsername(usernameOrAlias)

Method to get the username from an authorized org using a username or alias, or using connection username or alias, or using project auth org username or alias

Parameters:

  • usernameOrAlias: Username or alias to get auth username
    • string

Return:

Return a String promise with the Username or Alias data

  • Promise<string>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error

Examples:

Get auth username from the connection project If connection has not username or alias defined and not provide it to the method, get the auth username from the project

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector(undefined, 50, 'path/to/project/root');

    connection.getAuthUsername().then((username) => {
        console.log(username);
    }).catch((error) => {
        // Handle errors
    }); 

Get auth username from connection alias If connection has username and not alias provided to the method, get username from connection username or alias

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('OrgAlias', 50, 'path/to/project/root');

    connection.getAuthUsername().then((username) => {
        console.log(username);
    }).catch((error) => {
        // Handle errors
    }); 

Get auth username for any alias To get the username for any authorized alias, provide it to the method

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('OrgAlias', 50, 'path/to/project/root');

    connection.getAuthUsername('OtherOrgAlias').then((username) => {
        console.log(username);
    }).catch((error) => {
        // Handle errors
    }); 

getServerInstance(usernameOrAlias)

Method to get the server instance using a username or alias, or using connection username or alias, or using project auth org username or alias

Parameters:

  • usernameOrAlias: Username or alias to get the server instance
    • string

Return:

Return a String promise with the instance URL

  • Promise<string>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error

Examples:

Get server instance to the connected org

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();
    
    connection.setUsernameOrAlias('MyOrg');

    connection.getServerInstance().then((inbstanceUrl) => {
        console.log(inbstanceUrl);
    }).catch((error) => {
        // Handle errors
    }); 

Get server instance to another

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector();

    connection.getServerInstance('MyOrg2').then((inbstanceUrl) => {
        console.log(inbstanceUrl);
    }).catch((error) => {
        // Handle errors
    }); 

getAuthOrg(usernameOrAlias)

Method to get the server instance using a username or alias, or using connection username or alias, or using project auth org username or alias

Parameters:

  • usernameOrAlias: Username or alias to get the auth org data
    • string

Return:

Return a promise with Auth Org data or undefined if not exists

  • Promise<AuthOrg | undefined>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error

Examples:

Get auth org from the connection project If connection has not username or alias defined and not provide it to the method, get the auth org data from the project

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector(undefined, 50, 'path/to/project/root');

    connection.getAuthOrg().then((authOrg) => {
        console.log(authOrg);
    }).catch((error) => {
        // Handle errors
    }); 

Get auth org from connection alias If connection has username and not alias provided to the method, get auth org data from connection username or alias

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('OrgAlias', 50, 'path/to/project/root');

    connection.getAuthOrg().then((authOrg) => {
        console.log(authOrg);
    }).catch((error) => {
        // Handle errors
    }); 

Get auth org for any alias To get the auth org data for any authorized alias, provide it to the method

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('OrgAlias', 50, 'path/to/project/root');

    connection.getAuthOrg('OtherOrgAlias').then((authOrg) => {
        console.log(authOrg);
    }).catch((error) => {
        // Handle errors
    }); 

listAuthOrgs()

Method to list all auth org on the system

Return:

Return a promise with all authorized org in the system

  • Promise<AuthOrg[]>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error

Examples:

Get all auth org on the system

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 50);

    connection.listAuthOrgs().then((authOrgs) => {
        for(const org of authOrgs){
            console.log('Alias: ' + org.alias);
            console.log('Username: ' + org.username);
            console.log('ORG Id: ' + org.orgId);
            console.log('Instance URL: ' + org.instanceUrl);
            console.log('Access Token: ' + org.accessToken);
            console.log('OAuth Method: ' + org.oauthMethod);
        }
    }).catch((error) => {
        // Handle errors
    }); 


query(query, userToolingApi)

Method to execute a query to the connected org. Can return a Typed data (or use any to return any json)

Parameters:

  • query: Query to execute (Required)
    • string
  • useToolingApi: true to use Tooling API to execute the query
    • boolean

Return:

Return a promise with the record list

  • Promise<T[]>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system

Examples:

Query data and handle results

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 50);

    const query = 'Select Id, Name, Phone, CustomField__c from Account where Name != null';

    interface AccountRecord {
      Id: string;
      Name: string;
      Phone: string;
      CustomField__c: string;
    }

    connection.query<AccountRecord>(query).then((records) => {
      // records will be an instance of AccountRecord[];
        for(const record of records){
            console.log('Account Id: ' + record.Id);
            console.log('Account Name: ' + record.Name);
            console.log('Account Phone: ' + record.Phone);
            console.log('Account Custom Field: ' + record.CustomField__c);
        }
    }).catch((error) => {
        // Handle errors
    });

listMetadataTypes()

Method to list all Metadata Types available in the connected org (according selected API Version)

Return:

Return a promise with the MetadataDetail objects from all available Metadata Types

  • Promise<MetadataDetail[]>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDatatypeException: If the api version is not a Number or String. Can be undefined

Examples:

Get all available Metadata types to API 45

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 45);

    connection.listMetadataTypes().then((metadataDetails) => {
        for(const detail of metadataDetails){
            console.log('Directory Name: ' + detail.directoryName);
            console.log('In folder: ' + detail.inFolder);
            console.log('Has Meta file: ' + detail.metaFile);
            console.log('Files suffix: ' + detail.suffix);
            console.log('API Name: ' + detail.xmlName);
        }
    }).catch((error) => {
        // Handle errors
    }); 

Get all available Metadata types to API 51

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    connection.listMetadataTypes().then((metadataDetails) => {
        for(const detail of metadataDetails){
            console.log('Directory Name: ' + detail.directoryName);
            console.log('In folder: ' + detail.inFolder);
            console.log('Has Meta file: ' + detail.metaFile);
            console.log('Files suffix: ' + detail.suffix);
            console.log('API Name: ' + detail.xmlName);
        }
    }).catch((error) => {
        // Handle errors
    });  

describeMetadataTypes(typesOrDetails, downloadAll, groupGlobalActions)

Method to describe all or selected Metadata Types from the connected org. See Metadata JSON Format section to understand the JSON Metadata Format

Parameters:

  • typesOrDetails: List of Metadata Type API Names or Metadata Details to describe (undefined to describe all metadata types)
    • string[] | MetadataDetail[]
  • downloadAll: true to download all Metadata Types from the connected org, false to download only the org namespace Metadata Types
    • boolean
  • groupGlobalActions: True to group global quick actions on "GlobalActions" group, false to include as object and item
    • boolean

Return:

Return a promise with Metadata JSON Object with the selected Metadata Types to describe

  • Promise<{ [key: string]: MetadataType }>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDatatypeException: If the api version is not a Number or String. Can be undefined

Examples:

Describe all Metadata types from the connected org and org namespace

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    connection.describeMetadataTypes().then((metadataTypes) => {
        for(const metadataTypeName of Object.keys(metadataTypes)){
            const metadataType = metadataTypes[metadataTypeName];
            console.log('metadataType: ' + metadataType);
        }
    }).catch((error) => {
        // Handle errors
    }); 

Describe all Metadata types from the connected org and all namespaces

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    connection.describeMetadataTypes(undefined, true).then((metadataTypes) => {
        for(const metadataTypeName of Object.keys(metadataTypes)){
            const metadataType = metadataTypes[metadataTypeName];
            console.log('metadataType: ' + metadataType);
        }
    }).catch((error) => {
        // Handle errors
    }); 

Describe some Metadata types from the connected

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    const types = [
        'CustomObject',
        'CustomField',
        'ApexClass'
    ];

    connection.describeMetadataTypes(types).then((metadataTypes) => {
        for(const metadataTypeName of Object.keys(metadataTypes)){
            const metadataType = metadataTypes[metadataTypeName];
            console.log('metadataType: ' + metadataType);
        }
    }).catch((error) => {
        // Handle errors
    });

listSObjects(category)

Method to list all SObjects API Name by category

Parameters:

  • category: Object Category. Values are: Standard, Custom, All. (All by default)
    • string

Return:

Return a promise with a list with the sObject names

  • Promise<string[]>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system

Examples:

List all SObjects

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    connection.listSObjects().then((objectNames) => {
        for(const objName of objectNames){
            console.log('Name: ' + objName);
        }
    }).catch((error) => {
        // Handle errors
    });

List custom SObjects

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    connection.listSObjects('custom').then((objectNames) => {
        for(const objName of objectNames){
            console.log('Name: ' + objName);
        }
    }).catch((error) => {
        // Handle errors
    });

List standard SObjects

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    connection.listSObjects('standard').then((objectNames) => {
        for(const objName of objectNames){
            console.log('Name: ' + objName);
        }
    }).catch((error) => {
        // Handle errors
    });

describeSObjects(sObjects)

Method to describe SObject data to the specified objects

Parameters:

  • sObjects: List with the object API Names to describe
    • string[]

Return:

Return a promise with a SObjects data

  • Promise<SObject[]>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system

Examples:

Describe some SObjects

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    const objects = [
        'Account',
        'Case',
        'Opportunity',
        'Task'
    ];

    connection.describeSObjects(objects).then((objectNames) => {
        for(const objName of objectNames){
            console.log('Name: ' + objName);
        }
    }).catch((error) => {
        // Handle errors
    });

Describe all SObjects

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg');
    connection.setApiVersion(51);

    const allSObjects = await connection.listSObjects();

    connection.describeSObjects(allSObjects).then((objectNames) => {
        for(const objName of objectNames){
            console.log('Name: ' + objName);
        }
    }).catch((error) => {
        // Handle errors
    });

retrieve(useMetadataAPI, waitMinutes, targetDir)

Method to retrieve data using the connection package file. You can choose to retrieve as Metadata API format or Source Format

Parameters:

  • useMetadataAPI: True to use Metadata API format, false to use source format
    • boolean
  • waitMinutes: Number of minutes to wait for the command to complete and display results
    • string | number
  • targetDir: Path to the target dir when retrieve with Metadata API Format
    • string

Return:

Return a promise with the RetrieveResult object with the retrieve result

  • Promise<RetrieveResult>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDirectoryPathException: If the project folder or target dir is not a String or can't convert to absolute path
  • DirectoryNotFoundException: If the project folder or target dir not exists or not have access to it
  • InvalidDirectoryPathException: If the project folder or target dir is not a directory
  • WrongDatatypeException: If the api version is not a Number or String. Can be undefined

Examples:

Retrieve data using Metadata API Format (With package.xml file on project)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    connection.retrieve(true, 'path/to/target/dir').then((retrieveResult) => {
        console.log(retrieveResult);
    }).catch((error) => {
        // Handle errors
    });

Retrieve data using Source Format (With package.xml file on project)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    connection.retrieve().then((retrieveResult) => {
        console.log(retrieveResult);
    }).catch((error) => {
        // Handle errors
    });

retrieveReport(retrieveId, targetDir)

Retrieve report when use Metadata API to retrieve data

Parameters:

  • retrieveId: Retrieve Id to get the report (Required)
    • string
  • targetDir: Path to the target dir (Required)
    • string

Return:

Return a promise with the RetrieveStatus object with the retrieve status result

  • Promise<RetrieveStatus>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDirectoryPathException: If the target dir is not a String or can't convert to absolute path
  • DirectoryNotFoundException: If the target dir not exists or not have access to it
  • InvalidDirectoryPathException: If the target dir is not a directory

Examples:

Get a retrieve report status

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const retrieveId = '';
    const targetDir = 'path/to/target/retrieve/dir';

    connection.retrieveReport(retrieveId, targetDir).then((retrieveStatus) => {
        console.log(retrieveStatus);
    }).catch((error) => {
        // Handle errors
    });

validateDeploy(testLevel, runTests, useMetadataAPI, waitMinutes)

Method to validate a deploy against the org using the connection package file

Parameters:

  • testLevel: Level of deployment tests to run. Values are 'NoTestRun', 'RunSpecifiedTests', 'RunLocalTests', 'RunAllTestsInOrg'
    • string
  • runTests: String with comma separated test names to execute or list with the test names to execute
    • string | string[]
  • useMetadataAPI: True to validate deploy using Metadata API Format, false to use Source Format
    • boolean
  • waitMinutes: Number of minutes to wait for the command to complete and display results
    • string | number

Return:

Return a promise with the DeployStatus object with the deploy status result

  • Promise<DeployStatus>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDirectoryPathException: If the project folder or package folder is not a String or can't convert to absolute path
  • DirectoryNotFoundException: If the project folder or package folder not exists or not have access to it
  • InvalidDirectoryPathException: If the project folder or package folder is not a directory
  • WrongFilePathException: If the package file is not a String or can't convert to absolute path
  • FileNotFoundException: If the package file not exists or not have access to it
  • InvalidFilePathException: If the package file is not a file
  • WrongDatatypeException: If the api version is not a Number or String. Can be undefined

Examples:

Validate deployment with Metadata API format (With package.xml file on project)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const testLevel = 'RunSpecifiedTests';
    const runTest = [
        'ApexTest1',
        'ApexTest2',
        'ApexText3',
        ...,
        ...,
        'ApexTextN',
    ];

    connection.validateDeploy(testLevel, runTest, true).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

Validate deployment with Source format (With package.xml file on project)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const testLevel = 'RunSpecifiedTests';
    const runTest = [
        'ApexTest1',
        'ApexTest2',
        'ApexText3',
        ...,
        ...,
        'ApexTextN',
    ];

    connection.validateDeploy(testLevel, runTest).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

deployPackage(testLevel, runTests, useMetadataAPI, waitMinutes)

Method to deploy data to the org using the connection package file

Parameters:

  • testLevel: Level of deployment tests to run. Values are 'NoTestRun', 'RunSpecifiedTests', 'RunLocalTests', 'RunAllTestsInOrg'
    • string
  • runTests: String with comma separated test names to execute or list with the test names to execute
    • string | string[]
  • useMetadataAPI: True to validate deploy using Metadata API Format, false to use Source Format
    • boolean
  • waitMinutes: Number of minutes to wait for the command to complete and display results
    • string | number

Return:

Return a promise with the DeployStatus object with the deploy status result

  • Promise<DeployStatus>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDirectoryPathException: If the project folder or package folder is not a String or can't convert to absolute path
  • DirectoryNotFoundException: If the project folder or package folder not exists or not have access to it
  • InvalidDirectoryPathException: If the project folder or package folder is not a directory
  • WrongFilePathException: If the package file is not a String or can't convert to absolute path
  • FileNotFoundException: If the package file not exists or not have access to it
  • InvalidFilePathException: If the package file is not a file
  • WrongDatatypeException: If the api version is not a Number or String. Can be undefined

Examples:

Deploy data with Metadata API format (With package.xml file on project)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const testLevel = 'RunSpecifiedTests';
    const runTest = [
        'ApexTest1',
        'ApexTest2',
        'ApexText3',
        ...,
        ...,
        'ApexTextN',
    ];

    connection.deployPackage(testLevel, runTest, true).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

Deploy data with Source format (With package.xml file on project)

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const testLevel = 'RunSpecifiedTests';
    const runTest = [
        'ApexTest1',
        'ApexTest2',
        'ApexText3',
        ...,
        ...,
        'ApexTextN',
    ];

    connection.deployPackage(testLevel, runTest).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

deployPackage(testLevel, runTests, useMetadataAPI, waitMinutes)

Method to deploy data to the org using the connection package file

Parameters:

  • types: Metadata JSON Object with the selected elements to deploy or comma separated values String with the metadata types to deploy
    • string | { [key: string]: MetadataType }
  • testLevel: Level of deployment tests to run. Values are 'NoTestRun', 'RunSpecifiedTests', 'RunLocalTests', 'RunAllTestsInOrg'
    • string
  • runTests: String with comma separated test names to execute or list with the test names to execute
    • string | string[]
  • waitMinutes: Number of minutes to wait for the command to complete and display results
    • string | number

Return:

Return a promise with the DeployStatus object with the deploy status result

  • Promise<DeployStatus>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDirectoryPathException: If the project folder or package folder is not a String or can't convert to absolute path
  • DirectoryNotFoundException: If the project folder or package folder not exists or not have access to it
  • InvalidDirectoryPathException: If the project folder or package folder is not a directory
  • WrongFormatException: If JSON Metadata Object has incorrect format
  • InvalidFilePathException: If the package file is not a file
  • WrongDatatypeException: If the api version is not a Number or String. Can be undefined

Examples:

Deploy data with Source format

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const types = 'CustomLabel:LabelName1, Profile:ProfileName1';
    const testLevel = 'RunSpecifiedTests';
    const runTest = [
        'ApexTest1',
        'ApexTest2',
        'ApexText3',
        ...,
        ...,
        'ApexTextN',
    ];

    connection.deploy(types, testLevel, runTest).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

quickDeploy(deployId, useMetadataAPI)

Method to execute a quick deploy when validation result is success

Parameters:

  • deployId: Id to deploy the validated deployment (Required)
    • string
  • useMetadataAPI: True to execute quick deploy using Metadata API Format, false to use Source Format
    • boolean

Return:

Return a promise with the DeployStatus object with the deploy status result

  • Promise<DeployStatus>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system
  • WrongDirectoryPathException: If the project folder is not a String or can't convert to absolute path
  • DirectoryNotFoundException: If the project folder not exists or not have access to it
  • InvalidDirectoryPathException: If the project folder is not a directory
  • WrongDatatypeException: If the api version is not a Number or String. Can be undefined

Examples:

Execute quick deploy to Validated deploy with Metadata API format

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const deployId = '00X213as2984';

    connection.quickDeploy(deployId, true).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

Execute quick deploy to Validated deploy with Source format

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');

    const deployId = '00X213as2984';

    connection.quickDeploy(deployId).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

deployReport(deployId, useMetadataAPI, waitMinutes)

Method to get the report of a running deployment

Parameters:

  • deployId: Id to the deployment to get the report (Required)
    • string
  • useMetadataAPI: True to execute deploy report using Metadata API Format, false to use Source Format
    • boolean
  • waitMinutes: Number of minutes to wait for the command to complete and display results
    • string | number

Return:

Return a promise with the DeployStatus object with the deploy status result

  • Promise<DeployStatus>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system

Examples:

Execute deploy report to active deploy with Metadata API format

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const deployId = '00X213as2984';

    connection.deployReport(deployId, true).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

Execute deploy report to active deploy with Source format

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');

    const deployId = '00X213as2984';

    connection.deployReport(deployId).then((deployStatus) => {
        console.log(deployStatus);
    }).catch((error) => {
        // Handle errors
    });

cancelDeploy(deployId, useMetadataAPI, waitMinutes)

Method to get the cancel a running deployment

Parameters:

  • deployId: Id to the deployment to cancel (Required)
    • string
  • useMetadataAPI: True to execute cancel deploy using Metadata API Format, false to use Source FormatSource Format
    • boolean
  • waitMinutes: Number of minutes to wait for the command to complete and display results
    • string | number

Return:

Return a promise with the DeployStatus object with the deploy status result

  • Promise<DeployStatus>

Throws:

This method can throw the next exceptions:

  • ConnectionException: If run other connection process when has one process running or Connection Return an error
  • DataRequiredException: If required data is not provided
  • OSNotSupportedException: When run this processes with not supported operative system

Examples:

Cancel deploy to active deploy with Metadata API format

    import { SFConnector } from '@aurahelper/connector';

    const connection = new SFConnector('MyOrg', 51, 'path/to/project/folder');
    
    const dep