UNPKG

@mikemajara/notion-cms

Version:

A TypeScript library for using Notion as a headless CMS

2 lines 1.94 kB
#!/usr/bin/env node 'use strict';var chunkQTZIDKAD_js=require('./chunk-QTZIDKAD.js'),commander=require('commander'),r=require('path'),t=require('fs');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var r__namespace=/*#__PURE__*/_interopNamespace(r);var t__namespace=/*#__PURE__*/_interopNamespace(t);var n=new commander.Command;n.name("notion-cms").description("CLI for generating TypeScript types from Notion databases");n.command("generate").description("Generate TypeScript types from a Notion database").option("-d, --database <id>","Notion database ID (for single database)").option("--databases <ids>","Multiple Notion database IDs separated by commas").option("-o, --output <path>","Output path","./notion").requiredOption("-t, --token <token>","Notion API token").action(async e=>{try{!e.database&&!e.databases&&(console.error("Error: Either --database or --databases must be provided"),process.exit(1)),e.database&&e.databases&&(console.error("Error: Cannot use both --database and --databases options"),process.exit(1));let a=r__namespace.resolve(process.cwd(),e.output),s=e.databases?e.databases.split(",").map(o=>o.trim()):[e.database];if(console.log(`Generating types for ${s.length===1?"database":"databases"}: ${s.join(", ")}`),console.log(`Output path: ${a}`),t__namespace.existsSync(a)||t__namespace.mkdirSync(a,{recursive:!0}),s.length>1)await chunkQTZIDKAD_js.b(s,a,e.token);else {let o=r__namespace.join(a,"notion-types.ts");t__namespace.existsSync(o)&&t__namespace.unlinkSync(o),await chunkQTZIDKAD_js.a(s[0],a,e.token);}console.log("Types generated successfully!");}catch(a){console.error("Error generating types:",a),process.exit(1);}});n.parse(process.argv);