aegean
TypeScript icon, indicating that this package has built-in type declarations

0.3.1 • Public • Published

aegean

Include the content of imports statements down to the importing file.

npm NpmLicense Build Status Known Vulnerabilities

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

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

  1. Install dependencies
npm install

or

yarn install
  1. Light on dev (transpiling typescript to javascript)
npm run dev

or

yarn dev
  1. Add your feature on /src/main.ts
  2. Append your tests on /test/aegean.js
  3. Run tests
npm run test

or

yarn test

Package Sidebar

Install

npm i aegean

Weekly Downloads

42

Version

0.3.1

License

MIT

Unpacked Size

11.6 kB

Total Files

8

Last publish

Collaborators

  • khalyomede