UNPKG

@sirhc77/postman-sdk-gen

Version:

Generate a fully-typed TypeScript SDK from a Postman collection, with support for Axios or Fetch, folder-based namespacing, and auto-inferred types.

32 lines (27 loc) 1.09 kB
export function camelCase(input: string): string { return input .toLowerCase() .split(/[^a-zA-Z0-9]+/) // split on non-alphanumeric characters .filter(Boolean) // remove empty strings .filter(value => value.toUpperCase() !== 'A' && value.toUpperCase() !== 'AN' && value.toUpperCase() !== 'THE') .map((word, index) => { if (index === 0) return word; return word[0].toUpperCase() + word.slice(1); }) .join(''); } export function capitalize(input: string): string { if (!input || input.length === 0) return input; return input[0].toUpperCase() + input.slice(1); } export function pascalCase(str: string): string { return str .replace(/[-_]+/g, " ") .replace(/[^\w\s]/g, "") .replace(/\s+(.?)/g, (_, c) => c.toUpperCase()) .replace(/^\w/, c => c.toUpperCase()); } export function namespaceToTypeName(path: string[], methodName?: string): string { const nameParts = [...path, methodName || ""]; return pascalCase(nameParts.join(" ")) + "Namespace"; }