@amisa/style-plugin
Version:
Transfom css's file to java scripts style element and js to script element
9 lines (6 loc) • 3.41 kB
JavaScript
(function(global,factory){typeof exports=="object"&&typeof module<"u"?factory(exports):typeof define=="function"&&define.amd?define(["exports"],factory):(global=typeof globalThis<"u"?globalThis:global||self,factory(global.amsia={}))})(this,function(exports2){"use strict";const fs=require("fs");function AmisaCopy(fileName,code,replaceCallBackFunction,typeIsModule){const type=typeIsModule?'type="module"':"",replaced=replaceCallBackFunction?replaceCallBackFunction(code):code,freamworkPath="/Volumes/Users/H.M/source/repos/Hamed228/Amisa.Framework/AmisaMe/AmisaMe.Component/AmisaPackages";fs.existsSync(freamworkPath)?fs.writeFileSync(`${freamworkPath}/${fileName}.razor`,`<script ${type} //* ${fileName} *// >
//Hi this is amisa, www.amisa.co www.amisa.me emil: amisa@ieee.org
${replaced.replace(/@{1}/gm,"@@")} <\/script>`):console.log("razor no",fileName);const mono="../../../amisa.mono/public",sub="../../../amisa.sub.mono/public";function copyMonos(path){fs.existsSync(path)?fs.writeFileSync(`${path}/${fileName}.js`,`//Hi this is amisa, www.amisa.co www.amisa.me ${fileName} emia: amisa@ieee.org
${replaced}`):console.log(fileName,"no")}copyMonos(mono),copyMonos(sub)}function AmisaWriteBundle(options,bundle,replaceCallBackFunction,typeIsModule){for(const property in bundle){const{fileName,code}=bundle[property];fileName.endsWith(".mjs")&&AmisaCopy(fileName.replace(".mjs",""),code,replaceCallBackFunction,typeof typeIsModule=="boolean"?typeIsModule:!0)}}const regex$1=/=\s*amisa.createStyleElement\(['|"].*\.css['|"]\)/g;function AmisaCssTransformStylePlugin(){return{name:"amisa-css-plugin",transform(code,id){let m;if((m=regex$1.exec(code))!==null){const cssFilePath=getCssFileName(m,id),cssContent=getCssContent(cssFilePath);return code.replace(regex$1,`= amisa.getAmisaStyleElement(\`${cssContent}\`);`)+" "}else return console.error(id),code}}}function getCssFileName(m,path){const fileName=m[0].replace(/=\s*amisa.createStyleElement\(['|"]\.\//,"").replace(/=\s*amisa.createStyleElement\(['|"]/,"").replace(/["|']\)/,""),folderSrc=require("path").dirname(path).replace(/\/dist/,"");return require("path").resolve(folderSrc,fileName)}function getCssContent(cssFilePath){return require("fs").readFileSync(cssFilePath).toString().replace(/\n\s*/g," ")}const regex=/=\s*amisa.amisaCreateScriptElement\(['|"].*\.js['|"]\)/g;function AmisaJsTransformScriptPlugin(){return{name:"amisa-js-plugin",transform(code,id){let m;return!id.includes("/dist/")&&(m=regex.exec(code))!==null?replaceIt(m,code,id):code}}}function replaceIt(m,code,path){const jsFilePath=getJsFileName(m,path),jsContent=getJsContent(jsFilePath),amisaMethod="";return code.replace(regex,`= amisa.getAmisaScriptElement(\`${jsContent}\`);`)+`
`+amisaMethod+`
`}function getJsFileName(m,path){const fileName=m[0].replace(/=\s*amisa.amisaCreateScriptElement\(['|"]\.\//,"").replace(/=\s*amisa.amisaCreateScriptElement\(['|"]/,"").replace(/["|']\)/,""),folder=require("path").dirname(path);return require("path").resolve(folder,fileName)}function getJsContent(jsFilePath){return require("fs").readFileSync(jsFilePath).toString().replace(/\n\s*/g," ")}exports2.AmisaCssTransformStylePlugin=AmisaCssTransformStylePlugin,exports2.AmisaJsTransformScriptPlugin=AmisaJsTransformScriptPlugin,exports2.AmisaWriteBundle=AmisaWriteBundle,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});