UNPKG

youtube-likes-downloader

Version:
49 lines 2.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validate = validate; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const logger_1 = require("@anmiles/logger"); const formatTitle_1 = require("./utils/formatTitle"); const paths_1 = require("./utils/paths"); function validate(profile) { const allFiles = {}; const outputDir = (0, paths_1.getOutputDir)(profile); fs_1.default.ensureDir(outputDir, { create: true }); fs_1.default.recurse(outputDir, { file: (filepath, filename) => { let { name, ext } = path_1.default.parse(filename); if (ext === '.json') { name = name.replace(/\.info$/, ''); ext = `.info${ext}`; } const file = allFiles[name] ??= { exts: [], newName: undefined }; file.exts.push(ext); if (ext === '.info.json') { // TODO: zod // TODO: fs - replace readJSON "as" with zod validation const info = fs_1.default.readJSON(filepath); file.newName = (0, formatTitle_1.formatTitle)(info).toFilename(); } }, }, { depth: 1 }); Object.entries(allFiles).forEach(([name, { exts, newName }]) => { if (!newName) { throw new Error(`New name cannot be defined, probably ${name}.info.json does not exist`); } if (name !== newName) { (0, logger_1.warn)('Rename'); (0, logger_1.log)(`\tOld name: ${name}`); (0, logger_1.log)(`\tNew name: ${newName}`); for (const ext of exts) { const filename = path_1.default.join(outputDir, name); const newFilename = path_1.default.join(outputDir, newName); fs_1.default.renameSync(filename + ext, newFilename + ext); } } }); } //# sourceMappingURL=validate.js.map