Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@phucbm/banner

phucbm312MIT0.0.2TypeScript support: included

A TypeScript utility package

typescript, javascript, banner, utility

readme

banner

A TypeScript utility for generating JavaScript banner comments from package.json data

Publish on Release npm version npm downloads npm dependents github stars github license

Installation

npm i @phucbm/banner
pnpm add @phucbm/banner

Usage

import {generateBanner} from '@phucbm/banner'

// Using default package.json path
const banner = generateBanner();

// Using custom package.json path
const banner = generateBanner('./custom/package.json');

// Using package.json object directly
import pkg from './package.json';

const banner = generateBanner(pkg);

// Using custom object
const banner = generateBanner({
    name: 'my-package',
    version: '1.0.0',
    homepage: 'https://example.com',
    license: 'MIT',
    author: {
        name: 'John Doe',
        url: 'https://johndoe.com'
    }
});

Example Output

/*!
 * my-package 1.0.0
 * https://example.com
 *
 * @license MIT
 * @author: John Doe, https://johndoe.com
 */

Integration with Build Tools

tsup

import {defineConfig} from 'tsup';
import {generateBanner} from '@phucbm/banner';

const banner = generateBanner();

export default defineConfig({
    entry: ['src/index.ts'],
    format: ['esm'],
    banner: {js: banner},
    // ... other options
});

Rollup

import {generateBanner} from '@phucbm/banner';

const banner = generateBanner();

export default {
    input: 'src/index.js',
    output: {
        file: 'dist/bundle.js',
        format: 'esm',
        banner: banner
    }
};

Webpack

import {BannerPlugin} from 'webpack';
import {generateBanner} from '@phucbm/banner';

const banner = generateBanner();

module.exports = {
    plugins: [
        new BannerPlugin({
            banner: banner,
            raw: true
        })
    ]
};

API

generateBanner(input?: string | PackageJson): string

Generates a JavaScript banner comment from package.json data.

Parameters:

  • input (optional) - Either a path to package.json file (defaults to './package.json') or a package.json object

Returns:

  • A formatted banner string ready for use in JavaScript files

Package.json Fields Used:

  • name (required) - Package name
  • version (required) - Package version
  • homepage (optional) - Project homepage URL
  • license (optional) - License identifier
  • author (optional) - Author information object with name and optional url

Features

  • 📦 Reads directly from package.json files or objects
  • 🎯 TypeScript support with full type definitions
  • 🔧 Works with popular build tools (tsup, Rollup, Webpack, etc.)
  • 🛡️ Graceful handling of missing optional fields
  • ⚡ Zero dependencies
  • 🧪 Comprehensive test coverage

Development

# Install dependencies
pnpm install

# Run tests
pnpm test

# Build the package
pnpm run build

# Run tests in watch mode
pnpm run test:watch

License

MIT © phucbm