rpc-typescript
Version:
An RCP library for TypeScript
67 lines (61 loc) • 2.18 kB
text/typescript
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import typescript from '@rollup/plugin-typescript';
import pkg from './package.json';
const SrcName = (n, ext, format = undefined) => `src/${n}${format ? '.' + format : ''}.${ext}`;
const DstName = (n, ext, format = undefined) => `dist/${n}${format ? '.' + format : ''}.${ext}`;
// browser-friendly UMD build
const UMD = (input, output) => ({
input: input,
output: {
name: 'rpc-typescript',
file: output,// pkg.browser,
format: 'umd'
},
plugins: [
typescript(),
resolve(), // so Rollup can find `ms`
commonjs() // so Rollup can convert `ms` to an ES module
]
});
// CommonJS (for Node) and ES module (for bundlers) build.
// (We could have three entries in the configuration array
// instead of two, but it's quicker to generate multiple
// builds from a single configuration where possible, using
// an array for the `output` option, where we can specify
// `file` and `format` for each target)
const CJS = (input, output) => ({
input: input,
external: ['ms'],
output: {
name: 'rpc-typescript',
file: output,// pkg.browser,
format: 'cjs'
},
plugins: [
typescript(),
]
});
const ES = (input, output) => ({
input: input,
external: ['ms'],
output: {
name: 'rpc-typescript',
file: output,// pkg.browser,
format: 'es'
},
plugins: [
typescript(),
]
});
export default [
UMD(SrcName('index', 'ts'), DstName('full', 'js', 'umd')),
UMD(SrcName('proxy', 'ts'), DstName('proxy', 'js', 'umd')),
UMD(SrcName('stub', 'ts'), DstName('stub', 'js', 'umd')),
CJS(SrcName('index', 'ts'), DstName('full', 'js', 'cjs')),
CJS(SrcName('proxy', 'ts'), DstName('proxy', 'js', 'cjs')),
CJS(SrcName('stub', 'ts'), DstName('stub', 'js', 'cjs')),
ES(SrcName('index', 'ts'), DstName('full', 'js', 'es')),
ES(SrcName('proxy', 'ts'), DstName('proxy', 'js', 'es')),
ES(SrcName('stub', 'ts'), DstName('stub', 'js', 'es')),
];