contentful-typescript-generator
Version:
Used to generate typescript models from your Contentful environment
57 lines (53 loc) • 1.87 kB
JavaScript
;
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.cjs'); });
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();