UNPKG

projen

Version:

CDK for software projects

37 lines 4.55 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.JsiiDocgen = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const component_1 = require("../component"); const dependencies_1 = require("../dependencies"); /** * Creates a markdown file based on the jsii manifest: * - Adds a `docgen` script to package.json * - Runs `jsii-docgen` after compilation * - Enforces that markdown file is checked in */ class JsiiDocgen extends component_1.Component { constructor(scope, options = {}) { super(scope); const version = options.version ?? "*"; this.project.deps.requestDependency({ name: "jsii-docgen", version, type: dependencies_1.DependencyType.BUILD, }); const filePath = options.filePath ?? "API.md"; const docgen = this.project.addTask("docgen", { description: "Generate API.md from .jsii manifest", exec: `jsii-docgen -o ${filePath}`, }); // spawn docgen after compilation (requires the .jsii manifest). this.project.postCompileTask.spawn(docgen); this.project.gitignore.include(`/${filePath}`); this.project.annotateGenerated(`/${filePath}`); } } exports.JsiiDocgen = JsiiDocgen; _a = JSII_RTTI_SYMBOL_1; JsiiDocgen[_a] = { fqn: "projen.cdk.JsiiDocgen", version: "0.99.51" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1kb2NnZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrL2pzaWktZG9jZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQW9CakQ7Ozs7O0dBS0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxxQkFBUztJQUN2QyxZQUFZLEtBQWlCLEVBQUUsVUFBNkIsRUFBRTtRQUM1RCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNsQyxJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPO1lBQ1AsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQztRQUU5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDNUMsV0FBVyxFQUFFLHFDQUFxQztZQUNsRCxJQUFJLEVBQUUsa0JBQWtCLFFBQVEsRUFBRTtTQUNuQyxDQUFDLENBQUM7UUFFSCxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQzs7QUF0QkgsZ0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBKc2lpRG9jZ2VuYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlEb2NnZW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbGUgcGF0aCBmb3IgZ2VuZXJhdGVkIGRvY3MuXG4gICAqIEBkZWZhdWx0IFwiQVBJLm1kXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNlbXZlciB2ZXJzaW9uIHN0cmluZyB0byBpbnN0YWxsIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBqc2lpLWRvY2dlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJyonXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXJrZG93biBmaWxlIGJhc2VkIG9uIHRoZSBqc2lpIG1hbmlmZXN0OlxuICogLSBBZGRzIGEgYGRvY2dlbmAgc2NyaXB0IHRvIHBhY2thZ2UuanNvblxuICogLSBSdW5zIGBqc2lpLWRvY2dlbmAgYWZ0ZXIgY29tcGlsYXRpb25cbiAqIC0gRW5mb3JjZXMgdGhhdCBtYXJrZG93biBmaWxlIGlzIGNoZWNrZWQgaW5cbiAqL1xuZXhwb3J0IGNsYXNzIEpzaWlEb2NnZW4gZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogSUNvbnN0cnVjdCwgb3B0aW9uczogSnNpaURvY2dlbk9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb24gPz8gXCIqXCI7XG4gICAgdGhpcy5wcm9qZWN0LmRlcHMucmVxdWVzdERlcGVuZGVuY3koe1xuICAgICAgbmFtZTogXCJqc2lpLWRvY2dlblwiLFxuICAgICAgdmVyc2lvbixcbiAgICAgIHR5cGU6IERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgIH0pO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSBvcHRpb25zLmZpbGVQYXRoID8/IFwiQVBJLm1kXCI7XG5cbiAgICBjb25zdCBkb2NnZW4gPSB0aGlzLnByb2plY3QuYWRkVGFzayhcImRvY2dlblwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZSBBUEkubWQgZnJvbSAuanNpaSBtYW5pZmVzdFwiLFxuICAgICAgZXhlYzogYGpzaWktZG9jZ2VuIC1vICR7ZmlsZVBhdGh9YCxcbiAgICB9KTtcblxuICAgIC8vIHNwYXduIGRvY2dlbiBhZnRlciBjb21waWxhdGlvbiAocmVxdWlyZXMgdGhlIC5qc2lpIG1hbmlmZXN0KS5cbiAgICB0aGlzLnByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKGRvY2dlbik7XG4gICAgdGhpcy5wcm9qZWN0LmdpdGlnbm9yZS5pbmNsdWRlKGAvJHtmaWxlUGF0aH1gKTtcbiAgICB0aGlzLnByb2plY3QuYW5ub3RhdGVHZW5lcmF0ZWQoYC8ke2ZpbGVQYXRofWApO1xuICB9XG59XG4iXX0=