npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@konkonrong/mf-check

v0.4.0

Published

Preflight checks for Salesforce Multi-Framework projects.

Readme

mf-check

A preflight and diagnostic CLI for Salesforce Multi-Framework projects.

I built this while experimenting with Multi-Framework React and ran into a few cases where a deployment succeeded but the app still wasn't ready to use.

For example, a CustomApplication can be deployed with the wrong configuration, and GraphQL operations that work locally may not match the schema of the org you're deploying to.

mf-check tries to catch those problems before deployment and make them easier to diagnose when something is already broken.

What it checks

Currently:

  • Salesforce project discovery from sfdx-project.json package directories
  • UI Bundle configuration and build output
  • CustomApplication → UI Bundle linkage for internal apps
  • Experience Cloud → UI Bundle linkage for customer-facing apps
  • whether the CustomApplication is a Lightning app
  • application visibility through Permission Sets or Profiles
  • external .graphql operations and static inline Salesforce SDK gql documents against the target org's GraphQL schema
  • GA migration residue
    • deprecated @salesforce/sdk-data dependencies
    • deprecated UIBundleSettings scratch configuration
    • Beta Data SDK graphql() calls
    • deprecated AppLauncher targets

Live schema results are cached for 5 minutes because Salesforce introspection can be slow. Use --refresh together with --target-org to bypass the cache.

Inline GraphQL scanning supports direct named gql imports, including import aliases, from @salesforce/platform-sdk and @salesforce/platform-sdk/data in UI Bundle JS, JSX, TS, and TSX source. Templates containing ${...} interpolation aren't evaluated or partially validated; they are reported as a non-blocking UNKNOWN. A source file that can't be read or parsed is a blocking UNKNOWN because the scan scope couldn't be confirmed. Wrapper functions, re-exports, variable aliases, and cross-template or cross-file fragment resolution aren't followed for inline documents.

Installation

Requires Node.js 22 or later.

npm install -g @konkonrong/mf-check

Live target-org validation also requires the Salesforce CLI (sf) and an authenticated Salesforce org.

Usage

For local metadata checks:

mf-check check <project-path>

For a detailed diagnostic report:

mf-check doctor <project-path>

doctor shows all check results and provides additional details for failures, warnings, and checks that could not be confirmed, including why they matter and remediation when available.

In doctor output:

  • PASS means the condition was confirmed.
  • FAIL means a concrete problem was detected.
  • WARN means a potential issue was detected that may need attention.
  • UNKNOWN means the check could not be completed reliably.

To also validate GraphQL operations against an org:

mf-check check <project-path> --target-org <org-alias>

Detailed diagnostics can also use a target org:

mf-check doctor <project-path> --target-org <org-alias>

To ignore the cached schema:

mf-check check <project-path> --target-org <org-alias> --refresh

To show timing information:

mf-check check <project-path> --target-org <org-alias> --debug

Example output

mf-check doctor ./my-salesforce-project
Diagnosing project: ./my-salesforce-project
✓ uiBundles directory found
✓ Found UI Bundles: MyBundle

✗ MF-META-008 MyApp: invalid uiType
  Problem:
  The application "MyApp" must use uiType "Lightning", but found "Classic".
  Why it matters:
  A Multi-Framework UI Bundle must be exposed through a Lightning CustomApplication.
  How to fix:
  - Set the CustomApplication uiType to "Lightning" and deploy the corrected application metadata.

○ MF-GRAPHQL-007 Live GraphQL check skipped: no target org provided
  Problem:
  The target org was not provided, so live GraphQL validation was not performed.
  Why it matters:
  Without a target org, mf-check cannot confirm that local GraphQL operations are compatible with the live Salesforce schema.
  How to fix:
  - Provide a target org when you want mf-check to perform live GraphQL schema validation.

NOT READY

Local development

npm install
npm run build
npm link

Run tests with:

npm run test

Status

Early-stage, but usable. I'm adding checks based on problems I find while working with Salesforce Multi-Framework.

License

MIT