kadoo

1.2.1 • Public • Published

Kadoo

NPM version GitHub last commit Github workflow Test coverage License

Kadoo is an ultralight bundler that encapsulates each javascript source file inside an IIFE module and the whole inside an UMD module or an ES6 module. The generated output is an UMD library, or an ES6 module, that could run on both Node.js and the browsers.

Kadoo is an ideal tool for those who don't like that their code is polluted by a lot of foreign code. Kadoo adds only two lines to your library and replace the import and export keywords by links that interconnect your modules.

Quick Startup

Write your source files with the import and export statements like this:

import A from '../a';

// Your public methods:
const B = {
  a() {
    ...
  },
  b() {
    ...
  },
}

export default B;

Kadoo encapsulates your source file into an IIFE module.

It replaces import and export by links.

The resulting output looks like:

(function() {
  const A = $__TREE.src.x.y.a;

  ... your unaltered code

  $__TREE.extend($__TREE.src.x.b, B);
}());

Then, it bundles all the files, of your project, in a unique output file. As each file is embedded in an IIFE module, it prevents any conflict between the different portions of your Javascript code.

The IIFE modules are connected together by the links that replace the import and export statements.

When you look at the resulting output, you can see that your code is almost unaltered. Kadoo adds just two lines at the top of your library in addition to the links that replace the import and export keywords.

ES6Kadoo is a boilerplate that allows you writing libraries that rely on Kadoo.

How to use it

From a command line

./node_modules/.bin/kadoo build --name './src/main.js' --outpout '/dist/bundle.js' --type 'umd'

From a Javascript script

const Kadoo = require('kadoo');

// By default, the generated output is an UMD module.
// If you want to generate an ES6 module, you have
// to specify 'es6' as the type.
const kadoo = Kadoo('./src/main.js', { type: 'umd'});

kadoo.get((data) => {
  fs.writeFile('./dist/bundle.js', data, 'utf8', (err) => {
    if (err) throw err;
    process.stdout.write('The UMD module is saved in "./dist/bundle.js"\n');
  });
});

Using Gulp

const Kadoo = require('kadoo');

// By default, the generated output is an UMD module.
// If you want to generate an ES6 module, you have
// to specify 'es6' as the type.
const kadoo = Kadoo('./src/main.js', { type: 'es6' });

function build() {
  return kadoo.bundle()
    .pipe(concat('bundle.js'))
    .pipe(dest('./dist'))
  ;
}

License

MIT.

Versions

Current Tags

Version History

Package Sidebar

Install

npm i kadoo

Weekly Downloads

0

Version

1.2.1

License

MIT

Unpacked Size

56 kB

Total Files

15

Last publish

Collaborators

  • jclo