@apexdevtools/metadata-gulp
TypeScript icon, indicating that this package has built-in type declarations

3.0.1 • Public • Published

metadata-gulp

Salesforce metadata download library. Pulls metadata from an org in a format that can be used with apex-ls based tools to perform off-line semantics analysis of Apex code.

Usage

To start a download use update() from Gulp:

async update(
    workspacePath: string,
    logger: Logger,
    connection: JSConnection | null,
    namespaces: string[],
    partialLoad: boolean
): Promise<void>

The workspacePath must be the directory where your sfdx-project.json file is located. The metadata is downloaded into a '.apexlink/gulp' directory relative to this.

If you have an open jsforce connection you can pass that, if you pass null a new connection will be created.

Metadata is download independently for each passed namespace. For orgs without a namespace you can use the pseudo namespace unmanaged. If partialLoad is false, existing downloaded metadata for namespaces not passed to update() will be removed automatically.

The library also supplies some helper functions that you may find useful.

To obtain the org's default namespace:

async getOrgNamespace(
    workspacePath: string,
    connection: JSConnection | null
): Promise<string | null | undefined>

This will return string | null on success or undefined if the Organization table can not be queried.

To obtain the namespace & package description for packages with namespaces on the org:

async getOrgPackageNamespaces(
    workspacePath: string,
    connection: JSConnection | null
): Promise<NamespaceInfo[]>

Development

Building

This project uses the pnpm package manager.

  pnpm install
  pnpm build

To run unit tests:

  pnpm test

To test bundling using webpack:

  pnpm test:pack
  node test-bundle/bundle.js

This should execute without error.

Execute manual test script with ts-node using the run script:

  # Run gulp on a project with an existing default org
  pnpm run:script -- ./src/scripts/main.ts <workspaceDir> <namespace | unmanaged>

License

All the source code included uses a 3-clause BSD license, see LICENSE for details.

Package Sidebar

Install

npm i @apexdevtools/metadata-gulp

Weekly Downloads

2

Version

3.0.1

License

BSD-3-Clause

Unpacked Size

104 kB

Total Files

45

Last publish

Collaborators

  • apexdevtools