UNPKG

contentful-typescript-generator

Version:
55 lines (52 loc) 1.79 kB
import yargs from 'yargs'; import { hideBin } from 'yargs/helpers'; async function generateTypesHandler(argv) { console.log("Generating TypeScript types..."); const { output, space, accessToken, environment: env } = argv; if (!output || !space || !accessToken || !env) { console.error("Missing required arguments: space, environment, access-token, or output."); process.exit(1); } const { generateTypes, getEnvironment } = await import('./generate-types-Q42-kaVC.mjs'); const environment = await getEnvironment(accessToken, space, env); if (!environment) { console.error("Failed to get Contentful environment."); process.exit(1); } const types = await generateTypes(environment); if (types) { console.log("Generated TypeScript types"); const { writeFileSync } = await import('fs'); writeFileSync(output, types, "utf8"); console.log(`Types written to ${output}`); } } console.log("Contentful TypeScript Generator"); yargs(hideBin(process.argv)).env("CONTENTFUL").config().command({ command: "generate", describe: "Generate TypeScript types from Contentful", builder: (yargs2) => { return yargs2.option("space", { alias: "s", type: "string", demandOption: true, describe: "Contentful Space ID" }).option("access-token", { alias: "t", type: "string", demandOption: true, describe: "Contentful Access Token" }).option("environment", { alias: "e", type: "string", default: "master", describe: "Contentful Environment ID (default: master)" }).option("output", { alias: "o", type: "string", default: "./contentful-types.ts", describe: "Output file for generated types" }); }, handler: generateTypesHandler }).parse();