OverviewFilesCommitsIssuesDocsReleasesPeers

mirall-cli / node_modules / builder-util / out / filename.js

39 lines · javascript ref:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.sanitizeFileName = sanitizeFileName;
exports.getCompleteExtname = getCompleteExtname;
const path = require("path");
// @ts-ignore
const _sanitizeFileName = require("sanitize-filename");
function sanitizeFileName(s, normalizeNfd = false) {
    const sanitized = _sanitizeFileName(s);
    return normalizeNfd ? sanitized.normalize("NFD") : sanitized;
}
// Get the filetype from a filename. Returns a string of one or more file extensions,
// e.g. .zip, .dmg, .tar.gz, .tar.bz2, .exe.blockmap. We'd normally use `path.extname()`,
// but it doesn't support multiple extensions, e.g. Foo-1.0.0.dmg.blockmap should be
// .dmg.blockmap, not .blockmap.
function getCompleteExtname(filename) {
    let extname = path.extname(filename);
    switch (extname) {
        // Append leading extension for blockmap filetype
        case ".blockmap": {
            extname = path.extname(filename.replace(extname, "")) + extname;
            break;
        }
        // Append leading extension for known compressed tar formats
        case ".bz2":
        case ".gz":
        case ".lz":
        case ".xz":
        case ".7z": {
            const ext = path.extname(filename.replace(extname, ""));
            if (ext === ".tar") {
                extname = ext + extname;
            }
            break;
        }
    }
    return extname;
}
//# sourceMappingURL=filename.js.map