UNPKG

swaxios

Version:

Swagger API client generator based on axios and TypeScript.

59 lines 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateFileIndex = exports.getUniqueFileName = void 0; const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const fileNames = []; function getUniqueFileName(fileName) { if (!fileNames.includes(fileName)) { fileNames.push(fileName); return null; } let alternativeFilename = fileName; while (fileNames.includes(alternativeFilename)) { const indexNumberMatch = alternativeFilename.match(/(\d+)$/); const indexNumber = indexNumberMatch ? parseInt(indexNumberMatch[0], 10) + 1 : 1; alternativeFilename = `${fileName}${indexNumber}`; } fileNames.push(alternativeFilename); return alternativeFilename; } exports.getUniqueFileName = getUniqueFileName; async function generateFileIndex(directory) { const resolvedDir = path_1.default.resolve(directory); const fileIndex = { directories: {}, files: {}, fullPath: resolvedDir, name: path_1.default.basename(resolvedDir), }; try { const dirObjects = await fs_extra_1.default.readdir(resolvedDir); const generateIndices = dirObjects.sort().map(async (fileName) => { const resolvedFile = path_1.default.join(resolvedDir, fileName); const lstat = await fs_extra_1.default.lstat(resolvedFile); fileName = fileName.replace('.ts', ''); if (lstat.isFile()) { fileIndex.files[fileName] = { alternativeName: getUniqueFileName(fileName), fullPath: resolvedFile.replace('.ts', ''), name: fileName, }; } else if (lstat.isDirectory()) { const deepIndex = await generateFileIndex(resolvedFile); fileIndex.directories[fileName] = deepIndex; } }); await Promise.all(generateIndices); } catch (error) { console.error(error); } return fileIndex; } exports.generateFileIndex = generateFileIndex; //# sourceMappingURL=FileUtil.js.map