Socket
Book a DemoInstallSign in
Socket

@cjkihl/create-exports

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cjkihl/create-exports

Tool to generate package exports configuration for TypeScript packages

1.0.2
latest
Source
npmnpm
Version published
Weekly downloads
14
100%
Maintainers
1
Weekly downloads
 
Created
Source

@cjkihl/create-exports

npm version License: MIT PRs Welcome Sponsor

A powerful tool to automatically generate exports and binary entries in your package.json based on your TypeScript files. Streamline your TypeScript package configuration with zero manual effort.

✨ Features

  • 🔍 Automatically finds and generates exports for public files (.pub.ts, .pub.tsx)
  • 🛠️ Automatically finds and generates binary entries for CLI files (.bin.ts, .bin.tsx)
  • ⚙️ Supports custom package.json and tsconfig.json paths
  • 🧪 Dry run mode to preview changes
  • 📝 Sorts exports and binary entries alphabetically
  • 📁 Handles index files and nested directories correctly
  • 🚀 Zero configuration needed
  • 📦 Works with any package manager (npm, yarn, pnpm, bun)

Installation

# Using npm
npm install @cjkihl/create-exports

# Using yarn
yarn add @cjkihl/create-exports

# Using pnpm
pnpm add @cjkihl/create-exports

# Using bun
bun add @cjkihl/create-exports

Usage

Command Line

# Show help
create-exports --help

# Run with default settings
create-exports

# Dry run to see what would change
create-exports --dry-run

# Use custom package.json and tsconfig.json
create-exports --package-json ./custom/package.json --tsconfig ./custom/tsconfig.json

Options

  • -p, --package-json <path>: Path to package.json file
  • -t, --tsconfig <path>: Path to tsconfig.json file
  • -d, --dry-run: Show what would be changed without writing
  • -h, --help: Show help message

Programmatic Usage

import { createExports } from "@cjkihl/create-exports";

// With default options
await createExports();

// With custom options
await createExports({
  packageJsonPath: "./custom/package.json",
  tsconfigPath: "./custom/tsconfig.json",
  dryRun: true
});

File Naming Conventions

Public Exports

Files that should be exported must end with .pub.ts or .pub.tsx. For example:

  • index.pub.ts → exported as root
  • src/utils.pub.ts → exported as ./src/utils
  • src/components/index.pub.tsx → exported as ./src/components

Binary Files

Files that should be available as CLI commands must end with .bin.ts or .bin.tsx. For example:

  • cli.bin.ts → available as cli command
  • tools/helper.bin.ts → available as helper command

Output

The tool will update your package.json with:

  • exports field containing all public exports with their TypeScript types
  • bin field containing all binary entries

Example output:

{
  "exports": {
    ".": {
      "types": "types/index.pub.d.ts",
      "default": "dist/index.pub.js"
    },
    "./src/utils": {
      "types": "types/src/utils.pub.d.ts",
      "default": "dist/src/utils.pub.js"
    }
  },
  "bin": {
    "cli": "dist/cli.bin.js",
    "helper": "dist/tools/helper.bin.js"
  }
}

Requirements

  • Node.js >= 18.0.0
  • TypeScript project with tsconfig.json
  • package.json

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

  • Fork the repository
  • Create your feature branch (git checkout -b feature/amazing-feature)
  • Commit your changes (git commit -m 'Add some amazing feature')
  • Push to the branch (git push origin feature/amazing-feature)
  • Open a Pull Request

📝 License

This project is MIT licensed.

🙏 Acknowledgments

  • Thanks to all contributors who have helped shape this project
  • Inspired by the need for better TypeScript package configuration management

📫 Contact

⭐ Show your support

Give a ⭐️ if this project helped you!

💝 Sponsor

If you find this project helpful, please consider sponsoring me on GitHub:

Sponsor

Your support helps me maintain and improve this project!

Keywords

typescript

FAQs

Package last updated on 26 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.