UNPKG

graphql-from-swagger

Version:

<a href="http://badge.fury.io/js/graphql-from-swagger"><img src="https://badge.fury.io/js/graphql-from-swagger.svg"></a>

66 lines (65 loc) 2.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); // deleteCustomerUsingDELETE -> MutationDeleteCustomerUsingDeleteArgs function getArgsStringFromOperationId(operationId, method) { const prefix = method.toLowerCase() === 'get' ? 'Query' : 'Mutation'; let prevChar = ''; return (prefix + operationId.split('').reduce((result, char, index) => { if (index === 0) return char.toUpperCase(); if (/[A-Z]/.test(prevChar) && /[A-Z]/.test(char)) result += char.toLowerCase(); else result += char; prevChar = char; return result; }, '') + 'Args'); } exports.getArgsStringFromOperationId = getArgsStringFromOperationId; function indent(str, count = 1) { return new Array(count).fill(' ').join('') + str; } exports.indent = indent; // "../generated/HeroesApi.ts" 파일에서 "../generated/types1.ts" 파일의 상대경로는 "./types1" function getRelativePath(from, to, ext = '.ts') { const targetFileName = path_1.default.basename(to, ext); let relativePath = path_1.default.relative(path_1.default.dirname(from), path_1.default.dirname(to)); if (relativePath === '') relativePath = '.'; if (targetFileName === 'index') return relativePath; return `${relativePath}/${targetFileName}`; } exports.getRelativePath = getRelativePath; function getInstanceNameFromClass(className) { if (!className) throw new Error('[getInstanceNameFromClass] className can not be empty string or undefined!'); return className[0].toLowerCase() + className.substring(1); } exports.getInstanceNameFromClass = getInstanceNameFromClass; function checkUrlForm(strUrl) { var expUrl = /^http[s]?\:\/\//i; return expUrl.test(strUrl); } exports.checkUrlForm = checkUrlForm; function writeFiles(paths, strs) { const currentDir = process.cwd(); for (let i = 0; i < paths.length; i++) { fs_1.default.writeFile(path_1.default.join(currentDir, paths[i]), strs[i], () => { console.info(`[${path_1.default.join(currentDir, paths[i])}] was generated!`); }); } } exports.writeFiles = writeFiles; exports.replaceOddChars = (str) => str.replace(/[^_a-zA-Z0-9]/g, '_'); exports.getGQLTypeNameFromURL = (method, url) => { const fromUrl = exports.replaceOddChars(url.replace(/[{}]+/g, '')); return `${method}${fromUrl}`; };