UNPKG

contentful-typescript-generator

Version:
58 lines (54 loc) 1.89 kB
#!/usr/bin/env node 'use strict'; var yargs = require('yargs'); var helpers = require('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 Promise.resolve().then(function () { return require('./generate-types-CbWyQGWZ.js'); }); 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(helpers.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();