@idooel/runtime-context
Version:
Runtime data pool with namespaces, stackable contexts, subscriptions and optional persistence. Vue adapter included.
49 lines (41 loc) • 1.22 kB
JavaScript
import dts from 'rollup-plugin-dts'
import esbuild from 'rollup-plugin-esbuild'
import { readFileSync } from 'fs'
const pkg = JSON.parse(readFileSync('./package.json', 'utf-8'))
const pkgName = pkg.main.replace(/\.js$/, '')
const createBundle = (entry, outputFile, name) => ({
input: entry,
plugins: [esbuild({
target: ['es2015', 'node12']
})],
output: [
{
file: `${outputFile}.js`,
format: 'cjs',
name
},
{
file: `${outputFile}.mjs`,
format: 'es'
}
]
})
const createTypesBundle = (entry, outputFile) => ({
input: entry,
plugins: [dts()],
output: {
file: `${outputFile}.d.ts`,
format: 'es'
}
})
export default [
// Main bundle (includes everything)
createBundle('src/index.ts', `${pkgName}`, 'RuntimeContext'),
createTypesBundle('src/index.ts', `${pkgName}`),
// Core bundle (core functionality only)
createBundle('src/core/index.ts', `${pkgName}-core`, 'RuntimeContextCore'),
createTypesBundle('src/core/index.ts', `${pkgName}-core`),
// Vue 2 bundle (Vue 2 integration only)
createBundle('src/vue2/index.ts', `${pkgName}-vue2`, 'RuntimeContextVue2'),
createTypesBundle('src/vue2/index.ts', `${pkgName}-vue2`)
]