@crustjs/man 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +9 -9
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
`))
|
|
4
|
-
`).map(
|
|
5
|
-
`))}
|
|
6
|
-
`).map(
|
|
7
|
-
`))}
|
|
8
|
-
`).map(
|
|
9
|
-
`))}
|
|
10
|
-
`)}import{mkdirSync as
|
|
2
|
+
var C=["January","February","March","April","May","June","July","August","September","October","November","December"];function $(R){if(R.startsWith("."))return`\\&${R}`;return R}function F(R){if(typeof R==="number"&&!Number.isFinite(R))return String(R);if(Array.isArray(R))return R.map(String).join(", ");return JSON.stringify(R)}function T(R){return`[default: ${F(R)}]`}function w(R,P){if(P===void 0)return R??"";let q=T(P);if(!R)return q;return`${R} ${q}`}function M(R){let P=R.variadic?`${R.name}...`:R.name;return R.required?`<${P}>`:`[${P}]`}function D(R,P,q){if(R.usage)return R.usage;let j=[q.join(" ")];if(Object.keys(P.subCommands).length>0&&!P.run)j.push("<command>");if(P.args)for(let G of P.args)j.push(M(G));if(Object.keys(P.effectiveFlags).length>0)j.push("[options]");return j.join(" ")}function W(R,P){let q=[R];if(P.aliases)for(let G of P.aliases)q.push(G);let j=[];if(P.short)j.push(`-${P.short}`);for(let G of q)j.push(`--${G}`);if(P.type==="boolean"&&!P.noNegate)for(let G of q)j.push(`--no-${G}`);return j.join(", ")}function E(R){if(!R||R.length===0)return"";return`[choices: ${R.join(", ")}]`}function B(R,P,q){let j=w(R,P),G=E(q);if(!G)return j;if(!j)return G;return`${j} ${G}`}function V(R){return R.toUpperCase().replace(/[^A-Z0-9]+/g,"_").replace(/^_|_$/g,"")||"COMMAND"}function y(R){return R.replace(/\s+/g," ").trim()}function N(R){let P=y(R);if(P.startsWith("."))return`\\&${P}`;return P}function L(R){let P=8;for(let[q,j]of Object.entries(R))P=Math.max(P,W(q,j).length);return`${P}n`}function A(R,P){if(!P||P.length===0)return R;return`${R} (${P.join(", ")})`}function S(R){let P=8;for(let[q,j]of Object.entries(R.subCommands)){if(j.meta.hidden===!0)continue;let G=A(q,j.meta.aliases);P=Math.max(P,G.length)}return`${P}n`}function x(R){if(R)return R;let P=process.env.SOURCE_DATE_EPOCH;if(P!==void 0){let j=Number.parseInt(P,10);if(!Number.isNaN(j)&&j>=0){let G=new Date(j*1000);return`${C[G.getUTCMonth()]} ${G.getUTCDate()}, ${G.getUTCFullYear()}`}}let q=new Date;return`${C[q.getMonth()]} ${q.getDate()}, ${q.getFullYear()}`}function _(R){let{root:P,name:q,section:j=1,date:G}=R,z=x(G),O=[P.meta.name],U=D(P.meta,P,O),X=P.meta.description?.trim()||"No description provided.",I=[`.Dd ${z}`,`.Dt ${V(q)} ${j}`,".Os",".Sh NAME",`.Nm ${q}`,`.Nd ${N(X)}`,".Sh SYNOPSIS",".Bd -literal",U,".Ed",".Sh DESCRIPTION"];for(let J of X.split(`
|
|
3
|
+
`))I.push($(J));let Y=Object.entries(P.subCommands).filter(([,J])=>J.meta.hidden!==!0);if(Y.length>0){I.push(".Sh SUBCOMMANDS"),I.push(`.Bl -tag -width ${S(P)}`);for(let[J,K]of Y.sort(([Q],[H])=>Q.localeCompare(H))){I.push(`.It Nm ${A(J,K.meta.aliases)}`);let Q=K.meta.description?.trim()||"";if(Q)I.push(Q.split(`
|
|
4
|
+
`).map($).join(`
|
|
5
|
+
`))}I.push(".El")}let Z=Object.entries(P.effectiveFlags).sort(([J],[K])=>J.localeCompare(K));if(Z.length>0){I.push(".Sh OPTIONS"),I.push(`.Bl -tag -width ${L(P.effectiveFlags)}`);for(let[J,K]of Z){let Q=W(J,K);I.push(`.It Sy ${Q}`);let H=K.type==="string"?K.choices:void 0,k=B(K.description,K.default,H).trim();if(k)I.push(k.split(`
|
|
6
|
+
`).map($).join(`
|
|
7
|
+
`))}I.push(".El")}if(P.args&&P.args.length>0){I.push(".Sh ARGUMENTS"),I.push(".Bl -tag -width 12n");for(let J of P.args){I.push(`.It Ql ${M(J)}`);let K=J.type==="string"?J.choices:void 0,Q=B(J.description,J.default,K).trim();if(Q)I.push(Q.split(`
|
|
8
|
+
`).map($).join(`
|
|
9
|
+
`))}I.push(".El")}return I.push(""),I.join(`
|
|
10
|
+
`)}import{mkdirSync as v,writeFileSync as h}from"fs";import{dirname as p}from"path";async function g(R){let{app:P,name:q,outfile:j,section:G=1,date:z,argv:O,logWarnings:U=!0}=R,{root:X,warnings:I}=await P.prepareCommandTree({argv:O});if(U)for(let Z of I)console.warn(`Warning: ${Z}`);let Y=_({root:X,name:q,section:G,date:z});v(p(j),{recursive:!0}),h(j,Y,"utf8")}export{g as writeManPage,_ as renderManPageMdoc};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crustjs/man",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Generate mdoc(7) manual pages from Crust CLI definitions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@crustjs/config": "0.0.0",
|
|
46
|
-
"@crustjs/core": "0.0.
|
|
47
|
-
"@crustjs/plugins": "0.0
|
|
46
|
+
"@crustjs/core": "0.0.17",
|
|
47
|
+
"@crustjs/plugins": "0.1.0",
|
|
48
48
|
"bunup": "^0.16.31"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"@crustjs/core": "0.0.
|
|
52
|
-
"typescript": "^6.0.
|
|
51
|
+
"@crustjs/core": "0.0.17",
|
|
52
|
+
"typescript": "^6.0.3"
|
|
53
53
|
}
|
|
54
54
|
}
|