aegean
v0.3.1
Published
Include the content of imports statements down to the importing file.
Downloads
342
Readme
aegean
Include the content of imports statements down to the importing file.
Before:
import "./helper/add";
const result = add(1, "+", 2); // 3
After:
function add(left, operator, right) {
let result = 0;
switch (operator) {
case "+":
result = left + right;
break;
}
return result;
}
const result = add(1, "+", 2); // 3
Summary
Installation
With npm:
npm install --save-dev aegean
With yarn:
yarn add --dev aegean
Usage
- Example 1: simple usage
- Example 2: importing file with nested imports
- Example 3: importing a node module
Example 1: simple usage
main.js
import "add";
const result = add(1, "+", 2);
console.log(result); // 3
example-1.js
const aegan = require("aegean");
const fs = require("fs");
const result = aegan("example/example-1/main.js");
fs.writeFileSync("example/example-1/inlined-main.js", result);
inlined-main.js
function add(left, operator, right) {
let result = 0;
switch (operator) {
case "+":
result = left + right;
break;
}
return result;
}
const result = add(1, "+", 2);
console.log(result); // 3
Example 2: importing file with nested imports
is_string.js
function is_string(mixed) {
return mixed !== null && mixed !== undefined && mixed.constructor === String;
}
echo.js
import "is_string";
function echo(mixed) {
if (is_string(mixed) === false) {
throw new Error("echo expects parameter 1 to be a string");
}
console.log(mixed);
}
main.js
import "echo";
echo("hello world");
example-2.js
const fs = require("fs");
const aegean = require("aegean");
const result = aegean(__dirname + "/example-2/main.js");
fs.writeFileSync(__dirname + "/example-2/inlined-main.js", result);
inlined-main.js
function is_string(mixed) {
return mixed !== null && mixed !== undefined && mixed.constructor === String;
}
function echo(mixed) {
if (is_string(mixed) === false) {
throw new Error("echo expects parameter 1 to be a string");
}
console.log(mixed);
}
echo("hello world");
Example 3: importing a node module
main.js
import "bootstrap/dist/js/bootstrap";
example-3.js
const aegean = require("aegean");
const fs = require("fs");
const bootstrap4 = aegean(__dirname + "/main.js");
fs.writeFileSync(__dirname + "/inlined.js", bootstrap4);
inlined.js
/*!
* Bootstrap v4.2.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
...
Supported imports methods
import "./path/to/local/file";
import "./path/to/local/file.js";
import "path/to/node/module/file";
import "path/to/node/module/file.js";
Contributing
- Install dependencies
npm install
or
yarn install
- Light on dev (transpiling typescript to javascript)
npm run dev
or
yarn dev
- Add your feature on
/src/main.ts
- Append your tests on
/test/aegean.js
- Run tests
npm run test
or
yarn test