@moneko/core 3.55.3-beta.1 → 3.55.3-beta.2

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.
@@ -0,0 +1,13 @@
1
+ export interface CssInJsMinifyOption {
2
+ /**
3
+ * css in js 使用的模块
4
+ * @default '@moneko/css'
5
+ */
6
+ moduleName: string;
7
+ /**
8
+ * css in js 字符串模版函数
9
+ * @default ['css', 'injectGlobal']
10
+ */
11
+ allowFuncs: string[];
12
+ }
13
+ export declare function cssInJsMinify(sourceCode: string, options: CssInJsMinifyOption): Promise<import("@swc/core").Output>;
@@ -0,0 +1 @@
1
+ import{parse as e,print as t}from"@swc/core";import{compile as r}from"stylis";import n from"./log.mjs";function a(e){return{type:"iTemplateElement",span:{start:0,end:0,ctxt:0},tail:!1,cooked:e,raw:e}}function i(e,t){if("Identifier"===e.tag.type&&t.includes(e.tag.value)){let t=e.template,n=function e(t){return t.map(t=>{switch(t.type){case"import":case"decl":return t.value;case"comm":return"/"===t.props&&t.value.includes("@")?t.value:"";case"rule":return`${t.value.replace(/&\f/g,"&")}{${e(t.children)}}`;default:return`${t.value}{${e(t.children)}}`}}).join("")}(function e(t,r){for(let n=0;n<t.length;n++){let a=t[n],i=a.parent,l=a.children;i?!function(e){var t;return"rule"===e.type&&e.parent&&(t=e.parent,e.line===t.line&&e.column===t.column)}(a)&&i.children.push(a):r.push(a),Array.isArray(l)&&(a.children=[],e(l,r))}return r}(r(function(e){let t=e.quasis.map(e=>e.cooked);return t.reduce((e,r,n)=>(e.push(r),n!==t.length-1&&e.push(`xxx${n}:xxx`),e),[]).join("").trim()}(t)),[])),i=function(e,t){let r=function(e){let t,r=/xxx(\d+):xxx/gm,n=[];for(;null!==(t=r.exec(e));)n.push({value:t[0],p1:parseInt(t[1],10),index:t.index});return n}(e);if(0===r.length)return""===e?[]:[a(e)];let n=[],i=[],l=0;return r.forEach(({value:s,p1:p,index:o},u)=>{let c=e.substring(l,o);l=l+c.length+s.length,c||0!==u?n.push(a(c)):n.push(a("")),i.push(t[p]),u===r.length-1&&n.push(a(e.substring(o+s.length)))}),i.reduce((e,t,r)=>e.concat([t],n[r+1]),[n[0]]).filter(e=>""!==e.raw)}(n,t.expressions);if(n.length>1){let e=[],r=[];i.forEach((t,n)=>{"iTemplateElement"===t.type?e.push({...t,type:"TemplateElement",tail:n===i.length-1}):r.push(t)}),t.quasis=e,t.expressions=r}}}export async function cssInJsMinify(r,a){let{moduleName:l,allowFuncs:s}=a||{};try{let n=await e(r,{syntax:"ecmascript"}),a=[];return n.body.forEach(e=>{"ImportDeclaration"===e.type&&e.source.value===l&&e.specifiers.forEach(e=>{"ImportSpecifier"===e.type&&(e.imported&&s.includes(e.imported.value)?a.push(e.local.value):s.includes(e.local.value)&&a.push(e.local.value))})}),n.body.forEach(e=>{if("ExportDeclaration"===e.type||"ExpressionStatement"===e.type){let t="declaration"in e?e.declaration:e.expression;t&&"CallExpression"===t.type&&t.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&i(e.expression,a)}),t&&"VariableDeclaration"===t.type&&t.declarations.forEach(e=>{e.init?.type==="TaggedTemplateExpression"&&i(e.init,a)})}else"CallExpression"===e.type&&e.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&i(e.expression,a)})}),await t(n)}catch(e){return n(e),{code:r,map:void 0}}}
package/lib/index.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type * from '../typings/global.js';
2
+ export type { cssInJsMinify, CssInJsMinifyOption } from './commom/css-in-js-minify.mjs';
2
3
  export { default as hasPkg } from './commom/has-pkg.mjs';
3
4
  export { getIPv4, getPort } from './commom/net.mjs';
4
5
  export { default as open } from './commom/open.mjs';
@@ -10,7 +11,6 @@ export { default as Rule } from './commom/rule.mjs';
10
11
  export { default as timer } from './commom/timer.mjs';
11
12
  export { type MockConfiguration, type ProxyFuncType, type RequestFormData, yApiMock, type YApiOption, type YApiOptionBySchema, yApiSchemaMock, } from './dev/mock.mjs';
12
13
  export type { ProxyConfig } from './dev/proxy.mjs';
13
- export type { CssInJsMinifyOption } from './loader/css-in-js-minify.cjs';
14
14
  export type { ReactCompilerOption } from './loader/react-compiler.cjs';
15
15
  export { type JsxDomExpressions, default as jsxDomExpressions, } from './options/jsx-dom-expressions.mjs';
