1.2.0 • Published 8 months ago

@mnrendra/rollup-utils v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@mnrendra/rollup-utils

šŸ£ Rollup plugin utilities.

Install

npm i @mnrendra/rollup-utils

Usage

Use in your plugin development:

yourPlugin/store.ts

import type { Store } from '@mnrendra/rollup-utils'

const store: Store = {
  pluginName: '', // `Rollup` plugin name
  name: '', // `package.json` name
  version: '', // `package.json` version
  homepage: '', // `package.json` homepage
}

export default store

yourPlugin/index.ts

import type { Plugin } from 'rollup'

import {
  initStore,
  printInfo
} from '@mnrendra/rollup-utils'

import store from './store'

/**
 * Rollup plugin.
 *
 * @returns {Promise<Plugin>} Rollup plugin object.
 */
const main = async (): Promise<Plugin> => {
  // Initialize store.
  await initStore(store, { any: null })

  // Print info.
  printInfo(store)

  // Return Rollup plugin object.
  return {
    /**
     * Rollup properties
     */
    name: store.pluginName,
    version: store.version
  }
}

export default main

Utilities

• initStore

To initialize the store to save the expensive data (e.g., package.json values).

import type { Store } from '@mnrendra/rollup-utils'

type InitStore = <T extends Record<string, any> = Record<string, any>>(store: Store, additional?: T) => Promise<void>

It automatically read package.json and store the required properties in the store.

• printInfo

To print Rollup plugin information from the store.

import type { Store } from '@mnrendra/rollup-utils'

type PrintInfo = (store: Store) => void

The current format is: • pluginName: version. If you wish to change the format, please request it here.

Types

import type {
  Store
} from '@mnrendra/rollup-utils'

License

MIT

Author

@mnrendra