import fs from 'fs'

function mergeIgnorotronsFiles(...gitignoresContent) {
    return [
        ...new Set(
            gitignoresContent
                .join("\n")
                .split("\n")
                .filter((x) => x.charAt(0) != "#")
                .map((x) => x = x.trim())
                .filter((x) => x)
        )
    ].join("\n");
}

function minimizePackageJson(preattyJsons){
    return JSON.stringify(
        JSON.parse(preattyJsons)
    );
}

function CRAFT(){
    var pkgLock = fs.readFileSync("./package-lock.json", 'utf-8');
    pkgLock = minimizePackageJson(pkgLock);
    fs.writeFileSync("./package-lock.json", pkgLock, "utf-8");

    var gitIgn = fs.readFileSync("./.gitignore", 'utf-8');
    gitIgn = mergeIgnorotronsFiles(gitIgn);
    fs.writeFileSync("./.gitignore", gitIgn, "utf-8");
}



export default {
    CRAFT,
    mergeIgnorotronsFiles,
    minimizePackageJson
}