Noteworthy Placebo Mongers

    kadoo

    1.0.6 • Public • Published

    Kadoo

    NPM version GitHub last commit Travis CI 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.

    Keywords

    Install

    npm i kadoo

    DownloadsWeekly Downloads

    18

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    56.4 kB

    Total Files

    15

    Last publish

    Collaborators

    • jclo