@stephansama/auto-readme
Version:
Generate lists and tables for your README automagically based on your repository and comments
130 lines (127 loc) • 4.92 kB
JavaScript
//#region rolldown:runtime
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
key = keys[i];
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: ((k) => from[k]).bind(null, key),
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
value: mod,
enumerable: true
}) : target, mod));
//#endregion
let zod = require("zod");
zod = __toESM(zod);
//#region src/schema.ts
const actionsSchema = zod.enum([
"ACTION",
"PKG",
"USAGE",
"WORKSPACE",
"ZOD"
]).meta({ description: "Comment action options" });
const formatsSchema = zod.enum(["LIST", "TABLE"]).default("TABLE");
const languageSchema = zod.enum(["JS", "RS"]).default("JS");
const headingsSchema = zod.enum([
"default",
"description",
"devDependency",
"downloads",
"name",
"private",
"required",
"version"
]).meta({ description: "Table heading options" });
const tableHeadingsSchema = zod.record(actionsSchema, headingsSchema.array().optional()).default({
ACTION: [
"name",
"required",
"default",
"description"
],
PKG: [
"name",
"version",
"devDependency"
],
USAGE: [],
WORKSPACE: [
"name",
"version",
"downloads",
"description"
],
ZOD: []
}).meta({ description: "Table heading action configuration" });
const templatesSchema = zod.object({
downloadImage: zod.string().default("https://img.shields.io/npm/dw/{{name}}?labelColor=211F1F"),
emojis: zod.record(headingsSchema, zod.string()).default({
default: "⚙️",
description: "📝",
devDependency: "💻",
downloads: "📥",
name: "🏷️",
private: "🔒",
required: "",
version: ""
}).meta({ description: "Table heading emojis used when enabled" }),
registryUrl: zod.string().default("https://www.npmjs.com/package/{{name}}"),
versionImage: zod.string().default("https://img.shields.io/npm/v/{{uri_name}}?logo=npm&logoColor=red&color=211F1F&labelColor=211F1F")
});
const defaultTemplates = templatesSchema.parse({});
const defaultTableHeadings = tableHeadingsSchema.parse(void 0);
const _configSchema = zod.object({
affectedRegexes: zod.string().array().default([]),
collapseHeadings: zod.string().array().default([]),
defaultLanguage: languageSchema.meta({
alias: "l",
description: "Default language to infer projects from"
}),
disableEmojis: zod.boolean().default(false).meta({
alias: "e",
description: "Whether or not to use emojis in markdown table headings"
}),
disableMarkdownHeadings: zod.boolean().default(false).meta({ description: "Whether or not to display markdown headings" }),
enablePrettier: zod.boolean().default(true).meta({ description: "Whether or not to use prettier to format the files" }),
enableToc: zod.boolean().default(false).meta({
alias: "t",
description: "generate table of contents for readmes"
}),
enableUsage: zod.boolean().default(false).meta({ description: "Whether or not to enable usage plugin" }),
headings: tableHeadingsSchema.optional().default(defaultTableHeadings).describe("List of headings for different table outputs"),
onlyReadmes: zod.boolean().default(true).meta({
alias: "r",
description: "Whether or not to only traverse readmes"
}),
onlyShowPublicPackages: zod.boolean().default(false).meta({
alias: "p",
description: "Only show public packages in workspaces"
}),
removeScope: zod.string().default("").meta({ description: "Remove common workspace scope" }),
templates: templatesSchema.optional().default(defaultTemplates).describe("Handlebars templates used to fuel list and table generation"),
tocHeading: zod.string().default("Table of contents").meta({ description: "Markdown heading used to generate table of contents" }),
usageFile: zod.string().default("").meta({ description: "Workspace level usage file" }),
usageHeading: zod.string().default("Usage").meta({ description: "Markdown heading used to generate usage example" }),
verbose: zod.boolean().default(false).meta({
alias: "v",
description: "whether or not to display verbose logging"
})
});
const configSchema = _configSchema.optional();
//#endregion
exports.actionsSchema = actionsSchema;
exports.configSchema = configSchema;
exports.defaultTableHeadings = defaultTableHeadings;
exports.defaultTemplates = defaultTemplates;
exports.formatsSchema = formatsSchema;
exports.languageSchema = languageSchema;