16
16
  export { type OptimizationSplitChunksOptions, default as splitChunk, } from './options/split-chunk.mjs';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return l}});const e=require("@swc/core"),t=require("stylis");function r(e){return{type:"iTemplateElement",span:{start:0,end:0,ctxt:0},tail:!1,cooked:e,raw:e}}function n(e,n){if("Identifier"===e.tag.type&&n.includes(e.tag.value)){let n=e.template,l=function(e){let t=e.quasis.map(e=>e.cooked);return t.reduce((e,r,n)=>(e.push(r),n!==t.length-1&&e.push(`xxx${n}:xxx`),e),[]).join("").trim()}(n),a=function e(t){return t.map(t=>{switch(t.type){case"import":case"decl":return t.value;case"comm":return"/"===t.props&&t.value.includes("@")?t.value:"";case"rule":return`${t.value.replace(/&\f/g,"&")}{${e(t.children)}}`;default:return`${t.value}{${e(t.children)}}`}}).join("")}(function e(t,r){for(let n=0;n<t.length;n++){let l=t[n],a=l.parent,i=l.children;a?!function(e){var t;return"rule"===e.type&&e.parent&&(t=e.parent,e.line===t.line&&e.column===t.column)}(l)&&a.children.push(l):r.push(l),Array.isArray(i)&&(l.children=[],e(i,r))}return r}((0,t.compile)(l),[])),i=function(e,t){let n=function(e){let t,r=/xxx(\d+):xxx/gm,n=[];for(;null!==(t=r.exec(e));)n.push({value:t[0],p1:parseInt(t[1],10),index:t.index});return n}(e);if(0===n.length)return""===e?[]:[r(e)];let l=[],a=[],i=0;return n.forEach(({value:s,p1:p,index:u},c)=>{let o=e.substring(i,u);i=i+o.length+s.length,o||0!==c?l.push(r(o)):l.push(r("")),a.push(t[p]),c===n.length-1&&l.push(r(e.substring(u+s.length)))}),a.reduce((e,t,r)=>e.concat([t],l[r+1]),[l[0]]).filter(e=>""!==e.raw)}(a,n.expressions);if(a.length>1){let e=[],t=[];i.forEach((r,n)=>{"iTemplateElement"===r.type?e.push({...r,type:"TemplateElement",tail:n===i.length-1}):t.push(r)}),n.quasis=e,n.expressions=t}}}async function l(t){let r=this.async(),{moduleName:l,allowFuncs:a}=this.getOptions()||{};this.cacheable&&this.cacheable();try{let i=await (0,e.parse)(t,{syntax:"ecmascript"}),s=[];i.body.forEach(e=>{"ImportDeclaration"===e.type&&e.source.value===l&&e.specifiers.forEach(e=>{"ImportSpecifier"===e.type&&(e.imported&&a.includes(e.imported.value)?s.push(e.local.value):a.includes(e.local.value)&&s.push(e.local.value))})}),i.body.forEach(e=>{if("ExportDeclaration"===e.type||"ExpressionStatement"===e.type){let t="declaration"in e?e.declaration:e.expression;t&&"CallExpression"===t.type&&t.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&n(e.expression,s)}),t&&"VariableDeclaration"===t.type&&t.declarations.forEach(e=>{e.init?.type==="TaggedTemplateExpression"&&n(e.init,s)})}else"CallExpression"===e.type&&e.arguments.forEach(e=>{e.expression&&"TaggedTemplateExpression"===e.expression.type&&n(e.expression,s)})});let{code:p}=await (0,e.print)(i);r(null,p)}catch(e){r(e)}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return t}});const e=require("node:path"),s=new(require("node:worker_threads")).Worker((0,e.join)(__dirname,"../worker/css-in-js-minify.mjs"));async function t(e){this.cacheable&&this.cacheable(),this._compiler?.options.mode!=="development"&&this._compiler?.hooks.done.tap("css-in-js-minify-loader",()=>{s.terminate()});let t=this.async(),i=this.getOptions(),o=this.resourcePath;s.postMessage({options:i,code:e,filename:o}),s.addListener("message",function e(i){o===i[0]&&(t(i[1],i[2]),s.removeListener("message",e))})}s.setMaxListeners(0);
@@ -1,14 +1,3 @@
1
1
  import type { LoaderContext } from 'webpack';
2
- export interface CssInJsMinifyOption {
3
- /**
4
- * css in js 使用的模块
5
- * @default '@moneko/css'
6
- */
7
- moduleName: string;
8
- /**
9
- * css in js 字符串模版函数
10
- * @default ['css', 'injectGlobal']
11
- */
12
- allowFuncs: string[];
13
- }
2
+ import type { CssInJsMinifyOption } from '../commom/css-in-js-minify.mjs' with { 'resolution-mode': 'import' };
14
3
  export default function cssInJsMinifyLoader(this: LoaderContext<CssInJsMinifyOption>, sourceCode: string): Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ import{parentPort as s}from"node:worker_threads";import{cssInJsMinify as e}from"../commom/css-in-js-minify.mjs";s?.setMaxListeners(0),s?.on("message",async({code:o,filename:m,options:r})=>{try{let t=await e(o,r);s?.postMessage([m,null,t?.code??o,t.map])}catch(e){s?.postMessage([m,e,o,void 0])}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/core",
3
- "version": "3.55.3-beta.1",
3
+ "version": "3.55.3-beta.2",
4
4
  "description": "core",
5
5
  "main": "lib/index.mjs",
6
6
  "type": "module",
@@ -22,7 +22,7 @@ import type { BundleAnalyzerOption } from './bundle-analyzer.d.ts';
22
22
  import type { ESLintOption } from '../lib/plugin/eslint.mjs';
23
23
  import type { StylelintOption } from '../lib/plugin/stylelint.mjs';
24
24
  import type { SwcImportOnDemandTransform } from '../lib/commom/transfer-import-on-demand.mjs';
25
- import type { CssInJsMinifyOption } from '../lib/loader/css-in-js-minify.cjs';
25
+ import type { CssInJsMinifyOption } from '../lib/commom/css-in-js-minify.mjs';
26
26
  import type { ReactCompilerOption } from '../lib/loader/react-compiler.cjs';
27
27
  import type { CompressionPluginOptions } from '../lib/plugin/compression.mjs';
28
28
  import type { JsxDomExpressions } from '../lib/options/jsx-dom-expressions.mjs';