kadoo
v1.3.0
Published
A tool to embed ES6 Javascript code into an UMD module
Downloads
62
Readme
Kadoo
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.