hakuban 0.8.4

Data-object sharing library
Documentation
import { base64 } from 'rollup-plugin-base64';
import coffee from 'rollup-plugin-coffee-script';
import commonjs from 'rollup-plugin-commonjs';
import nodeResolve from 'rollup-plugin-node-resolve';
import terser from '@rollup/plugin-terser';

const lib_with_wasm = () => ({
  input: "coffee/hakuban-with-wasm.coffee",
  plugins: [
    base64({ include: "pkg/hakuban_bg.wasm.gz" }),
    coffee(),
  ],
  output: [
    { format: "es", file: `hakuban-with-wasm.js`, sourcemap: true },
    { format: "es", file: `hakuban-with-wasm.min.js`, plugins: [terser()], sourcemap: true },
  ],
});

const lib_without_wasm = (fmt) => ({
  input: "coffee/hakuban.coffee",
  plugins: [
    coffee(),
  ],
  output: [
    { format: "es", file: `hakuban.js`, sourcemap: true },
    { format: "es", file: `hakuban.min.js`, plugins: [terser()], sourcemap: true },
  ],
});


const embedded = (dir, file)=> ({
  input: dir+file+".coffee",
  output: { dir: `./`, format: 'esm', name: "hakuban-"+file },
  plugins: [
    coffee(),
    nodeResolve({extensions: ['.js']}),
    commonjs({extensions: ['.js']}),
    {
      generateBundle(opts, bundle) {
        this.emitFile({
          type: "asset",
            fileName: file+".html",
          source: '<html><head><meta charset="utf-8" /></head><body><script type="module">'+bundle[file+".js"].code+"</script></body></html>"
        });
      }
    }
  ],
});


export default [lib_with_wasm(), lib_without_wasm(), embedded("examples/","all-top"), embedded("tests/","basic")];