0.3.5 • Published 3 years ago

@puresamari/ts-bundler v0.3.5

Weekly downloads
68
License
Apache-2.0
Repository
github
Last release
3 years ago

TS-Bundler

This is a (super) lightweight typescript bundle library, which I created for my build tool @puresamari/spb since webpack creates way too much overhead.

Installation

npm i[nstall] [--save[-dev]|-D|-S] @puresamari/ts-bundler

Usage

import { TypescriptBundler } from '@puresamari/ts-bundler';

...

// Create the bundler with the file as attribute (file has to be an absolute path)
const bundler = new TypescriptBundler(file);

The bundlers observe method returns a rxjs observable that contains the following values:

interface {
  output: string,
  map: Map<string, {
    content: string;
    node_module: boolean;
    file: string;
    absolutePath: string;
  }>
}

The observe method takes 2 oparameters:

  • Rebundle: should the bundle be compiled when running observe() (default = true)
  • Once, should you only get the first trigger. (default = false)

Example use cases

(To run these please first create a bundler instance like above.)

The examples compile file into test.export.js.

Bundle the module:

import fs from 'fs';

const result = bundler.observe().subscribe(({ output }) => {
  fs.writeFileSync(path.resolve(__dirname, 'test.export.js'), v.output);
});

The same but with file watching and module replacement:

import fs from 'fs';

const result = bundler.observe().subscribe(({ output }) => {
  fs.writeFileSync(path.resolve(__dirname, 'test.export.js'), v.output);
});

bundler.observe(false, true).subscribe(v => {
  v.map.forEach((v, _module) => {
    if (!v?.file || v.node_module) { return; }
    fs.watchFile(v.absolutePath, () => {
      bundler.refreshModule(_module);
    })
  })
});

Bundle once using await:

import fs from 'fs';

fs.writeFileSync(path.resolve(__dirname, 'test.export.js'), await bundle.bundle().output);

Bundle once using promise:

import fs from 'fs';

bundle.bundle().then(({ output }) => fs.writeFileSync(path.resolve(__dirname, 'test.export.js'), output);
0.3.0

3 years ago

0.3.5

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.2.1

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.4

3 years ago

0.2.0

4 years ago

0.1.0

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago