UNPKG

siphon-cli

Version:

Simple bundler for web applications. 📦🔧🧡

86 lines (85 loc) • 3.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.relativePath = exports.getAllFiles = exports.getFileName = exports.forceCreateDir = exports.fileExists = exports.tryMkingDir = exports.stringifytoBase64 = exports.copyInBase64 = void 0; var fs_1 = require("fs"); var path_1 = require("path"); var errors_1 = require("../core/errors"); var parsing_utils_1 = require("./parsing_utils"); function copyInBase64(src, dest) { (0, fs_1.writeFile)(dest, (0, fs_1.readFileSync)(src), "base64", function () { }); } exports.copyInBase64 = copyInBase64; function stringifytoBase64(file) { return "data:".concat((0, parsing_utils_1.getMIMEType)((0, path_1.extname)(file.toString()).slice(1).toLowerCase()), ";base64,").concat((0, fs_1.readFileSync)(file, { encoding: "base64" })); } exports.stringifytoBase64 = stringifytoBase64; function tryMkingDir(src) { if (!((0, fs_1.existsSync)(src) && (0, fs_1.lstatSync)(src).isDirectory())) (0, fs_1.mkdirSync)(src); } exports.tryMkingDir = tryMkingDir; function fileExists(srcpath) { return (0, fs_1.existsSync)(srcpath) && !(0, fs_1.lstatSync)(srcpath).isDirectory(); } exports.fileExists = fileExists; function forceCreateDir(source) { var routes = (0, path_1.resolve)(source.toString()).split(/\\|\//); for (var index = 1; routes[index]; index++) { var resolvedPath = routes.slice(0, index).join("/"); if (!(0, fs_1.existsSync)(resolvedPath)) { (0, fs_1.mkdirSync)(resolvedPath); } } } exports.forceCreateDir = forceCreateDir; function getFileName(source) { return (0, path_1.basename)(source.toString()).split(".").slice(0, -1).join("."); } exports.getFileName = getFileName; function getAllFiles(path, options) { var fileList = []; if (!(0, fs_1.lstatSync)(path).isDirectory()) errors_1.default.enc("NOT_A_DIRECTORY", path); (0, fs_1.readdirSync)(path).forEach(function (pathChild) { var _a; if (!((_a = options === null || options === void 0 ? void 0 : options.exclude) === null || _a === void 0 ? void 0 : _a.includes("".concat(path, "/").concat(pathChild)))) { if ((0, fs_1.lstatSync)("".concat(path, "/").concat(pathChild)).isDirectory()) { fileList.push(getAllFiles("".concat(path, "/").concat(pathChild, "/"))); } else { fileList.push("".concat(path, "/").concat(pathChild, "/")); } } else return []; }); return fileList.flat(1); } exports.getAllFiles = getAllFiles; function relativePath(from, to) { var rootPaths = (0, path_1.resolve)(from.toString()) .split("\\") .filter(function (route) { return route !== ""; }); switch (true) { case to.includes(":"): return to; case to.startsWith("http://"): case to.startsWith("https://"): return to; case to.startsWith("../"): do { rootPaths.pop(); to = to.slice(3); } while (to.startsWith("../")); return rootPaths.slice(0, -1).join("\\") + "\\" + to; case to.startsWith("/"): return (0, path_1.resolve)(to.slice(1)); case to.startsWith("./"): return rootPaths.slice(0, -1).join("\\") + "\\" + to.slice(2); case to.replace(" ", "") === "": errors_1.default.enc("FILE_NON_EXISTENT", ""); default: return rootPaths.slice(0, -1).join("\\") + "\\" + to; } } exports.relativePath = relativePath;