siphon-cli
Version:
Simple bundler for web applications. 📦🔧🧡
86 lines (85 loc) • 4.5 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.bundler_internals = void 0;
var utils_1 = require("./utils");
var types_1 = require("../../../../types");
var creator_1 = require("../traverser/helpers/creator");
var __1 = require("..");
var transform_template_literals_1 = require("../traverser/examples/transform_template_literals");
var resolve_optional_chaining_1 = require("../traverser/examples/resolve_optional_chaining");
var resolve_nullish_coalescing_1 = require("../traverser/examples/resolve_nullish_coalescing");
var rewrite_destructured_variables_1 = require("../traverser/examples/rewrite_destructured_variables");
var transpile_jsx_1 = require("../traverser/examples/JSX_transpiling/transpile_jsx");
var default_handler_1 = require("../traverser/examples/JSX_transpiling/default_handler");
var default_parameters_1 = require("../traverser/examples/default_parameters");
var minify_1 = require("../traverser/examples/minify");
var bundler_internals = (function (_super) {
__extends(bundler_internals, _super);
function bundler_internals() {
return _super !== null && _super.apply(this, arguments) || this;
}
bundler_internals.prototype.bundle = function (entry, options) {
this.options = __assign(__assign({}, utils_1.defaults), options);
this.tree = new types_1.Program(0);
this.entry = entry;
this.start(entry);
var defaultJSXFunctionName = this.uniqueIdentifier("").name;
if (this.hasJSX)
this.tree.push((0, default_handler_1.default)(defaultJSXFunctionName));
if (this.tree.body[1] instanceof types_1.FunctionDeclaration) {
this.tree.push((0, creator_1.callExpression)(this.tree.body[1].id, []));
}
__1.default.traverse(this.tree, {
enter: default_parameters_1.default,
TemplateLiteral: transform_template_literals_1.default,
MemberExpression: resolve_optional_chaining_1.default,
LogicalExpression: resolve_nullish_coalescing_1.default,
VariableDeclaration: rewrite_destructured_variables_1.default,
ChainExpression: function (node) { return node.expression; },
JSXElement: function (node, path) {
return (0, transpile_jsx_1.default)(node, path, defaultJSXFunctionName);
},
JSXFragment: function (node) {
var arr = new types_1.ArrayExpression(node.loc.start);
arr.elements = node.children;
arr.loc.end = node.loc.end;
return arr;
},
JSXText: function (node) {
return (0, creator_1.newString)("\"".concat(node.value.replace(/"/g, '"').replace(/\n|\s[\s]*/g, " "), "\""));
},
JSXExpressionContainer: function (node) { var _a; return (_a = node.expression) !== null && _a !== void 0 ? _a : new types_1.EmptyNode(0); },
});
var final = __1.default.parse("(function(){})()");
final.body[0].expression.callee.body = (0, creator_1.blockStatement)(this.tree.body);
return (0, minify_1.default)(final);
};
return bundler_internals;
}(utils_1.bundler_utils));
exports.bundler_internals = bundler_internals;