https://github.com/mongodb/js-bson
Raw File
Tip revision: 6894baec9f5713ae7e3faafaf5ea2cecfc9cb9a1 authored by Daria Pardue on 05 October 2021, 20:21:26 UTC
chore(release): 4.5.3
Tip revision: 6894bae
rollup.config.js
import pkg from './package.json';
import commonjs from 'rollup-plugin-commonjs';
import nodeBuiltins from 'rollup-plugin-polyfill-node';
import { nodeResolve } from '@rollup/plugin-node-resolve';
import { babel } from '@rollup/plugin-babel';
import typescript from '@rollup/plugin-typescript';
import nodeGlobals from 'rollup-plugin-node-globals';

const tsConfig = {
  allowJs: false,
  checkJs: false,
  strict: true,
  alwaysStrict: true,
  target: 'es5',
  module: 'esnext',
  moduleResolution: 'node',
  lib: ['ES2017', 'ES2020.BigInt', 'ES2017.TypedArrays'],
  // We don't make use of tslib helpers
  importHelpers: true,
  noEmitHelpers: false,
  noEmitOnError: true,
  // make use of import type where applicable
  importsNotUsedAsValues: 'error',
  // Generate separate source maps files with sourceContent included
  sourceMap: true,
  inlineSourceMap: false,
  inlineSources: false,
  // API-extractor makes use of the declarations, npm script should be cleaning these up
  declaration: false,
  types: [],
  tsconfig: false,
  include: ['src/**/*']
};
const input = 'src/bson.ts';

const plugins = [
  typescript(tsConfig),
  nodeResolve({ preferBuiltins: false }),
  nodeBuiltins(),
  nodeGlobals(),
  commonjs({ extensions: ['.js', '.ts'] }),
  babel({
    babelHelpers: 'external',
    plugins: ['@babel/plugin-external-helpers'],
    presets: [['@babel/env', { modules: false }]]
  })
];

const external = Object.keys(pkg.dependencies || {});

const defaultName = 'BSON';

module.exports = [
  {
    input,
    output: {
      file: 'dist/bson.esm.js',
      format: 'es',
      name: defaultName,
      exports: 'named',
      sourcemap: true
    },
    plugins,
    external
  },
  {
    input,
    output: [
      {
        file: 'dist/bson.browser.umd.js',
        format: 'umd',
        name: defaultName,
        exports: 'named',
        sourcemap: true
      },
      {
        file: 'dist/bson.browser.esm.js',
        format: 'es',
        name: defaultName,
        exports: 'named',
        sourcemap: true
      },
      {
        file: 'dist/bson.bundle.js',
        format: 'iife',
        name: defaultName,
        exports: 'named',
        sourcemap: true
      }
    ],
    plugins
  }
];
back to top