@moneko/core 3.55.2 → 3.55.3-beta.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/lib/bin/build.mjs +1 -1
- package/lib/bin/lessc.mjs +1 -1
- package/lib/bin/pin.mjs +1 -1
- package/lib/bin/pure-lint.mjs +1 -1
- package/lib/bin/utils/setup-swcrc.mjs +1 -1
- package/lib/commom/ca.mjs +1 -1
- package/lib/commom/transfer-import-on-demand.mjs +1 -0
- package/lib/loader/react-compiler.cjs +1 -1
- package/lib/options/reslove.mjs +1 -1
- package/lib/options/swcrc.mjs +1 -1
- package/lib/plugin/compression.mjs +1 -1
- package/lib/plugin/copy.mjs +1 -1
- package/lib/plugin/exposes-declararion.mjs +1 -1
- package/lib/plugin/lightningcss-plugin.mjs +1 -1
- package/lib/plugin/swc-minify-plugin.mjs +1 -1
- package/lib/vm/locales.mjs +1 -1
- package/package.json +5 -5
- package/typings/global.d.ts +4 -74
package/lib/bin/build.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{join as o}from"node:path";import{argv as t,exit as e}from"node:process";import{ink as s,println as i,removeDir as r}from"@moneko/utils";import m from"../commom/setup-env.mjs";import{cwd as n,swcCachePath as l}from"./utils/config.mjs";import{getSwcOption as p}from"./utils/setup-swcrc.mjs";import{lesscCommonjs as c}from"./lessc.mjs";import d from"./tsc.mjs";async function a(){let a=t[3],j=t[4],u=t.slice(5);a||(i(s(`type: 无效值 ${s(a,"245")}`,"red")),e(1));let f=!u.includes("no-docs"),x=!u.includes("no-lib"),y=!u.includes("no-es"),_=!u.includes("no-dts"),g=u.filter(o=>!["no-docs","no-es","no-lib"].includes(o));if(await m("production",a,j,g),"library"===a){let t="solid"===j?await import("@moneko/convert/solid"):await import("@moneko/convert"),{CONFIG:e}=await import("../config.mjs"),s="swc"===e.dts,i=[x&&{type:"commonjs",dir:"lib",msg:"Convert to CommonJS"},y&&{type:"es6",dir:"es",msg:"Convert to ES Module"}].filter(Boolean);for(let m=0,a=i.length;m<a;m++){if(r(o(n,`./${i[m].dir}`)),"react"===j){let o=p();"es6"===i[m].type&&(o.jsc.target="es2015"),o.jsc.experimental.emitIsolatedDts=_&&s,o.jsc.experimental.cacheRoot=l,o.module.type=i[m].type,t.convert({outDir:i[m].dir,inputDir:"components",ignore:[/^.*\/__*__\//,/\.test\.(js|ts)x?$/,/\.DS_Store/,/\.mdx?$/,/^.*\/examples\//,/\.d\.(cj|mj|j|t|ct|mt)sx?$/],options:o})}else if("solid"===j){let o={jsxOptions:e.jsxDomExpressions,presetEnvOption:{modules:"commonjs"}};"es6"===i[m].type&&(o.presetEnvOption.modules=!1),t.convertSolid({outDir:i[m].dir,inputDir:"components",ignore:[/^.*\/__*__\//,/\.test\.(js|ts)x?$/,/\.DS_Store/,/\.mdx?$/,/^.*\/examples\//,/\.d\.(cj|mj|j|t|ct|mt)sx?$/],options:o})}"commonjs"===i[m].type&&c(),_&&!s&&d(i[m].dir)}}if("library"!==a||f&&"library"===a)try{await import("../build.mjs")}catch(o){i(s(Error(o).message,"red")),e(1)}}export default a;
|
|
1
|
+
import{join as o}from"node:path";import{argv as t,exit as e}from"node:process";import{ink as s,println as i,removeDir as r}from"@moneko/utils";import m from"../commom/setup-env.mjs";import{cwd as n,swcCachePath as l}from"./utils/config.mjs";import{getSwcOption as p}from"./utils/setup-swcrc.mjs";import{lesscCommonjs as c}from"./lessc.mjs";import d from"./tsc.mjs";async function a(){let a=t[3],j=t[4],u=t.slice(5);a||(i(s(`type: 无效值 ${s(a,"245")}`,"red")),e(1));let f=!u.includes("no-docs"),x=!u.includes("no-lib"),y=!u.includes("no-es"),_=!u.includes("no-dts"),g=u.filter(o=>!["no-docs","no-es","no-lib"].includes(o));if(await m("production",a,j,g),"library"===a){let t="solid"===j?await import("@moneko/convert/solid"):await import("@moneko/convert"),{CONFIG:e}=await import("../config.mjs"),s="swc"===e.dts,i=[x&&{type:"commonjs",dir:"lib",msg:"Convert to CommonJS"},y&&{type:"es6",dir:"es",msg:"Convert to ES Module"}].filter(Boolean);for(let m=0,a=i.length;m<a;m++){if(r(o(n,`./${i[m].dir}`)),"react"===j){let o=await p();"es6"===i[m].type&&(o.jsc.target="es2015"),o.jsc.experimental.emitIsolatedDts=_&&s,o.jsc.experimental.cacheRoot=l,o.module.type=i[m].type,t.convert({outDir:i[m].dir,inputDir:"components",ignore:[/^.*\/__*__\//,/\.test\.(js|ts)x?$/,/\.DS_Store/,/\.mdx?$/,/^.*\/examples\//,/\.d\.(cj|mj|j|t|ct|mt)sx?$/],options:o})}else if("solid"===j){let o={jsxOptions:e.jsxDomExpressions,presetEnvOption:{modules:"commonjs"}};"es6"===i[m].type&&(o.presetEnvOption.modules=!1),t.convertSolid({outDir:i[m].dir,inputDir:"components",ignore:[/^.*\/__*__\//,/\.test\.(js|ts)x?$/,/\.DS_Store/,/\.mdx?$/,/^.*\/examples\//,/\.d\.(cj|mj|j|t|ct|mt)sx?$/],options:o})}"commonjs"===i[m].type&&c(),_&&!s&&d(i[m].dir)}}if("library"!==a||f&&"library"===a)try{await import("../build.mjs")}catch(o){i(s(Error(o).message,"red")),e(1)}}export default a;
|
package/lib/bin/lessc.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{exec as e}from"node:child_process";import{join as o}from"node:path";import{loadFile as s,saveFile as t,scanFolderSync as
|
|
1
|
+
import{exec as e}from"node:child_process";import{join as o}from"node:path";import{loadFile as s,saveFile as t,scanFolderSync as l}from"@moneko/utils";import r from"../commom/require.mjs";import{runtimePath as i}from"./utils/config.mjs";let m="";function n(s){let t=o(r.resolve("less"),"../bin/lessc");return new Promise((o,l)=>{e(`${i} ${t} --js ${m} ${s} > ${s.replace(/\.less$/g,".css")}`,function(e){if(e)return l(e);o(!0)})})}let a=/\*?\.less/g;async function c(e){let o=await s(e);o&&a.test(o)&&await t(e,o.replace(a,".css"))}export async function lesscCommonjs(){let e=l("lib",["\\.less$"]),o=(await import("../options/modify-vars.mjs")).default;for(let e in o)Object.hasOwnProperty.call(o,e)&&(m+=`--modify-var="${e}=${o[e]}" `);Promise.allSettled(e.map(n)),e.length&&Promise.allSettled(l("lib",["\\.js$"]).map(c))}
|
package/lib/bin/pin.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{spawn as e}from"node:child_process";import{relative as t}from"node:path";import{fileExists as n,ink as a,println as r,progressBar as o,updateFile as l}from"@moneko/utils";import s from"../commom/parse-args.mjs";import c from"../commom/paths.mjs";import i from"../commom/require.mjs";let p=i.resolve(`${process.cwd()}/package.json`);async function m(t){return new Promise(n=>{let a=e("npm",["view",t,"version"],{shell:!0}),r="";a.stdout.on("data",e=>{r+=e}),a.stderr.on("data",e=>{let t=e.toString().split("\n").filter(e=>e.includes("GET http")).map(e=>e.split(" - ")[0].trim());t.length&&(r+=`Err: ${t[0]}`.trim())}),a.on("close",async()=>{n(r.trim())})})}async function d(e,t){let n={...e};return o(t.done.length,t.total,{name:"Checking"}),await Promise.
|
|
1
|
+
import{spawn as e}from"node:child_process";import{relative as t}from"node:path";import{fileExists as n,ink as a,println as r,progressBar as o,updateFile as l}from"@moneko/utils";import s from"../commom/parse-args.mjs";import c from"../commom/paths.mjs";import i from"../commom/require.mjs";let p=i.resolve(`${process.cwd()}/package.json`);async function m(t){return new Promise(n=>{let a=e("npm",["view",t,"version"],{shell:!0}),r="";a.stdout.on("data",e=>{r+=e}),a.stderr.on("data",e=>{let t=e.toString().split("\n").filter(e=>e.includes("GET http")).map(e=>e.split(" - ")[0].trim());t.length&&(r+=`Err: ${t[0]}`.trim())}),a.on("close",async()=>{n(r.trim())})})}async function d(e,t){let n={...e};return o(t.done.length,t.total,{name:"Checking"}),await Promise.allSettled(Object.keys(n).map(async e=>{let a=await m(e);t.done.includes(e)||t.done.push(e),o(t.done.length,t.total,{name:"Checking",msg:`${t.done.length} / ${t.total}`}),n[e]=a})),n}let u={major:"red",minor:"yellow",patch:"cyan",equal:"white"};async function h(e,t,n,a){if(e[t]){var r;let o=await d(e[t],a),l=(r=e[t],Object.keys(o).filter(e=>{let t=$(r[e]);return r[e]!==`${t[0]}${o[e]}`}).map(e=>{let t=$(r[e]),n=o[e].includes("Err:"),a=n?"red":u[function(e,t){let n=e.split("."),a=t.split(".");return n[0]!==a[0]?"major":n[1]!==a[1]?"minor":n[2]!==a[2]?"patch":"equal"}(t[1],o[e])];return{name:e,wanted:r[e],latest:`${t[0]}${o[e].replace("Err:","")}`,color:a,err:n?o[e]:void 0}}));l.length&&(n[t]=l)}}function g(e,t,n){return e.reduce((e,a)=>Math.max(e,t[a].reduce((e,t)=>Math.max(e,t[n]?.length??0),0)),0)}function $(e){let t=e.match(/^([^\d]*)(.*)$/);return t?[t[1],t[2]]:["",e]}async function f(){let e=s(process.argv),o=(delete i.cache[p],i(p)),m={done:[],total:Object.keys({...o.peerDependencies||{},...o.optionalDependencies||{},...o.devDependencies||{},...o.dependencies||{}}).length},d={};if(r(""),await Promise.allSettled([h(o,"peerDependencies",d,m),h(o,"optionalDependencies",d,m),h(o,"devDependencies",d,m),h(o,"dependencies",d,m)]),r(""),Object.keys(d)?.length>0){var u;let s=(u=o.packageManager)?u.split("@")[0]:n(`${c.programPath}/pnpm-lock.yaml`)?"pnpm":n(`${c.programPath}/yarn.lock`)?"yarn":n(`${c.programPath}/bun.lockb`)?"bun":n(`${c.programPath}/deno.lock`)?"deno":"npm",i=Object.keys(d),m="".padEnd(3," ");r(""),r(a("⚡ Updates available for:","magenta",{bold:!0})),r("");let h=g(i,d,"name"),$=g(i,d,"latest"),f=g(i,d,"wanted");i.forEach(e=>{r(a(`${e}:`,"145")),d[e].forEach(t=>{r(`${a(t.name.padEnd(h," "),t.color,{bold:!0})}${m}${t.wanted.padStart(f," ")}${m}${a("→",t.color)}${m}${a(t.latest.padStart($," "),t.color)}`),t.err||(o[e][t.name]=t.latest)}),r("")}),e["-u"]?(await l(p,JSON.stringify(o,null,2)),r(`✅ ${a(t(c.programPath,p),"yellow")} upgrade completed successfully.`),r(`⏳ Run ${a(`${s} install`,"blue")} to install new versions.`)):r(`⏳ Run ${a("mo pin -u","blue")} to upgrade package.json`)}else r(""),r("🎉 All dependencies match the latest package versions");r("")}export default f;
|
package/lib/bin/pure-lint.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{spawnSync as t}from"node:child_process";import{join as e}from"node:path";import{argv as o,cwd as i,exit as r,stdout as
|
|
2
|
+
import{spawnSync as t}from"node:child_process";import{join as e}from"node:path";import{argv as o,cwd as i,exit as r,stdout as l}from"node:process";import{ESLint as n}from"@moneko/eslint";import{stylelint as a}from"@moneko/stylelint";import{ink as m,loadFile as s,println as c}from"@moneko/utils";import d from"../commom/log.mjs";import f from"../commom/parse-args.mjs";import u from"../commom/timer.mjs";let p=f(o.slice(2)),y=p.fix,h=p.cache||!0,w=e(i(),"node_modules/.cache"),S={ci:["diff","--name-only","HEAD^","HEAD"],commit:["diff","--cached","--name-only","--diff-filter=ACM"]},g=/.*(?<!\.d)\.(j|t|mj|mt|cj|ct)sx?$/,v=/.*(?<!\.d)\.vue$/,$=/.*(?<!\.d)\.(c|sc|sa|le)ss$/,E=t("git",S[p.mode||"ci"]||S.ci).stdout.toString().trim().split("\n");async function j(){let t=m("ESLint","cyan");c(`${t}: ${m("runing...","yellow")}`,!0);try{u.start("ESLint");let t=E.filter(t=>g.test(t)||v.test(t));if(0===t.length)return void u.end("ESLint");let e=new n({cache:h,cacheLocation:`${w}/.eslintcache`,fix:y}),o=await e.lintFiles(t),i=await e.loadFormatter("stylish"),a=await i.format(o);y&&await n.outputFixes(o),a&&l.write(a);let m=o.some(t=>t.errorCount>0);u.end("ESLint"),m&&r(1)}catch(t){d(t)}}let L=E.filter(t=>$.test(t)||v.test(t));async function k(){let t=m("Stylelint","cyan");if(c(`${t}: ${m("runing...","yellow")}`,!0),u.start("Stylelint"),0===L.length)return void u.end("Stylelint");let e=await Promise.allSettled(L.map(async t=>{let e=await s(t);return await a.lint({codeFilename:t,code:e,cache:h,cacheLocation:`${w}/.stylelintcache`,fix:y,formatter:"string"}).catch(d)})),o=!1;e.forEach(t=>{"fulfilled"===t.status?t.value&&(t.value.report&&l.write(t.value.report),t.value.errored&&(o=!!t.value.errored)):t.reason&&(l.write(t.reason),o=!1)}),u.end("Stylelint"),o&&r(1)}await Promise.allSettled([j(),k()]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e
|
|
1
|
+
import{swcImportOnDemandConfig as e}from"../../commom/transfer-import-on-demand.mjs";import o from"../../options/reslove.mjs";import{cwd as r}from"./config.mjs";export async function getSwcOption(){let{CONFIG:t}=await import("../../config.mjs");return{module:{type:"es6"},minify:!0,jsc:{minify:{format:{comments:!1},ecma:2015,compress:{drop_console:!0,drop_debugger:!0,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],ecma:2015,toplevel:!1,module:!1,ie8:!1,keep_classnames:void 0,keep_fnames:!1,top_retain:[],keep_infinity:!0},mangle:!0},parser:{syntax:"typescript",decorators:!0,dynamicImport:!0,tsx:!0},loose:!0,target:"es2022",transform:{legacyDecorator:!0,decoratorMetadata:!0,react:{runtime:"automatic",throwIfNamespace:!0,useBuiltins:!0,refresh:!1,development:!1}},experimental:{plugins:[[o.rawImport,{rootDir:r}],[o.transformImports,e(t.importOnDemand||{})]].filter(Boolean)}},sourceMaps:!0,exclude:["__tests__/","examples/","\\.d\\.ts$"]}}
|
package/lib/commom/ca.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{exec as t}from"node:child_process";import{join as e,relative as r}from"node:path";import{platform as o}from"node:process";import{promisify as i}from"node:util";import{fileExists as a,generateCert as
|
|
1
|
+
import{exec as t}from"node:child_process";import{join as e,relative as r}from"node:path";import{platform as o}from"node:process";import{promisify as i}from"node:util";import{fileExists as a,generateCert as l,loadFile as n,normalCertificateAuthority as c,println as s,saveFile as m}from"@moneko/utils";import u from"./log.mjs";import{getIPv4 as d}from"./net.mjs";import f from"./paths.mjs";let p=i(t);async function y(t){try{if("darwin"===o){let{stdout:e}=await p(`security find-certificate -c "${t}" -a`);return e.length>0}if("win32"===o){let{stdout:e}=await p(`certutil -store -user Root | findstr /C:"${t}"`);return e.length>0}}catch(t){u(t)}return!1}function h(t,e,r){if(t&&!r.includes("already exists"))return void u(t)}export function installCA(e){return"darwin"===o?t(`sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "${e}"`,h):"win32"===o?t(`certutil -addstore -user "Root" "${e}"`,h):void s(`⚠️ 暂不支持自动安装 CA 的平台: ${o}`)}export async function setupCert(t="localhost",o=!0){let i=r(f.programPath,`${f.corePath}/cert/cert.pem`),s=r(f.programPath,`${f.corePath}/cert/key.pem`),u=!a(i)||!a(s);if(u){let t=c();await Promise.allSettled([m(i,t.cert),m(s,t.key)])}o&&(!await y("Local Root Certificate Authority - Moneko")||u)&&installCA(i);let p=e(f.CA_DIR,`${t}_cert.pem`),h=e(f.CA_DIR,`${t}_key.pem`);if(u||!a(p)||!a(h)){let e=await Promise.all([n(i),n(s)]),r=l(e[0],e[1],[...new Set([t,"localhost","127.0.0.1",d()].filter(Boolean))]);await Promise.allSettled([m(p,r.cert),m(h,r.key)])}let w=await Promise.all([n(p),n(h)]);return{cert:w[0],key:w[1]}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function swcImportOnDemandConfig(e){for(let t=0,n=Object.keys(e),r=n.length;t<r;t++)e[n[t]]?(e[n[t]].transform=`${n[t]}/${e[n[t]].transform}`,e[n[t]].style&&(e[n[t]].style=`${n[t]}/${e[n[t]].style}`)):delete e[n[t]];return e}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=exports,t={get custom(){return i},get default(){return c}};for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:Object.getOwnPropertyDescriptor(t,r).get});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=exports,t={get custom(){return i},get default(){return c}};for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:Object.getOwnPropertyDescriptor(t,r).get});const s=require("node:path"),o=new(require("node:worker_threads")).Worker((0,s.join)(__dirname,"../worker/react-compiler.mjs"));function n(e,t){let r=this.resourcePath,s=this.getOptions();if(r.endsWith(".d.ts")||r.endsWith(".json")||!("annotation"===s.compilationMode?e.includes("use memo")||e.includes("use forget"):e.includes("react")||r.endsWith(".tsx")||r.endsWith(".jsx")))return e;let n=this.async();this._compiler?.options.mode!=="development"&&this._compiler?.hooks.done.tap("react-compiler-loader",()=>{o.terminate()}),this.cacheable&&this.cacheable(),o.postMessage({sourceCode:e,filename:r,inputSourceMap:t,options:s}),o.on("message",e=>{r===e[0]&&n(e[1],e[2],e[3])})}function i(e,t){return n.bind(this,e,t)}o.setMaxListeners(0);const c=n;
|
package/lib/options/reslove.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"../commom/has-pkg.mjs";import o from"../commom/require.mjs";let r={styleLoader:o.resolve("style-loader"),sassLoader:e("sass-loader"),lessLoader:o.resolve("less-loader"),swcLoader:o.resolve("swc-loader"),transformImports:e("@moneko/transform-imports"),hotMiddlewareClient:o.resolve("webpack-hot-middleware/client.js")};export default r;
|
|
1
|
+
import e from"../commom/has-pkg.mjs";import o from"../commom/require.mjs";let r={styleLoader:o.resolve("style-loader"),sassLoader:e("sass-loader"),lessLoader:o.resolve("less-loader"),swcLoader:o.resolve("swc-loader"),transformImports:e("@moneko/transform-imports"),rawImport:e("@moneko/raw-import"),hotMiddlewareClient:o.resolve("webpack-hot-middleware/client.js")};export default r;
|
package/lib/options/swcrc.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{merge as e}from"webpack-merge";import r from"../commom/paths.mjs";import{
|
|
1
|
+
import{merge as e}from"webpack-merge";import r from"../commom/paths.mjs";import{swcImportOnDemandConfig as o}from"../commom/transfer-import-on-demand.mjs";import{CONFIG as t}from"../config.mjs";import m,{coreJsVersion as s}from"../polyfills/polyfills.mjs";import{isDev as p,isReact as a,jsxImportSource as i}from"../process-env.mjs";import c from"./reslove.mjs";let l={include:m(),mode:"entry",coreJs:s};export default((m,s={})=>e({module:{type:"es6",resolveFully:!0},sync:!0,jsc:{parser:{syntax:"typescript",tsx:a,decorators:!0,dynamicImport:!0},loose:!0,target:t.polyfill?void 0:"es2017",externalHelpers:!1,transform:{legacyDecorator:!0,decoratorMetadata:!0,react:{runtime:t.reactJsxRuntime||"automatic",throwIfNamespace:!0,refresh:a&&p,development:p,importSource:i},optimizer:{simplify:!1}},experimental:{emitAssertForImportAttributes:!0,cacheRoot:r.swcCachePath,plugins:[[c.transformImports,o(t.importOnDemand||{})]].filter(Boolean)}},env:t.polyfill?l:void 0,sourceMaps:!0,parseMap:!0},"function"==typeof t.swcrc?t.swcrc(p):t.swcrc||{},s));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{compression as e}from"@moneko/utils";export class CompressionPlugin{constructor(e){this.name="
|
|
1
|
+
import{compression as e}from"@moneko/utils";export class CompressionPlugin{constructor(e){this.name="CompressionPlugin";let{test:s,algorithm:t="brotli"}=e||{};this.options={test:s,algorithm:t,filename:`[path][base].${"brotli"===t?"br":"gz"}`}}runCompressionAlgorithm(s){return Buffer.from(e(Buffer.isBuffer(s)?Array.from(s):s,this.options.algorithm))}async compress(e,s,t){let o=s.getCache(this.name),{RawSource:i}=e.webpack.sources;await Promise.allSettled(Object.keys(t).map(async t=>{let r,a="gzip"===this.options.algorithm?"gzipped":`${this.options.algorithm}ed`,{info:m,source:n}=s.getAsset(t);if(m.compressed||!e.webpack.ModuleFilenameHelpers.matchObject.bind(void 0,this.options)(t)||m.related&&m.related[a])return!1;let p=o.getItemCache(JSON.stringify(`${t}${this.options.algorithm}`),o.getLazyHashedEtag(n)),l=await p.getPromise()||{};if(!l.source){if("function"==typeof n.buffer)r=n.buffer();else{let e=n.source();r=Buffer.isBuffer(e)?e:Buffer.from(e)}if(!l.compressed&&r)try{l.compressed=this.runCompressionAlgorithm(r)}catch(e){s.errors.push(e);return}l.compressed&&(l.source=new i(l.compressed)),await p.storePromise(l)}let f=s.getPath(this.options.filename,{filename:t}),c={compressed:!0};m.immutable&&/(\[name]|\[base]|\[file])/.test(this.options.filename)&&(c.immutable=!0),s.updateAsset(t,n,{related:{[a]:f}}),s.emitAsset(f,l.source,c)}))}apply(e){let s=this.name;e.hooks.thisCompilation.tap(s,t=>{t.hooks.processAssets.tapPromise({name:s,stage:e.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER,additionalAssets:!0},s=>this.compress(e,t,s))})}}
|
package/lib/plugin/copy.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{statSync as e}from"node:fs";import{resolve as t}from"node:path";import{loadFileRaw as s,scanFolderSync as i}from"@moneko/utils";import
|
|
1
|
+
import{statSync as e}from"node:fs";import{resolve as t}from"node:path";import{loadFileRaw as s,scanFolderSync as i}from"@moneko/utils";import l from"webpack";import o from"../commom/log.mjs";let a="CopyPlugin",r=l.sources.RawSource;export class CopyPlugin{constructor(e){this.cacheFiles=[],this.fileTimestamps=new Map,this.baseFiles=new Set(e.files?.map(e=>t(e))||[]),this.dirs=new Set(e.dirs||[])}getFiles(){let e=new Set(this.baseFiles);for(let t of this.dirs)i(t,["\\.*"]).forEach(t=>e.add(t));let t={deleted:[],files:[...e]};for(let s of new Set(this.cacheFiles))e.has(s)||t.deleted.push(s);return this.cacheFiles=t.files,t}hasFileChanged(t){try{let s=e(t).mtimeMs,i=this.fileTimestamps.get(t)||0;return this.fileTimestamps.set(t,s),s>i}catch(e){return o(e),!0}}apply(e){e.hooks.thisCompilation.tap({name:a,stage:e.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},e=>{let t=e.getCache(a);e.hooks.processAssets.tapPromise(a,async()=>{let i=this.getFiles();await Promise.allSettled(i.files.map(async i=>{let l=this.hasFileChanged(i),o=t.getItemCache(i,null),a=await o.getPromise();if(a&&!l)return void e.emitAsset(i,a.source);let m=await s(i);if(null!==m){let t=new r(Buffer.from(m));await o.storePromise({source:t,timestamp:this.fileTimestamps.get(i)}),e.emitAsset(i,t)}})),i.deleted.forEach(t=>{e.deleteAsset(t),this.fileTimestamps.delete(t)})})})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{join as e,parse as t,resolve as o}from"node:path";import{fileURLToPath as s}from"node:url";import{Worker as i}from"node:worker_threads";import{loadFile as r}from"@moneko/utils";import a from"webpack";import n from"../utils/create-types.mjs";
|
|
1
|
+
import{join as e,parse as t,resolve as o}from"node:path";import{fileURLToPath as s}from"node:url";import{Worker as i}from"node:worker_threads";import{loadFile as r}from"@moneko/utils";import a from"webpack";import n from"../utils/create-types.mjs";export class ModuleFederationExposesDeclarationPlugin{constructor(e){this.name="ModuleFederationExposesDeclarationPlugin",this.assetName="module-federation.d.ts",this.dts="",this.option=e,this.worker=new i(s(new URL("../worker/dts.mjs",import.meta.url))),this.worker.setMaxListeners(0),this.worker.postMessage({options:{compilerOptions:{outFile:this.assetName},include:Object.values(e.exposes)}}),this.worker.once("message",e=>{this.dts=e,this.worker.terminate()})}apply(s){let{exposes:i}=this.option,m=Object.keys(i).map(e=>{let t=e.replace(/\.tsx?$/i,"");return{key:e,name:t,path:o(`types/${this.option.name}/${t}.d.ts`),originPath:i[e]}});s.hooks.thisCompilation.tap({name:this.name,stage:s.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},o=>{o.hooks.processAssets.tapPromise(this.name,async()=>{let s=m.map(async o=>{if(null!==await r(o.originPath)){let s=t(o.originPath);return`${n(e(this.option.name,o.name),`export * from '${t(s.dir).name}/${s.name}'`)}`}return""}),i=await Promise.all(s);i.unshift(this.dts),o.emitAsset("module-federation.d.ts",new a.sources.RawSource(i.join("\n")),{javascriptModule:!1})})})}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Buffer as s}from"node:buffer";import{transform as e}from"lightningcss";import i from"webpack";let t=new TextEncoder,o=i.sources.RawSource,n=i.sources.SourceMapSource,a=i.ModuleFilenameHelpers.matchObject,r="lightning-css-minify",m=/\.(c|le|sc|sa)ss(?:\?.*)?$/i;export class LightningCssMinifyPlugin{constructor(s={}){let{implementation:i,...t}=s;if(i&&"function"!=typeof i.transform)throw TypeError(`[LightningCssMinifyPlugin]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof i.transform}`);this.transform=i?.transform??e,this.options=t}apply(s){let e=JSON.stringify({name:r,version:"0.0.1",options:this.options});s.hooks.compilation.tap(r,s=>{s.hooks.chunkHash.tap(r,(s,i)=>i.update(e)),s.hooks.processAssets.tapPromise({name:r,stage:i.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async()=>await this.transformAssets(s)),s.hooks.statsPrinter.tap(r,s=>{s.hooks.print.for("asset.info.minimized").tap(r,(s,{green:e,formatFlag:i})=>s?e(i("minimized")):void 0)})})}async transformAssets(e){let{options:{devtool:i}}=e.compiler,{include:c,exclude:p,test:f,sourceMap:l=void 0===this.options.sourceMap?!!(i&&i.includes("source-map")):this.options.sourceMap,...u}=this.options,h=e.getCache(r),d=e.getAssets().filter(s=>!s.info.minimized&&(f||m).test(s.name)&&a({include:c,exclude:p},s.name));await Promise.
|
|
1
|
+
import{Buffer as s}from"node:buffer";import{transform as e}from"lightningcss";import i from"webpack";let t=new TextEncoder,o=i.sources.RawSource,n=i.sources.SourceMapSource,a=i.ModuleFilenameHelpers.matchObject,r="lightning-css-minify",m=/\.(c|le|sc|sa)ss(?:\?.*)?$/i;export class LightningCssMinifyPlugin{constructor(s={}){let{implementation:i,...t}=s;if(i&&"function"!=typeof i.transform)throw TypeError(`[LightningCssMinifyPlugin]: implementation.transform must be an 'lightningcss' transform function. Received ${typeof i.transform}`);this.transform=i?.transform??e,this.options=t}apply(s){let e=JSON.stringify({name:r,version:"0.0.1",options:this.options});s.hooks.compilation.tap(r,s=>{s.hooks.chunkHash.tap(r,(s,i)=>i.update(e)),s.hooks.processAssets.tapPromise({name:r,stage:i.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async()=>await this.transformAssets(s)),s.hooks.statsPrinter.tap(r,s=>{s.hooks.print.for("asset.info.minimized").tap(r,(s,{green:e,formatFlag:i})=>s?e(i("minimized")):void 0)})})}async transformAssets(e){let{options:{devtool:i}}=e.compiler,{include:c,exclude:p,test:f,sourceMap:l=void 0===this.options.sourceMap?!!(i&&i.includes("source-map")):this.options.sourceMap,...u}=this.options,h=e.getCache(r),d=e.getAssets().filter(s=>!s.info.minimized&&(f||m).test(s.name)&&a({include:c,exclude:p},s.name));await Promise.allSettled(d.map(async i=>{let a,r=h.getItemCache(JSON.stringify(i.name),h.getLazyHashedEtag(i.source)),m=await r.getPromise();if(m&&m.minimized)return void e.updateAsset(i.name,m.source,{...i.info,minimized:!0});let c=i.source.source(),p="string"==typeof c?t.encode(c):c,f=this.transform({filename:i.name,code:p,minify:!0,sourceMap:l,...u}),d=s.from(f.code),g={source:a=l?new n(d,i.name,f.map||"",c,f.map||"",!0):new o(d),minimized:!0};await r.storePromise(g),e.updateAsset(i.name,a,{...i.info,minimized:!0})}))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{minify as e}from"@swc/core";import s from"webpack";let o=s.sources.SourceMapSource;export class SwcMinifyPlugin{constructor(e){this.name="SwcMinifyPlugin",this.options={format:{comments:!1},ecma:2015,compress:{drop_console:!0,drop_debugger:!0,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],ecma:2015,toplevel:!1,module:!1,ie8:!1,keep_classnames:void 0,keep_fnames:!1,top_retain:[],keep_infinity:!0},mangle:!0,sourceMap:!0,...e}}apply(t){t.hooks.compilation.tap(this.name,t=>{t.hooks.processAssets.tapAsync({name:this.name,stage:s.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async(s,i)=>{let a=t.getCache(this.name),n=Object.keys(s).filter(e=>e.endsWith(".js")&&!e.endsWith(".min.js"));try{await Promise.
|
|
1
|
+
import{minify as e}from"@swc/core";import s from"webpack";let o=s.sources.SourceMapSource;export class SwcMinifyPlugin{constructor(e){this.name="SwcMinifyPlugin",this.options={format:{comments:!1},ecma:2015,compress:{drop_console:!0,drop_debugger:!0,global_defs:{"@alert":"console.log"},pure_funcs:["console.log","console.warn","console.error","console.info"],ecma:2015,toplevel:!1,module:!1,ie8:!1,keep_classnames:void 0,keep_fnames:!1,top_retain:[],keep_infinity:!0},mangle:!0,sourceMap:!0,...e}}apply(t){t.hooks.compilation.tap(this.name,t=>{t.hooks.processAssets.tapAsync({name:this.name,stage:s.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE,additionalAssets:!0},async(s,i)=>{let a=t.getCache(this.name),n=Object.keys(s).filter(e=>e.endsWith(".js")&&!e.endsWith(".min.js"));try{await Promise.allSettled(n.map(async s=>{let i=t.getAsset(s);if(!i||i.info.minimized)return;let n=a.getItemCache(JSON.stringify(i.name),a.getLazyHashedEtag(i.source)),r=await n.getPromise();if(r&&r.minimized)return void t.updateAsset(i.name,r.source,{...i.info,minimized:!0});let c=i.source.sourceAndMap();try{let s=await e(c.source.toString().replace(/\r\n/g,"\n"),this.options),a={sources:[i.name]};s.map&&((a=JSON.parse(s.map)).sources=[i.name],delete a.sourcesContent);let r={source:new o(s.code,i.name,a||"",c.source,c.map||"",!0),minimized:!0};await n.storePromise(r),t.updateAsset(i.name,r.source,{...i.info,minimized:!0})}catch(e){t.errors.push(e)}})),i()}catch(e){i(e)}})})}}
|
package/lib/vm/locales.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{basename as e,join as t}from"node:path";import{directoryExists as a,scanFolderSync as o}from"@moneko/utils";import{watch as l}from"chokidar";import r from"../commom/log.mjs";import n from"../commom/parse-module-meta.mjs";import c from"../commom/reactive-object.mjs";import s from"../commom/require.mjs";import i from"../commom/sigint-exit.mjs";import{CONFIG as g}from"../config.mjs";import{FRAMEWORK as m,isDev as u}from"../process-env.mjs";let p={react:'import sso from "shared-store-object";',solid:'import { createEffect, createRoot, getOwner } from "solid-js";import { createStore } from "solid-js/store";'},f={react:'let storageKey="localizable.language",language=localStorage.getItem(storageKey)||navigator.language,{translation:a,...defaultLocale}=Object.assign({title:"简体中文",language:navigator.language,translation:{}},resources[language]||resources[navigator.language]),localizable=sso({lang:defaultLocale,t:a});export function setLang(a){let{translation:e,...l}=resources[a]||{};e&&(localizable.lang=l,localizable.t=e,localStorage.setItem(storageKey,l.language))}export default localizable;',solid:'let locale=createRoot(()=>{let e="localizable.language",a=localStorage.getItem(e)||navigator.language,{translation:l,...o}=Object.assign({title:"简体中文",language:navigator.language,translation:{}},resources[a]||resources[navigator.language]),[n,c]=createStore({lang:o,t:l});return createEffect(()=>{let a=resources[n.lang.language]?.translation;a&&(c("t",a),localStorage.setItem(e,n.lang.language))}),{localizable:n,setLocalizable:c,setLang:function(e){let{translation:a,...l}=resources[e]||{};a&&c("lang",l)}}},getOwner());export const setLocalizable=locale.setLocalizable;export const t=locale.localizable.t;export const lang=locale.localizable.lang;export const setLang=locale.setLang;'}[m];function d(e,t){return`${p[m]}
|
|
2
|
-
export function template(r,n){return r.replace(/\\\${\\w+}/g,function(r){var t=r.slice(2,-1);var e=n[t];return e!==void 0?e.toString():""})}function deepFreeze(o) { const p = Reflect.ownKeys(o);for (const k of p) {const v = o[k];if ((v && typeof v === "object") || typeof v === "function") {deepFreeze(v);}}return Object.freeze(o);}export const locales = ${JSON.stringify(e)};const _res = ${JSON.stringify(t)};const resources = deepFreeze(_res);${f}`}let b=n("@app/locales");export const localesModuleName=b.file;export const locales=new c({[localesModuleName]:d([],{}),[b.pkg]:b.meta});let j={};async function v(t,a){let o=e(t).replace(/\.[^.]+$/,"");try{"deleted"===a?delete j[o]:(delete s.cache[t],Object.assign(j,{[o]:s(t).default}));let e=[],l={};for(let t in j)if(Object.prototype.hasOwnProperty.call(j,t)){let{language:a=o,title:r=a,icon:n,translation:c={}}=j[t];e.push({language:a,title:r,icon:n}),l[a]={language:a,title:r,icon:n,translation:c}}locales.setData(localesModuleName,d(e,l)),locales.setData(b.pkg,b.meta)}catch(e){r(e)}}let z=t(g.alias["@"],"./locales");if(a(z)&&!1!==g.htmlPluginOption){let e=o(z,[".ts$"]).filter(e=>!/^\..*|\.d\.ts$/.test(e));await Promise.
|
|
2
|
+
export function template(r,n){return r.replace(/\\\${\\w+}/g,function(r){var t=r.slice(2,-1);var e=n[t];return e!==void 0?e.toString():""})}function deepFreeze(o) { const p = Reflect.ownKeys(o);for (const k of p) {const v = o[k];if ((v && typeof v === "object") || typeof v === "function") {deepFreeze(v);}}return Object.freeze(o);}export const locales = ${JSON.stringify(e)};const _res = ${JSON.stringify(t)};const resources = deepFreeze(_res);${f}`}let b=n("@app/locales");export const localesModuleName=b.file;export const locales=new c({[localesModuleName]:d([],{}),[b.pkg]:b.meta});let j={};async function v(t,a){let o=e(t).replace(/\.[^.]+$/,"");try{"deleted"===a?delete j[o]:(delete s.cache[t],Object.assign(j,{[o]:s(t).default}));let e=[],l={};for(let t in j)if(Object.prototype.hasOwnProperty.call(j,t)){let{language:a=o,title:r=a,icon:n,translation:c={}}=j[t];e.push({language:a,title:r,icon:n}),l[a]={language:a,title:r,icon:n,translation:c}}locales.setData(localesModuleName,d(e,l)),locales.setData(b.pkg,b.meta)}catch(e){r(e)}}let z=t(g.alias["@"],"./locales");if(a(z)&&!1!==g.htmlPluginOption){let e=o(z,[".ts$"]).filter(e=>!/^\..*|\.d\.ts$/.test(e));await Promise.allSettled(e.map(e=>v(e,"added"))),u&&function(e,t){let a=l(e,{ignored:t,persistent:!0,ignoreInitial:!0});function o(){a.unwatch(e),a.close()}a.on("add",e=>{v(e,"added")}),a.on("change",e=>{v(e,"change")}),a.on("unlink",e=>{v(e,"deleted")}),a.once("ready",()=>{u||o()}),i(o)}(z,[/^\..*/,/!\.ts$/,/\.d\.ts$/])}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moneko/core",
|
|
3
|
-
"version": "3.55.
|
|
3
|
+
"version": "3.55.3-beta.0",
|
|
4
4
|
"description": "core",
|
|
5
5
|
"main": "lib/index.mjs",
|
|
6
6
|
"type": "module",
|
|
@@ -111,10 +111,10 @@
|
|
|
111
111
|
"@moneko/convert": "1.1.3",
|
|
112
112
|
"@moneko/eslint": "1.9.3",
|
|
113
113
|
"@moneko/mdx": "0.1.44",
|
|
114
|
-
"@moneko/raw-import": "0.0
|
|
114
|
+
"@moneko/raw-import": "1.0.0",
|
|
115
115
|
"@moneko/request": "1.6.2",
|
|
116
116
|
"@moneko/stylelint": "1.5.0",
|
|
117
|
-
"@moneko/transform-imports": "1.0.
|
|
117
|
+
"@moneko/transform-imports": "1.0.1",
|
|
118
118
|
"@moneko/utils": "0.3.3",
|
|
119
119
|
"@swc/core": "1.13.5",
|
|
120
120
|
"browserslist": "4.26.2",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
"less-loader": "12.3.0",
|
|
127
127
|
"lightningcss": "1.30.1",
|
|
128
128
|
"marked-completed": "1.2.14",
|
|
129
|
-
"memfs": "4.
|
|
129
|
+
"memfs": "4.43.0",
|
|
130
130
|
"mini-css-extract-plugin": "2.9.4",
|
|
131
131
|
"style-loader": "4.0.0",
|
|
132
132
|
"swc-loader": "0.2.6",
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
"@types/stylis": "4.2.7",
|
|
142
142
|
"@types/webpack-bundle-analyzer": "4.7.0",
|
|
143
143
|
"@types/webpack-hot-middleware": "2.25.10",
|
|
144
|
-
"sass": "1.
|
|
144
|
+
"sass": "1.93.0",
|
|
145
145
|
"sass-loader": "16.0.5",
|
|
146
146
|
"solid-refresh": "0.7.5",
|
|
147
147
|
"stylis": "4.3.6",
|
package/typings/global.d.ts
CHANGED
|
@@ -29,9 +29,10 @@ import type { CopyPluginOption } from '../lib/plugin/copy.mjs';
|
|
|
29
29
|
import type { DonePluginOption } from '../lib/plugin/done.mjs';
|
|
30
30
|
import type { ManifestPluginOption } from '../lib/plugin/manifest.mjs';
|
|
31
31
|
|
|
32
|
-
import type { BundleAnalyzerOption } from './bundle-analyzer.d';
|
|
33
|
-
import type { ESLintOption } from '../lib/plugin/eslint.
|
|
34
|
-
import type { StylelintOption } from '../lib/plugin/stylelint.
|
|
32
|
+
import type { BundleAnalyzerOption } from './bundle-analyzer.d.ts';
|
|
33
|
+
import type { ESLintOption } from '../lib/plugin/eslint.mjs';
|
|
34
|
+
import type { StylelintOption } from '../lib/plugin/stylelint.mjs';
|
|
35
|
+
import type { SwcImportOnDemandTransform } from '../lib/commom/transfer-import-on-demand.mjs'
|
|
35
36
|
|
|
36
37
|
export type { MiniCssExtractPluginOptions, SwcMinifyOptions, TerserMinifyOptions };
|
|
37
38
|
export type MinifierType = 'swc' | 'terser';
|
|
@@ -688,75 +689,4 @@ export declare interface SharedConfig {
|
|
|
688
689
|
|
|
689
690
|
export type SourceMapDevToolPluginOptions = ConstructorParameters<typeof SourceMapDevToolPlugin>[0];
|
|
690
691
|
|
|
691
|
-
export type MemberTransformer =
|
|
692
|
-
/** 帕斯卡拼写法(大驼峰): 所有单词的首字母大写,然后直接连接起来,单词之间没有连接符 */
|
|
693
|
-
| 'pascal_case'
|
|
694
|
-
/** 骆驼拼写法(小驼峰): 第一个单词的首字母小写, 后续所有单词的首字母大写,然后直接连接起来,单词之间没有连接符 */
|
|
695
|
-
| 'camel_case'
|
|
696
|
-
/** 连字符拼写法: 各个单词或缩写之间以`-`做间隔 */
|
|
697
|
-
| 'kebab_case'
|
|
698
|
-
/** 破折号式: 每个单词全小写或全大写,多单词使用`-`隔开 */
|
|
699
|
-
| 'dashed_case'
|
|
700
|
-
/** 蛇形命名: 每个单词全小写或全大写,多单词使用`_`隔开 */
|
|
701
|
-
| 'snake_case'
|
|
702
|
-
/** 大写 */
|
|
703
|
-
| 'upper_case'
|
|
704
|
-
/** 最后大写 */
|
|
705
|
-
| 'upper_first'
|
|
706
|
-
/** 小写 */
|
|
707
|
-
| 'lower_case'
|
|
708
|
-
/** 最后小写 */
|
|
709
|
-
| 'lower_first';
|
|
710
|
-
|
|
711
|
-
export type SwcImportOnDemandTransform = Record<
|
|
712
|
-
/** 库名 */
|
|
713
|
-
string,
|
|
714
|
-
{
|
|
715
|
-
/** 要使用的库名称,而不是导入语句中指定的库名称。`${member}` 是替换的成员
|
|
716
|
-
* @example
|
|
717
|
-
* ```javascript
|
|
718
|
-
* const conf = {
|
|
719
|
-
* importOnDemand: {
|
|
720
|
-
* 'antd': {
|
|
721
|
-
* transform: 'es/${member}',
|
|
722
|
-
* memberTransformers: ['dashed_case']
|
|
723
|
-
* }
|
|
724
|
-
* }
|
|
725
|
-
* }
|
|
726
|
-
* // 以下代码将会按照预期进行转换
|
|
727
|
-
* import { Button } from 'antd';
|
|
728
|
-
* // to
|
|
729
|
-
* import Button from 'antd/es/button'
|
|
730
|
-
* ```
|
|
731
|
-
*/
|
|
732
|
-
transform: string;
|
|
733
|
-
/** 默认值:`false`, 设置转换时需要单独导入的样式,`${member}` 是替换的成员
|
|
734
|
-
* @example
|
|
735
|
-
* ```javascript
|
|
736
|
-
* const conf = {
|
|
737
|
-
* importOnDemand: {
|
|
738
|
-
* antd: {
|
|
739
|
-
* transform: 'es/${member}',
|
|
740
|
-
* style: 'es/${member}/style',
|
|
741
|
-
* memberTransformers: ['dashed_case']
|
|
742
|
-
* }
|
|
743
|
-
* }
|
|
744
|
-
* }
|
|
745
|
-
* // 以下代码将会按照预期进行转换
|
|
746
|
-
* import { BackTop } from 'antd';
|
|
747
|
-
* // to
|
|
748
|
-
* import BackTop from 'antd/es/back-top';
|
|
749
|
-
* import 'antd/es/back-top/style';
|
|
750
|
-
* ```
|
|
751
|
-
*/
|
|
752
|
-
style?: string | boolean;
|
|
753
|
-
/** 默认值:`false`, 当设置为true时,将保留 `import { Button }` 语法,而不是转换为 `import Button` */
|
|
754
|
-
skipDefaultConversion?: boolean;
|
|
755
|
-
/** 默认值:`true`, 当遇到会导致导入整个模块时,是否抛出 */
|
|
756
|
-
preventFullImport?: boolean;
|
|
757
|
-
/** 默认值:`[]`, 成员转换规则 */
|
|
758
|
-
memberTransformers?: MemberTransformer[];
|
|
759
|
-
}
|
|
760
|
-
>;
|
|
761
|
-
|
|
762
692
|
export {};
|