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

@syncbridge/syncbuild

v0.6.4

Published

SyncBridge Extension Package Builder

Readme

@syncbridge/syncbuild

SyncBridge Extension Package Builder - A powerful tool for building and bundling SyncBridge extension packages.

Installation

npm install @syncbridge/syncbuild

CLI Usage

The syncbuild CLI tool allows you to build and bundle your SyncBridge extension packages from the command line.

Basic Usage

syncbuild [options]

CLI Options

| Option | Description | Default | |----------------------------|-----------------------------------|-----------------| | -p, --path <packagePath> | Directory of the package to build | - | | -o, --out <fileName> | Output package file name | - | | --tsconfig <fileName> | Path to tsconfig file | tsconfig.json | | --no-color | Disables colors in log messages | - | | -V, --version | Output the version number | - | | -h, --help | Display help information | - |

CLI Examples

Build a package from a specific directory:

syncbuild --path ./my-extension

Build with a custom tsconfig:

syncbuild --path ./my-extension --tsconfig tsconfig.build.json

Disable colored output:

syncbuild --path ./my-extension --no-color

API Usage

You can also use syncbuild programmatically in your Node.js applications.

Basic API Usage

import { bundlePackage } from '@syncbridge/syncbuild';

await bundlePackage({
  packageDir: './my-extension',
  tsconfig: 'tsconfig.json'
});

API Configuration

bundlePackage(config: PackageBuildConfig): Promise<void>

The main function for building and bundling packages.

PackageBuildConfig Interface

| Property | Type | Description | Default | |---------------------|--------------------------|-------------------------------------------------|-----------------| | packageDir | string | Directory of the package to be built (required) | - | | outDir | string | Output directory for the build | - | | tsconfig | string | Path to the tsconfig file | tsconfig.json | | external | Record<string, string> | External dependencies to exclude from the build | - | | minify | boolean | Minify the output bundle | true | | minifyWhitespace | boolean | Minify whitespace in the output | true | | minifyIdentifiers | boolean | Minify identifiers in the output | true | | minifySyntax | boolean | Minify syntax in the output | true | | banner | string | Custom banner to prepend to the output | - | | keepNames | boolean | Keep names of variables and functions | false |

API Examples

Basic Build

import { bundlePackage } from '@syncbridge/syncbuild';

await bundlePackage({
  packageDir: './my-extension'
});

Advanced Build with Options

import { bundlePackage } from '@syncbridge/syncbuild';

await bundlePackage({
  packageDir: './my-extension',
  outDir: './dist',
  tsconfig: 'tsconfig.build.json',
  minify: true,
  minifyWhitespace: true,
  minifyIdentifiers: true,
  minifySyntax: true,
  keepNames: false,
  external: {
    'external-module': '^1.0.0'
  },
  banner: '// Copyright 2024 My Company'
});

With Error Handling

import { bundlePackage } from '@syncbridge/syncbuild';
import { SbError } from '@syncbridge/common';

try {
  await bundlePackage({
    packageDir: './my-extension',
    tsconfig: 'tsconfig.json'
  });
  console.log('Build completed successfully!');
} catch (error) {
  if (error instanceof SbError) {
    console.error('Build failed:', error.message);
  } else {
    console.error('Unexpected error:', error);
  }
}

Build Process

The build process performs the following steps:

  1. Context Creation - Initializes build context with configuration
  2. TypeScript Configuration - Reads and validates tsconfig.json
  3. Source Building - Compiles TypeScript sources using esbuild
  4. Export Extraction - Extracts and processes package exports
  5. Package Generation - Creates package.json for output
  6. Zipping - Bundles the built package into a distributable format

Requirements

  • Node.js >= 20.0
  • TypeScript project with valid tsconfig.json
  • Valid package.json in the package directory

License

MIT License

Author

Panates Inc