siphon-cli
Version:
Simple bundler for web applications. 📦🔧🧡
33 lines (32 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var fs = require("fs");
var path = require("path");
var errors_1 = require("./errors");
var generator_1 = require("./transpilers/mimo/generator");
var runtime_1 = require("./runtime");
var createDOMTree_1 = require("./transpilers/mimo/createDOMTree");
var utils_1 = require("../utils");
function bundler(source) {
return {
into: function (destination, options) {
if (!fs.existsSync(source))
errors_1.default.enc("FILE_NON_EXISTENT", source);
var fileExt = path.extname(source.toString());
switch (fileExt) {
case ".html":
case ".xhtml":
case ".mhtml":
var htmlTree = (0, createDOMTree_1.default)(source);
(0, utils_1.forceCreateDir)(destination);
var runtime = new runtime_1.default(source, destination, options);
var generator = new generator_1.default();
htmlTree = runtime.resolve(htmlTree);
var result = generator.generate(htmlTree, options);
fs.writeFileSync(destination, result);
return true;
}
},
};
}
exports.default = bundler;