UNPKG

readmeasy

Version:

Creates README.md for node modules using any template engine as easy as possible.

58 lines 2.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.findTemplateFile = exports.findOrCreateTemplateFile = void 0; /* eslint-disable no-console */ const measy_1 = require("measy"); const top_pkg_dir_1 = __importDefault(require("top-pkg-dir")); const path_1 = require("path"); const fs_1 = require("fs"); const utils_1 = require("./utils"); Object.defineProperty(exports, "findOrCreateTemplateFile", { enumerable: true, get: function () { return utils_1.findOrCreateTemplateFile; } }); Object.defineProperty(exports, "findTemplateFile", { enumerable: true, get: function () { return utils_1.findTemplateFile; } }); const shields_1 = __importDefault(require("./shields")); /** @ignore */ const transform = require("doctoc/lib/transform"); // eslint-disable-line @typescript-eslint/no-var-requires /** @ignore */ const TOC_TAG = "<!-- START doctoc -->\n<!-- END doctoc -->"; /** * Creates README.md from REDAME template. * @param options are the options. */ async function createReadMe( /* istanbul ignore next: Ignore default parameters. */ options = {}) { const dir = options.dir || (await top_pkg_dir_1.default()); const readmeTemplate = options.templateExtension ? path_1.join(dir, `README.${options.templateExtension}`) : await utils_1.findOrCreateTemplateFile({ dir, defaultContent: options.defaultContent, templateExtension: options.templateExtension }); const packageJson = await utils_1.readPackageJson(dir); const engine = options.engine || measy_1.engineOfExtension(path_1.extname(readmeTemplate)); if (!engine || !measy_1.isEngineSupported(engine)) { throw new Error("Cannot determine template engine."); } let rendered = await measy_1.render({ ...options, template: readmeTemplate, partialDirs: utils_1.advancedSupportedEngines.has(engine) ? [path_1.join(__dirname, "../module-files/partials", engine), ...utils_1.arrify(options.partialDirs || "partials")] : [], contextFiles: options.contextFiles, rootContextFiles: options.rootContextFiles, context: { toc: TOC_TAG, allShields: shields_1.default(packageJson), package: packageJson }, functionFiles: options.functionFiles, rootFunctionFiles: [path_1.join(__dirname, "helpers"), ...utils_1.arrify(options.rootFunctionFiles)], engine, }); if (rendered.includes(TOC_TAG)) { const docTocResult = transform(rendered, "github.com", 3, undefined, true); if (docTocResult.transformed) { rendered = docTocResult.data; } } await fs_1.promises.writeFile(path_1.join(dir, "README.md"), rendered, { encoding: "utf8" }); } exports.default = createReadMe; //# sourceMappingURL=index.js.map