Skip to content

forcedotcom/sfdx-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8b50bc0 · Mar 5, 2025
Jan 25, 2023
Oct 28, 2024
Oct 1, 2024
Dec 30, 2021
Jun 12, 2024
Oct 2, 2024
Oct 3, 2024
Mar 5, 2025
Jan 16, 2025
Apr 10, 2024
Oct 24, 2018
Apr 10, 2024
Nov 8, 2018
Jan 26, 2023
Aug 7, 2024
Sep 14, 2020
Sep 14, 2020
Aug 7, 2024
Mar 5, 2025
Nov 15, 2023
Aug 28, 2020
Nov 27, 2023
Nov 27, 2023
Jan 16, 2025
Apr 24, 2023
May 26, 2023
Jul 20, 2023
Oct 31, 2023
Apr 10, 2024
Jun 18, 2024
Nov 10, 2023
Aug 27, 2020
Apr 10, 2024
Mar 5, 2025
Apr 10, 2024
Oct 8, 2022
Feb 21, 2025

NPM

Description

The @salesforce/core library provides client-side management of Salesforce DX projects, org authentication, connections to Salesforce APIs, and other utilities. Much of the core functionality that powers the Salesforce CLI plugins comes from this library. You can use this functionality in your plugins too.

Usage

See the API documentation.

Contributing

If you're interested in contributing, take a look at the CONTRIBUTING guide.

Issues

Report all issues to the issues only repository.

Using TestSetup

The Salesforce DX Core Library provides a unit testing utility to help with mocking and sand-boxing core components. This feature allows unit tests to execute without needing to make API calls to salesforce.com.

See the Test Setup documentation.

Message Transformer

The Messages class, by default, loads message text during run time. It's optimized to do this only per file.

If you're using @salesforce/core or other code that uses its Messages class in a bundler (webpack, esbuild, etc) it may struggle with these runtime references.

src/messageTransformer will "inline" the messages into the js files during TS compile using https://github.com/nonara/ts-patch.

In your plugin or library,

yarn add --dev ts-patch

tsconfig.json

{
  ...
  "plugins": [{ "transform": "@salesforce/core/lib/messageTransformer", "import": "messageTransformer" }]
}

.sfdevrc.json, which gets merged into package.json

"wireit": {
    "compile": {
      "command": "tspc -p . --pretty --incremental",
      "files": [
        "src/**/*.ts",
        "tsconfig.json",
        "messages"
      ],
      "output": [
        "lib/**",
        "*.tsbuildinfo"
      ],
      "clean": "if-file-deleted"
    }
  }

Performance Testing

There are some benchmark.js checks to get a baseline for Logger performance. https://forcedotcom.github.io/sfdx-core/perf-Linux https://forcedotcom.github.io/sfdx-core/perf-Windows

You can add more test cases in test/perf/logger/main.js

If you add tests for new parts of sfdx-core outside of Logger, add new test Suites and create new jobs in the GHA perf.yml