@moneko/core 3.0.0-beta.51 → 3.0.0-beta.53
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/lib/cleanup.d.ts +2 -0
- package/lib/cleanup.js +1 -0
- package/lib/generate-api.js +5 -5
- package/lib/routes.js +1 -1
- package/package.json +1 -1
package/lib/cleanup.d.ts
ADDED
package/lib/cleanup.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{access as r,constants as t,rmdir as f,readdir as e,stat as i,unlink as n}from"fs";import{join as $}from"path";export default function o(u,c){r(u,t.F_OK,r=>{if(r){c(`文件夹 ${u} 无法删除`);return}function t(r,t){if(t){c(`删除文件夹错误 ${r}: ${t}`);return}c(`文件夹 ${r} 删除成功`)}e(u,(r,e)=>{if(r){c(`读取文件夹错误 ${u}: ${r}`);return}let l=e.length;0===l?f(u,r=>t(u,r)):e.forEach(r=>{let e=$(u,r);i(e,(r,i)=>{if(r){c(`读取文件错误 ${e}: ${r}`);return}i.isDirectory()?o(e,()=>{0==--l&&f(u,r=>t(u,r))}):n(e,r=>{if(r){c(`删除文件错误 ${e}: ${r}`);return}0==--l&&f(u,r=>t(u,r))})})})})})};
|
package/lib/generate-api.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{existsSync as e,mkdirSync as t,readFile as n,readFileSync as r,statSync as l,writeFile as i,unlink as s}from"fs";import{join as o}from"path";import{watch as u}from"chokidar";import p from"typescript";import a from"./cleanup.js";import{APPTYPE as c,PROGRAMPATH as f,frameworkCacheDir as g}from"./process-env.js";let{ScriptKind:m,ScriptTarget:d,createSourceFile:$,forEachChild:y,getLeadingCommentRanges:x,isInterfaceDeclaration:h,isQuestionToken:b,isPropertySignature:T}=p;function j(e){let t=x(e.getSourceFile().text,e.pos);if(t){let n=e.getSourceFile().text.substring(t[0].pos,t[0].end);return n.replace(/\/\*\*?\s*|\s*\*\//g,"").trim()}return null}function k(e){if(!e)return null;let t=e.match(/@since\s+([^\n]+)/);return t?t[1].trim():null}function C(e,t){if(!e)return t;if(!t)return null;let n=t;return e.replace(/@see\s+{@link\s+([^|}]+)(?:\|([^}]+))?}/g,(e,t,r)=>{let l=r||n;return n=n.replace(new RegExp(l),`[${l}](${t})`),""}),n}function F(e){return e?.replace(/\*/g,"\\*").replace(/\|/g,"\\|")||"-"}let S=["#9C27B0","#673AB7","#3F51B5","#2196F3","#00BCD4","#009688","#4CAF50","#CDDC39","#FF9800","#795548"];function B(e){return e?e.replace(/\* @default\s+([^(|\n)]+)/,"").replace(/\* @since\s+([^\n]+)/,"").replace(/\* @see\s+{@link\s+(.+?)(?:\|(.+?))?}/g,"").replace(/(\n\s+)+/g,"<br />").replace(/(<br \/>)$/g,""):null}function D(){}let E=o(g,"./apis"),I={};function q(l,u){e(g)||t(g),e(E)||t(E);let a=l.split("/").slice(-2),c=o(E,a[0]),f=a[1].replace(/\.tsx?/,".md");e(c)||t(c),I[a[0]]||(I[a[0]]=[]);let x=I[a[0]].indexOf(f),q=o(c,f);if("deleted"===u)s(q,D),-1!==x&&I[a[0]].splice(x,1);else{let e=function(e){let t=r(e,"utf-8"),n=$(e,t,d.Latest,!0,m.TS),l="";return y(n,e=>{h(e)?l+=function(e){let t=j(e),n=k(t),r=B(t),l=e.name.text,i=r?`<n-typography type="secondary">${l}</n-typography>`:l,s=(function(e){let t=[];if(e.heritageClauses){for(let n of e.heritageClauses)if(n.token===p.SyntaxKind.ExtendsKeyword)for(let e of n.types)t.push(e.getText())}return t})(e)?.map((e,n)=>`<n-tag color="${S[n]}" css=".tag{gap:0px;}">${C(t,e)}</n-tag>`),o=[r,i,n&&`<sup><n-typography type="success">${n}</n-typography></sup>`,s.length>0&&`<sub>\`extends\`</sub> ${s.join(" ")}`].filter(Boolean).join(" "),u=`## ${o}
|
|
2
2
|
| 属性 | 必要 | 说明 | 类型 | 默认值 | 版本 |
|
|
3
3
|
| :- | :-: | :- | :- | :- | :- |
|
|
4
|
-
`;for(let t of e.members)if(
|
|
5
|
-
`}return u+"\n"}(e):
|
|
4
|
+
`;for(let t of e.members)if(T(t)){let e=F(t.name.getText()),n=t.questionToken&&b(t.questionToken),r=j(t),l=F(function(e){if(!e)return null;let t=e.match(/@default\s+([^\n]+)/);return t?t[1].trim():null}(r)),i=F(k(r)),s=C(r,F(t.type?.getText())),o=F(B(r)),p=`<n-typography type="${n?"error":"success"}">${n?"✘":"✔"}</n-typography>`;u+=`| ${e} | ${p} | ${o} | ${s} | ${l} | ${i} |
|
|
5
|
+
`}return u+"\n"}(e):p.isEnumDeclaration(e)&&(l+=function(e){let t=e.name.text,n=`## ${t}
|
|
6
6
|
| 属性 | 说明 | 值 | 版本 |
|
|
7
7
|
| -- | -- | -- | -- |
|
|
8
|
-
`;for(let t of e.members){let e=
|
|
9
|
-
`}return n+"\n"}(e))}),
|
|
8
|
+
`;for(let t of e.members){let e=F(t.name.getText()),r=j(t),l=F(function(e){let t=e.initializer;return t&&p.isStringLiteral(t)?` '${t.text}'`:null}(t)),i=F(k(r)),s=F(r?.replace(/\* @since\s+([^\n]+)/,"").replace(/(\n\s+)+/g,"<br />").replace(/(<br \/>)$/g,""));n+=`| ${e} | ${s} | ${l} | ${i} |
|
|
9
|
+
`}return n+"\n"}(e))}),l}(l);e?(i(q,e,"utf-8",D),-1===x&&I[a[0]].push(f)):(s(q,D),-1!==x&&I[a[0]].splice(x,1))}n(o(E,"index.js"),{encoding:"utf-8"},(e,t)=>{let n=`export default ${JSON.stringify(I)};`;if(e){i(o(E,"index.js"),n,"utf-8",D);return}t!==n&&i(o(E,"index.js"),n,"utf-8",D)})}if("library"===c){let e=o(f,"./components");!function(e){let t=u(e,{ignored:/(^|[\\/\\])\../,persistent:!0,ignoreInitial:!1});t.on("all",(e,t)=>{t&&l(t).isDirectory()||("change"===e?q(t,e):"add"===e?q(t,"added"):"unlink"===e&&q(t,"deleted"))})}(e)}process.on("SIGINT",function(){a(E,D)});
|
package/lib/routes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e,t;import{readdirSync as r,statSync as
|
|
1
|
+
let e,t;import{readdirSync as r,statSync as n,writeFile as o,readFileSync as s,existsSync as i,mkdirSync as c,unlinkSync as l}from"fs";import{join as m,relative as p}from"path";import{watch as a}from"chokidar";import{load as u}from"js-yaml";import{PROGRAMPATH as f,APPTYPE as d,FRAMEWORK as h,DEV as g,frameworkCacheDir as j}from"./process-env.js";let $=/^---\n([\s\S]+?)\n---\n/;function x(e,t){let{regex:o,alia:i,base:c=e,outputSource:l}=t,a=r(e);return a.reduce((r,a)=>{let f=m(e,a),d=n(f);if(d.isDirectory()){let e=x(f,{...t,base:c});if(e.length>0){let t={},n={path:a,key:p(c,f)};if(l)Object.assign(t,{children:e});else{let r=e.splice(0,1)[0];e.length?Object.assign(t,{children:[{...r,path:"/",key:n.key},...e]}):Object.assign(t,r)}r.push(Object.assign(t,n))}}else if(o.test(f)){let e=s(f,{encoding:"utf-8"}),t=function(e){let t=e.match($);return t&&t[1]?t[1].trim():null}(e),n=t?u(t):{},o=p(c,f);r.push(Object.assign({path:a,key:o,meta:{...n}},i&&{component:`rr(() => import(/* webpackChunkName: '${o}' */'${m(i,o)}'))rr`},l&&{codes:function(e){let t;let r={},n=/```(.+?)\n([\s\S]*?)\n```/g;for(;null!==(t=n.exec(e));){let[,e="jsx",n]=t,o=e.split(" ").pop()||"jsx";r[o]=n.trim()}return Object.keys(r).length?r:{jsx:e}}(e.replace($,"").replace(/^\n+|\n+$/g,""))}))}return r},[])}let y=m(f,"./components");function k(e){if(e)throw e}function b(){e&&clearTimeout(e),e=setTimeout(()=>{let e={react:"createElement","solid-js":"createComponent"}[h],t=`() => ${e}(SuspenseComp, { comp: $1 })`,r=`import { ${e} } from "${h}";import { SuspenseComp } from "@moneko/${h}";`;["react","solid-js"].includes(h)||(t="$1",r="");let n=JSON.stringify(x(y,{regex:/README\.mdx?$/,alia:"@pkg"})).replace(/"rr\((.+?)\)rr"/g,t);i(j)||c(j),o(m(j,"route.js"),`${r}export default ${n}`,"utf-8",k)},100)}function O(){t&&clearTimeout(t),i(j)||c(j),t=setTimeout(()=>{let e=Object.fromEntries(x(y,{regex:/\/examples\/(.+)\.md$/,outputSource:!0}).map(e=>[e.key,e.children?.[0].children?.filter(e=>e.codes)?.map(e=>({title:e.path.replace(/.md$/,""),order:0,...e.meta,codes:e.codes})).sort((e,t)=>e.order-t.order)]));o(m(j,"example.js"),`export default ${JSON.stringify(e)}`,"utf-8",k)},100)}function S(e,t,r){let n=a(e,{ignored:(e,r)=>{if(r)return!r?.isDirectory()&&t.test(e)},persistent:!0});n.on("add",()=>{r()}).on("change",()=>{r()}).on("unlink",()=>{r()})}"library"===d&&(g?(S(y,/(?<!README\.mdx?)$/,b),S(y,/(?<!\/examples\/(.+)\.md)$/,O)):(b(),O())),process.on("SIGINT",function(){!function(){try{l(m(j,"example.js"))}catch(e){}try{l(m(j,"route.js"))}catch(e){}}()});
|