cdkdx
Version:
Zero-config CLI for aws cdk development
74 lines • 7.25 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TscDocgen = void 0;
const path = __importStar(require("path"));
const fs = __importStar(require("fs-extra"));
const os = __importStar(require("os"));
const typedoc_1 = require("typedoc");
const concat_md_1 = __importDefault(require("concat-md"));
class TscDocgen {
async generate(options) {
const realTempDir = await fs.realpath(os.tmpdir());
const tempOutDir = await fs.mkdtemp(path.join(realTempDir, 'cdkdx-'));
await this.runTypedoc(tempOutDir, options);
const api = await (0, concat_md_1.default)(tempOutDir, {
fileNameAsTitle: true,
});
await fs.writeFile('API.md', api, {
encoding: 'utf8',
});
}
async runTypedoc(outDir, options) {
const app = new typedoc_1.Application();
app.options.addReader(new typedoc_1.TSConfigReader());
app.bootstrap({
entryPoints: [path.join(options.projectPath, 'src', 'index.ts')],
//entryPoints: ['src/index.ts'],
disableSources: true,
readme: 'none',
theme: 'markdown',
plugin: ['typedoc-plugin-markdown'],
exclude: options.typescriptExcludes,
logger: (message, level) => {
if (level === 3) {
//log only errors
options.logger.fail(`${message}\n`);
}
},
});
const project = app.convert();
if (project) {
await app.generateDocs(project, outDir);
return;
}
throw new Error('Docgen execution failed.');
}
}
exports.TscDocgen = TscDocgen;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jZ2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RvY2dlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLHFDQUFzRDtBQUN0RCwwREFBaUM7QUFjakMsTUFBYSxTQUFTO0lBQ2IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUF3QjtRQUM1QyxNQUFNLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFdEUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsbUJBQVEsRUFBQyxVQUFVLEVBQUU7WUFDckMsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDaEMsUUFBUSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVLENBQ3RCLE1BQWMsRUFDZCxPQUF3QjtRQUV4QixNQUFNLEdBQUcsR0FBRyxJQUFJLHFCQUFXLEVBQUUsQ0FBQztRQUM5QixHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLHdCQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDWixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2hFLGdDQUFnQztZQUNoQyxjQUFjLEVBQUUsSUFBSTtZQUNwQixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxVQUFVO1lBQ2pCLE1BQU0sRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ25DLE9BQU8sRUFBRSxPQUFPLENBQUMsa0JBQWtCO1lBQ25DLE1BQU0sRUFBRSxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO29CQUNmLGlCQUFpQjtvQkFDakIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDO2lCQUNyQztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFOUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLE9BQU87U0FDUjtRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFqREQsOEJBaURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uLCBUU0NvbmZpZ1JlYWRlciB9IGZyb20gJ3R5cGVkb2MnO1xuaW1wb3J0IGNvbmNhdE1kIGZyb20gJ2NvbmNhdC1tZCc7XG5cbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0ZU9wdGlvbnMge1xuICBwcm9qZWN0UGF0aDogc3RyaW5nO1xuICB0eXBlc2NyaXB0RXhjbHVkZXM/OiBzdHJpbmdbXTtcbiAgbG9nZ2VyOiBMb2dnZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jZ2VuIHtcbiAgZ2VuZXJhdGU6IChvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjbGFzcyBUc2NEb2NnZW4gaW1wbGVtZW50cyBEb2NnZW4ge1xuICBwdWJsaWMgYXN5bmMgZ2VuZXJhdGUob3B0aW9uczogR2VuZXJhdGVPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVhbFRlbXBEaXIgPSBhd2FpdCBmcy5yZWFscGF0aChvcy50bXBkaXIoKSk7XG5cbiAgICBjb25zdCB0ZW1wT3V0RGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ocmVhbFRlbXBEaXIsICdjZGtkeC0nKSk7XG5cbiAgICBhd2FpdCB0aGlzLnJ1blR5cGVkb2ModGVtcE91dERpciwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCBhcGkgPSBhd2FpdCBjb25jYXRNZCh0ZW1wT3V0RGlyLCB7XG4gICAgICBmaWxlTmFtZUFzVGl0bGU6IHRydWUsXG4gICAgfSk7XG5cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoJ0FQSS5tZCcsIGFwaSwge1xuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcnVuVHlwZWRvYyhcbiAgICBvdXREaXI6IHN0cmluZyxcbiAgICBvcHRpb25zOiBHZW5lcmF0ZU9wdGlvbnMsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGFwcCA9IG5ldyBBcHBsaWNhdGlvbigpO1xuICAgIGFwcC5vcHRpb25zLmFkZFJlYWRlcihuZXcgVFNDb25maWdSZWFkZXIoKSk7XG5cbiAgICBhcHAuYm9vdHN0cmFwKHtcbiAgICAgIGVudHJ5UG9pbnRzOiBbcGF0aC5qb2luKG9wdGlvbnMucHJvamVjdFBhdGgsICdzcmMnLCAnaW5kZXgudHMnKV0sXG4gICAgICAvL2VudHJ5UG9pbnRzOiBbJ3NyYy9pbmRleC50cyddLFxuICAgICAgZGlzYWJsZVNvdXJjZXM6IHRydWUsXG4gICAgICByZWFkbWU6ICdub25lJyxcbiAgICAgIHRoZW1lOiAnbWFya2Rvd24nLFxuICAgICAgcGx1Z2luOiBbJ3R5cGVkb2MtcGx1Z2luLW1hcmtkb3duJ10sXG4gICAgICBleGNsdWRlOiBvcHRpb25zLnR5cGVzY3JpcHRFeGNsdWRlcyxcbiAgICAgIGxvZ2dlcjogKG1lc3NhZ2U6IHN0cmluZywgbGV2ZWw6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAobGV2ZWwgPT09IDMpIHtcbiAgICAgICAgICAvL2xvZyBvbmx5IGVycm9yc1xuICAgICAgICAgIG9wdGlvbnMubG9nZ2VyLmZhaWwoYCR7bWVzc2FnZX1cXG5gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb2plY3QgPSBhcHAuY29udmVydCgpO1xuXG4gICAgaWYgKHByb2plY3QpIHtcbiAgICAgIGF3YWl0IGFwcC5nZW5lcmF0ZURvY3MocHJvamVjdCwgb3V0RGlyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvY2dlbiBleGVjdXRpb24gZmFpbGVkLicpO1xuICB9XG59XG4iXX0=