bernova 1.5.1 → 1.5.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.5.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Lower first case for provider files
8
+
9
+ Pull Request
10
+
11
+ ## 1.5.2
12
+
13
+ ### Patch Changes
14
+
15
+ - Fixed the const name
16
+
17
+ Pull Request
18
+
3
19
  ## 1.5.1
4
20
 
5
21
  ### Patch Changes
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const e=require("fs").promises,t=require("path"),s=require("@babel/core"),{minify:a}=require("terser"),{extractDocFragment:n,writeDoc:r,fileExists:o,readConfigData:i}=require("../src/lib");async function c({baseOutPath:s,jsFile:a,rootDir:i,customOutDirs:c,dir:l,minifyJS:m,preventMoveJS:d,provider:h,type:v="",embedCss:y,cssFiles:b}){const g=a.name.endsWith(".d.ts"),P=t.resolve(l,a.path,a.name);if(!o(l,P))return void console.error(`File not found: ${P}`);let j=await e.readFile(P,"utf8");const D=!!c?.css||y&&b.length>0;if("cssTheme.js"===a.name&&D){const s=j.replace("export default","").replaceAll(";","").trim(),a=new Function(`return (${s})`)();if(c?.css)j=`export default {\n${f({cssThemes:a,cssOutPath:c.css})}};\n`;else if(y&&b.length>0){const s=Object.keys(a)[0],n=b.find(e=>e.name===`${s}.css`||e.name===`${s}.min.css`);if(n){const{name:a,path:r}=n,i=t.resolve(l,r,a),c=o(l,s)?(await e.readFile(i,"utf8")).replace(/\s+/g,""):"",m={before:"",after:""};for(const a of b){const{name:n,path:r,parent:i}=a;if(i)for(const{name:a,position:c}of i)if(a===s){const s=t.resolve(l,r,n);if(o(l,s)){const t=(await e.readFile(s,"utf8")).replace(/\s+/g,"");m[c]+=t}}}const p=m.before+c+m.after;j=`export default {'${s}':{css:\`${p}\`}};`}}}if(a.name===`${h.name.toLocaleLowerCase()}.js`&&y&&b.length>0){const s="\n #linkBuilder = (css, id) => {\n if (typeof document === 'undefined') return;\n let styleElement = document.getElementById(id);\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = id;\n styleElement.type = 'text/css';\n document.head.appendChild(styleElement);\n }\n styleElement.innerHTML = css;\n };\n #handlerThemes = (data) => {\n const { css } = data;\n this.#linkBuilder(css, this.#linkId);\n };\n #cleanUpLinks = () => {\n if (typeof document === 'undefined') return;\n const style = document.getElementById(this.#linkId);\n if (style) style.remove();\n };\n ",a="../src/lib/generateProvider/template/providerTemplate.js";let r=await e.readFile(t.resolve(__dirname,a),"utf8");r=r.replace(/\$_Provider_\$/g,h.name);const o=n({section:"Bernova provider methods",doc:r});j=r.replace(o,s.trim())}if(a.name===`${h.name.toLocaleLowerCase()}.d.ts`&&y&&b.length>0){const s="\n #linkBuilder(css: string, id: string): void;\n #handlerThemes(data: { css: string }): void;\n #cleanUpLinks(): void;\n ",a="../src/lib/generateProvider/template/providerTemplate.d.ts";let r=await e.readFile(t.resolve(__dirname,a),"utf8");r=r.replace(/\$_Provider_\$/g,h.name);const o=n({section:"Bernova provider methods",doc:r});j=r.replace(o,s.trim())}"cjs"!==v||g||(j=await p(j,P,!0)),"esm"!==v||g||(j=await p(j,P)),m&&!g&&(j=await u(j));const C=t.relative(i||"",a.outPath),w=d?P:t.resolve(s,C,a.name);await r(w,j,a.name)}async function l({baseOutPath:s,cssFiles:a,rootDir:n,customOutDirs:i,dir:c}){for(const l of a){const a=(()=>n&&!i?.css?t.relative(n,l.path):i?.css?i.css:l.path)(),m=t.resolve(c,l.path,l.name);if(o(c,m)){const n=await e.readFile(m,"utf8"),o=l.name.replace(".min","");await r(t.resolve(s,a,o),n,o)}}}function m({baseOutDir:e,type:s="-"}){const a=(()=>{switch(s){case"cjs":return"cjs";case"esm":return"esm";default:return""}})();return t.join(e,a)}async function p(e,t,a=!1){const n=!!a&&"commonjs";return(await s.transformAsync(e,{filename:t,presets:[["@babel/preset-env",{modules:n,targets:{node:"current"}}]]})).code}async function u(e){return(await a(e,{compress:{dead_code:!0,drop_console:!1,drop_debugger:!0,keep_classnames:!1,keep_fargs:!0,keep_fnames:!1,keep_infinity:!1},mangle:{toplevel:!1},format:{comments:!1}})).code}function d({themes:e,minifyCss:s}){return e&&Array.isArray(e)&&e.length>0?e.reduce((e,a)=>{const{name:n,stylesPath:r,foreignThemes:o}=a;return n&&r&&v(e,{name:s?`${n}.min.css`:`${n}.css`,path:r}),o&&Array.isArray(o)&&o.length>0&&o.forEach(s=>{const a=t.basename(s.path),r=s.path.replace(a,"").trim(),o=e.findIndex(e=>e.name===a&&e.path===r);o>=0?e[o].parent.push({name:n,position:s.position}):e.push({name:a,path:r,parent:[{name:n,position:s.position}]})}),e},[]):[]}async function h({dir:s,customOutDirs:a,provider:n,themes:r,preventMoveDTS:o=!1}){const i=r&&r.bvTools?r.reduce((e,{bvTools:t})=>{const{path:s,declarationHelp:n,cssVariables:r,cssClassNames:i,cssMediaQueries:c,cssGlobalStyles:l,availableComponents:m}=t,p=n&&!o,u=a?.tools?a.tools:s;return r&&(v(e,{name:"cssVars.js",path:s,outPath:u}),p&&v(e,{name:"cssVars.d.ts",path:s,outPath:u})),i&&(v(e,{name:"cssClasses.js",path:s,outPath:u}),p&&v(e,{name:"cssClasses.d.ts",path:s,outPath:u})),c&&(v(e,{name:"cssMediaQueries.js",path:s,outPath:u}),p&&v(e,{name:"cssMediaQueries.d.ts",path:s,outPath:u})),l&&(v(e,{name:"cssGlobalStyles.js",path:s,outPath:u}),p&&v(e,{name:"cssGlobalStyles.d.ts",path:s,outPath:u})),m&&(v(e,{name:"cssAvailableComponents.js",path:s,outPath:u}),p&&v(e,{name:"cssAvailableComponents.d.js",path:s,outPath:u})),e},[]):[];if(n){const r=`${n.name.toLocaleLowerCase()}.js`,c=a?.provider?a.provider:n.path;v(i,{name:r,path:n.path,outPath:c});const l=t.join(n.path,"stats"),m=a?.provider?t.join(a.provider,"stats"):l;v(i,{name:"stats.js",path:l,outPath:m});const p=t.resolve(s,l),u=await e.readdir(p,{withFileTypes:!0});if(u.forEach(e=>{if(e.isDirectory()){const s=t.join(l,e.name),a=t.join(m,e.name);v(i,{name:"cssAvailableComponents.js",path:s,outPath:a}),v(i,{name:"cssClassNames.js",path:s,outPath:a}),v(i,{name:"cssGlobalStyles.js",path:s,outPath:a}),v(i,{name:"cssMediaQueries.js",path:s,outPath:a}),v(i,{name:"cssTheme.js",path:s,outPath:a}),v(i,{name:"cssVars.js",path:s,outPath:a})}}),n.declarationHelp&&!o){const e=`${n.name.toLocaleLowerCase()}.d.ts`;v(i,{name:e,path:n.path,outPath:c}),v(i,{name:"stats.d.ts",path:l,outPath:m}),u.forEach(e=>{if(e.isDirectory()){const s=t.join(l,e.name),a=t.join(m,e.name);v(i,{name:"cssAvailableComponents.d.ts",path:s,outPath:a}),v(i,{name:"cssClassNames.d.ts",path:s,outPath:a}),v(i,{name:"cssGlobalStyles.d.ts",path:s,outPath:a}),v(i,{name:"cssMediaQueries.d.ts",path:s,outPath:a}),v(i,{name:"cssTheme.d.ts",path:s,outPath:a}),v(i,{name:"cssVars.d.ts",path:s,outPath:a})}})}}return i}function f({cssThemes:e,cssOutPath:s}){return Object.entries(e).reduce((e,[a,{foreign:n}])=>{const{before:r,after:o}=n,i=r&&Array.isArray(r)&&r.length>0?r.reduce((e,a,n)=>{const r=t.basename(a);return n>0&&(e+=", "),e+`'${s}/${r}'`},""):"",c=o&&Array.isArray(o)&&o.length>0?o.reduce((e,a,n)=>{const r=t.basename(a);return n>0&&(e+=", "),e+`'${s}/${r}'`},""):"";return e+`'${a}':{css:'${s}/${a}.css',foreign:{before: [${i}],after: [${c}]}}`},"")}function v(e,t){e.some(e=>e.name===t.name&&e.path===t.path)||e.push(t)}function y(){const e=["--base-out-dir","--root-dir","--prevent-process-js","--prevent-move-js","--prevent-move-dts","--types","--css","--tools","--provider","--embed-css"],t={};for(let s=0;s<process.argv.length;s++)if(e.includes(process.argv[s])){const a=process.argv[s].replace("--","").replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),n=process.argv[s+1];t[a]=(()=>!(n&&!e.includes(n))||("none"===n.toLocaleLowerCase()?"":n))()}return t}function b({jsonCustomOutDirs:e,cliCustomOutDirs:t}){let s={};return e&&(s={...e}),t&&(s={...s,...t}),Object.keys(s).length>0?s:void 0}(async()=>{const e=process.cwd(),s=await i(t.resolve(e,"bernova.config.json")),{compilerOptions:a,provider:n,themes:r}=s;a&&n&&r||(console.error("Invalid configuration: Missing compilerOptions, themes or provider"),process.exit(1));const{baseOutDir:o,rootDir:p,minifyCss:u,minifyJS:f,preventMoveJS:v,preventMoveDTS:g,types:P,embedCss:j,customOutDirs:D}=a,{baseOutDir:C,rootDir:w,types:O,preventMoveJs:$,preventMoveDts:F,preventProcessJs:T=!1,embedCss:A,...M}=y(),S=C??o??"",_=w??p??void 0,E=$??v??!1,k=F??g??!1,L=O??P??void 0,J=A??j??!1,x=b({jsonCustomOutDirs:D,cliCustomOutDirs:M}),B=d({themes:r,minifyCss:u}),I=T?[]:await h({dir:e,customOutDirs:x,provider:n,themes:r,preventMoveDTS:k}),q=m({baseOutDir:S});if(B&&B.length>0&&!J&&await l({baseOutPath:q,cssFiles:B,rootDir:_,customOutDirs:x,dir:e}),I&&I.length>0)if(L&&Array.isArray(L)&&L.length>0)for(const t of L){const s=m({baseOutDir:S,type:t});for(const a of I)await c({baseOutPath:s,jsFile:a,rootDir:_,customOutDirs:x,dir:e,minifyJS:f,preventMoveJS:E,provider:n,type:t,embedCss:J,cssFiles:B})}else for(const t of I)await c({baseOutPath:q,jsFile:t,rootDir:_,customOutDirs:x,dir:e,minifyJS:f,preventMoveJS:E,provider:n,embedCss:J,cssFiles:B})})();
2
+ const e=require("fs").promises,t=require("path"),s=require("@babel/core"),{minify:a}=require("terser"),{extractDocFragment:n,writeDoc:r,fileExists:o,readConfigData:i}=require("../src/lib");async function c({baseOutPath:s,jsFile:a,rootDir:i,customOutDirs:c,dir:l,minifyJS:m,preventMoveJS:d,provider:h,type:v="",embedCss:y,cssFiles:b}){const g=a.name.endsWith(".d.ts"),P=t.resolve(l,a.path,a.name);if(!o(l,P))return void console.error(`File not found: ${P}`);let j=await e.readFile(P,"utf8");const D=!!c?.css||y&&b.length>0;if("cssTheme.js"===a.name&&D){const s=j.replace("export default","").replaceAll(";","").trim(),a=new Function(`return (${s})`)();if(c?.css)j=`export default {\n${f({cssThemes:a,cssOutPath:c.css})}};\n`;else if(y&&b.length>0){const s=Object.keys(a)[0],n=b.find(e=>e.name===`${s}.css`||e.name===`${s}.min.css`);if(n){const{name:a,path:r}=n,i=t.resolve(l,r,a),c=o(l,i)?(await e.readFile(i,"utf8")).replace(/\s+/g,""):"",m={before:"",after:""};for(const a of b){const{name:n,path:r,parent:i}=a;if(i)for(const{name:a,position:c}of i)if(a===s){const s=t.resolve(l,r,n);if(o(l,s)){const t=(await e.readFile(s,"utf8")).replace(/\s+/g,"");m[c]+=t}}}const p=m.before+c+m.after;j=`export default {'${s}':{css:\`${p}\`}};`}}}if(a.name===`${h.name.toLocaleLowerCase()}.js`&&y&&b.length>0){const s="\n #linkBuilder = (css, id) => {\n if (typeof document === 'undefined') return;\n let styleElement = document.getElementById(id);\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = id;\n styleElement.type = 'text/css';\n document.head.appendChild(styleElement);\n }\n styleElement.innerHTML = css;\n };\n #handlerThemes = (data) => {\n const { css } = data;\n this.#linkBuilder(css, this.#linkId);\n };\n #cleanUpLinks = () => {\n if (typeof document === 'undefined') return;\n const style = document.getElementById(this.#linkId);\n if (style) style.remove();\n };\n ",a="../src/lib/generateProvider/template/providerTemplate.js";let r=await e.readFile(t.resolve(__dirname,a),"utf8");r=r.replace(/\$_Provider_\$/g,h.name);const o=n({section:"Bernova provider methods",doc:r});j=r.replace(o,s.trim())}if(a.name===`${h.name.toLocaleLowerCase()}.d.ts`&&y&&b.length>0){const s="\n #linkBuilder(css: string, id: string): void;\n #handlerThemes(data: { css: string }): void;\n #cleanUpLinks(): void;\n ",a="../src/lib/generateProvider/template/providerTemplate.d.ts";let r=await e.readFile(t.resolve(__dirname,a),"utf8");r=r.replace(/\$_Provider_\$/g,h.name);const o=n({section:"Bernova provider methods",doc:r});j=r.replace(o,s.trim())}"cjs"!==v||g||(j=await p(j,P,!0)),"esm"!==v||g||(j=await p(j,P)),m&&!g&&(j=await u(j));const C=t.relative(i||"",a.outPath),w=d?P:t.resolve(s,C,a.name);await r(w,j,a.name)}async function l({baseOutPath:s,cssFiles:a,rootDir:n,customOutDirs:i,dir:c}){for(const l of a){const a=(()=>n&&!i?.css?t.relative(n,l.path):i?.css?i.css:l.path)(),m=t.resolve(c,l.path,l.name);if(o(c,m)){const n=await e.readFile(m,"utf8"),o=l.name.replace(".min","");await r(t.resolve(s,a,o),n,o)}}}function m({baseOutDir:e,type:s="-"}){const a=(()=>{switch(s){case"cjs":return"cjs";case"esm":return"esm";default:return""}})();return t.join(e,a)}async function p(e,t,a=!1){const n=!!a&&"commonjs";return(await s.transformAsync(e,{filename:t,presets:[["@babel/preset-env",{modules:n,targets:{node:"current"}}]]})).code}async function u(e){return(await a(e,{compress:{dead_code:!0,drop_console:!1,drop_debugger:!0,keep_classnames:!1,keep_fargs:!0,keep_fnames:!1,keep_infinity:!1},mangle:{toplevel:!1},format:{comments:!1}})).code}function d({themes:e,minifyCss:s}){return e&&Array.isArray(e)&&e.length>0?e.reduce((e,a)=>{const{name:n,stylesPath:r,foreignThemes:o}=a;return n&&r&&v(e,{name:s?`${n}.min.css`:`${n}.css`,path:r}),o&&Array.isArray(o)&&o.length>0&&o.forEach(s=>{const a=t.basename(s.path),r=s.path.replace(a,"").trim(),o=e.findIndex(e=>e.name===a&&e.path===r);o>=0?e[o].parent.push({name:n,position:s.position}):e.push({name:a,path:r,parent:[{name:n,position:s.position}]})}),e},[]):[]}async function h({dir:s,customOutDirs:a,provider:n,themes:r,preventMoveDTS:o=!1}){const i=r&&r.bvTools?r.reduce((e,{bvTools:t})=>{const{path:s,declarationHelp:n,cssVariables:r,cssClassNames:i,cssMediaQueries:c,cssGlobalStyles:l,availableComponents:m}=t,p=n&&!o,u=a?.tools?a.tools:s;return r&&(v(e,{name:"cssVars.js",path:s,outPath:u}),p&&v(e,{name:"cssVars.d.ts",path:s,outPath:u})),i&&(v(e,{name:"cssClasses.js",path:s,outPath:u}),p&&v(e,{name:"cssClasses.d.ts",path:s,outPath:u})),c&&(v(e,{name:"cssMediaQueries.js",path:s,outPath:u}),p&&v(e,{name:"cssMediaQueries.d.ts",path:s,outPath:u})),l&&(v(e,{name:"cssGlobalStyles.js",path:s,outPath:u}),p&&v(e,{name:"cssGlobalStyles.d.ts",path:s,outPath:u})),m&&(v(e,{name:"cssAvailableComponents.js",path:s,outPath:u}),p&&v(e,{name:"cssAvailableComponents.d.js",path:s,outPath:u})),e},[]):[];if(n){const r=`${n.name.toLocaleLowerCase()}.js`,c=a?.provider?a.provider:n.path;v(i,{name:r,path:n.path,outPath:c});const l=t.join(n.path,"stats"),m=a?.provider?t.join(a.provider,"stats"):l;v(i,{name:"stats.js",path:l,outPath:m});const p=t.resolve(s,l),u=await e.readdir(p,{withFileTypes:!0});if(u.forEach(e=>{if(e.isDirectory()){const s=t.join(l,e.name),a=t.join(m,e.name);v(i,{name:"cssAvailableComponents.js",path:s,outPath:a}),v(i,{name:"cssClassNames.js",path:s,outPath:a}),v(i,{name:"cssGlobalStyles.js",path:s,outPath:a}),v(i,{name:"cssMediaQueries.js",path:s,outPath:a}),v(i,{name:"cssTheme.js",path:s,outPath:a}),v(i,{name:"cssVars.js",path:s,outPath:a})}}),n.declarationHelp&&!o){const e=`${n.name.toLocaleLowerCase()}.d.ts`;v(i,{name:e,path:n.path,outPath:c}),v(i,{name:"stats.d.ts",path:l,outPath:m}),u.forEach(e=>{if(e.isDirectory()){const s=t.join(l,e.name),a=t.join(m,e.name);v(i,{name:"cssAvailableComponents.d.ts",path:s,outPath:a}),v(i,{name:"cssClassNames.d.ts",path:s,outPath:a}),v(i,{name:"cssGlobalStyles.d.ts",path:s,outPath:a}),v(i,{name:"cssMediaQueries.d.ts",path:s,outPath:a}),v(i,{name:"cssTheme.d.ts",path:s,outPath:a}),v(i,{name:"cssVars.d.ts",path:s,outPath:a})}})}}return i}function f({cssThemes:e,cssOutPath:s}){return Object.entries(e).reduce((e,[a,{foreign:n}])=>{const{before:r,after:o}=n,i=r&&Array.isArray(r)&&r.length>0?r.reduce((e,a,n)=>{const r=t.basename(a);return n>0&&(e+=", "),e+`'${s}/${r}'`},""):"",c=o&&Array.isArray(o)&&o.length>0?o.reduce((e,a,n)=>{const r=t.basename(a);return n>0&&(e+=", "),e+`'${s}/${r}'`},""):"";return e+`'${a}':{css:'${s}/${a}.css',foreign:{before: [${i}],after: [${c}]}}`},"")}function v(e,t){e.some(e=>e.name===t.name&&e.path===t.path)||e.push(t)}function y(){const e=["--base-out-dir","--root-dir","--prevent-process-js","--prevent-move-js","--prevent-move-dts","--types","--css","--tools","--provider","--embed-css"],t={};for(let s=0;s<process.argv.length;s++)if(e.includes(process.argv[s])){const a=process.argv[s].replace("--","").replace(/-([a-z])/g,(e,t)=>t.toUpperCase()),n=process.argv[s+1];t[a]=(()=>!(n&&!e.includes(n))||("none"===n.toLocaleLowerCase()?"":n))()}return t}function b({jsonCustomOutDirs:e,cliCustomOutDirs:t}){let s={};return e&&(s={...e}),t&&(s={...s,...t}),Object.keys(s).length>0?s:void 0}(async()=>{const e=process.cwd(),s=await i(t.resolve(e,"bernova.config.json")),{compilerOptions:a,provider:n,themes:r}=s;a&&n&&r||(console.error("Invalid configuration: Missing compilerOptions, themes or provider"),process.exit(1));const{baseOutDir:o,rootDir:p,minifyCss:u,minifyJS:f,preventMoveJS:v,preventMoveDTS:g,types:P,embedCss:j,customOutDirs:D}=a,{baseOutDir:C,rootDir:w,types:O,preventMoveJs:$,preventMoveDts:F,preventProcessJs:T=!1,embedCss:A,...M}=y(),S=C??o??"",_=w??p??void 0,E=$??v??!1,k=F??g??!1,L=O??P??void 0,J=A??j??!1,x=b({jsonCustomOutDirs:D,cliCustomOutDirs:M}),B=d({themes:r,minifyCss:u}),I=T?[]:await h({dir:e,customOutDirs:x,provider:n,themes:r,preventMoveDTS:k}),q=m({baseOutDir:S});if(B&&B.length>0&&!J&&await l({baseOutPath:q,cssFiles:B,rootDir:_,customOutDirs:x,dir:e}),I&&I.length>0)if(L&&Array.isArray(L)&&L.length>0)for(const t of L){const s=m({baseOutDir:S,type:t});for(const a of I)await c({baseOutPath:s,jsFile:a,rootDir:_,customOutDirs:x,dir:e,minifyJS:f,preventMoveJS:E,provider:n,type:t,embedCss:J,cssFiles:B})}else for(const t of I)await c({baseOutPath:q,jsFile:t,rootDir:_,customOutDirs:x,dir:e,minifyJS:f,preventMoveJS:E,provider:n,embedCss:J,cssFiles:B})})();
@@ -1 +1 @@
1
- const s=require("fs"),e=require("fs").promises,a=require("path"),{writeDoc:t}=require("../writeDoc/writeDoc.utils"),{compilerTypeValid:o}=require("../../constants"),{simplifyName:l}=require("../simplifyName/simplifyName.utils"),i=s=>`export default {${s}}`,r=(s,e)=>`export interface ${e} {${s}}\n`,c=async({dir:s,content:e,fileName:o,theme:l,declare:c=null})=>{const n=c?r(e,c):i(e),m=`stats/${l}/${o}`,p=a.resolve(s,m);await t(p,n,m)},n=async({providerDocs:s,declarationHelp:e,compilerType:i,dir:r})=>{const n=Object.entries(s),m=[];for(const[s,a]of n){m.push(s);const t=a.beforeFiles?.length>0,n=a.afterFiles?.length>0,p=t?`before:${a.beforeFiles}`:"",d=n?`after:${a.afterFiles}`:"",$=t||n;let C=$?"foreign:{":"";C+=p,C+=p.length&&d.length?",":"",C+=d,C+=$?"}":"";const b="cssPath"in a?`'${s}':{css:'${a.cssPath}',${C}}`:"";if(await c({dir:r,content:b,fileName:"cssTheme.js",theme:s}),e){const e="cssPath"in a?`'${s}':{css:string,foreign?:{before?:string[],after?:string[]}}`:"",t=`${l(s)}CssTheme`;await c({dir:r,content:e,fileName:"cssTheme.d.ts",theme:s,declare:t})}if(i!==o.foundationOnly){const t="classNames"in a?`'${s}':{${a.classNames.doc}}`:"";await c({dir:r,content:t,fileName:"cssClassNames.js",theme:s});const o="availableComp"in a?`'${s}':{${a.availableComp.doc}}`:"";if(await c({dir:r,content:o,fileName:"cssAvailableComponents.js",theme:s}),e){const e="classNames"in a?`'${s}':{${a.classNames.declare}}`:"",t=`${l(s)}CssClassNames`;await c({dir:r,content:e,fileName:"cssClassNames.d.ts",theme:s,declare:t});const o="availableComp"in a?`'${s}':{${a.availableComp.declare}}`:"",i=`${l(s)}CssAvailableComponents`;await c({dir:r,content:o,fileName:"cssAvailableComponents.d.ts",theme:s,declare:i})}}if(i!==o.componentOnly){const t="variables"in a?`'${s}':{${a.variables.doc}}`:"";await c({dir:r,content:t,fileName:"cssVars.js",theme:s});const o="globalStyles"in a?`'${s}':{${a.globalStyles.doc}}`:"";await c({dir:r,content:o,fileName:"cssGlobalStyles.js",theme:s});const i="mediaQueries"in a?`'${s}':{${a.mediaQueries.doc}}`:"";if(await c({dir:r,content:i,fileName:"cssMediaQueries.js",theme:s}),e){const e="variables"in a?`'${s}':{${a.variables.declare}}`:"",t=`${l(s)}CssVars`;await c({dir:r,content:e,fileName:"cssVars.d.ts",theme:s,declare:t});const o="globalStyles"in a?`'${s}':{${a.globalStyles.declare}}`:"",i=`${l(s)}CssGlobalStyles`;await c({dir:r,content:o,fileName:"cssGlobalStyles.d.ts",theme:s,declare:i});const n="mediaQueries"in a?`'${s}':{${a.mediaQueries.declare}}`:"",m=`${l(s)}CssMediaQueries`;await c({dir:r,content:n,fileName:"cssMediaQueries.d.ts",theme:s,declare:m})}}}const p={toImport:"",cssThemes:"export const cssThemes = {",cssVars:"export const cssVars = {",cssClassNames:"export const cssClasses = {",cssAvailableComponents:"export const cssAvailableComponents = {",cssGlobalStyles:"export const cssGlobalStyles = {",cssMediaQueries:"export const cssMediaQueries = {"},d={toImport:"",cssThemes:"export declare const cssThemes: ",cssVars:"export declare const cssVars: ",cssClassNames:"export declare const cssClasses: ",cssAvailableComponents:"export declare const cssAvailableComponents: ",cssGlobalStyles:"export declare const cssGlobalStyles: ",cssMediaQueries:"export declare const cssMediaQueries: "};m.forEach((s,a)=>{const t=l(s);p.toImport+=`import ${t}CssTheme from './${s}/cssTheme.js';\n`,p.toImport+=`import ${t}CssVars from './${s}/cssVars.js';\n`,p.toImport+=`import ${t}CssClassNames from './${s}/cssClassNames.js';\n`,p.toImport+=`import ${t}CssAvailableComponents from './${s}/cssAvailableComponents.js';\n`,p.toImport+=`import ${t}CssGlobalStyles from './${s}/cssGlobalStyles.js';\n`,p.toImport+=`import ${t}CssMediaQueries from './${s}/cssMediaQueries.js';\n`,p.cssThemes+=`...${t}CssTheme,`,p.cssVars+=`...${t}CssVars,`,p.cssClassNames+=`...${t}CssClassNames,`,p.cssAvailableComponents+=`...${t}CssAvailableComponents,`,p.cssGlobalStyles+=`...${t}CssGlobalStyles,`,p.cssMediaQueries+=`...${t}CssMediaQueries,`,e&&(d.toImport+=`import type { ${t}CssTheme } from './${s}/cssTheme.d.ts';\n`,d.toImport+=`import type { ${t}CssVars } from './${s}/cssVars.d.ts';\n`,d.toImport+=`import type { ${t}CssClassNames } from './${s}/cssClassNames.d.ts';\n`,d.toImport+=`import type { ${t}CssAvailableComponents } from './${s}/cssAvailableComponents.d.ts';\n`,d.toImport+=`import type { ${t}CssGlobalStyles } from './${s}/cssGlobalStyles.d.ts';\n`,d.toImport+=`import type { ${t}CssMediaQueries } from './${s}/cssMediaQueries.d.ts';\n`,a>0&&(d.cssThemes+=" & ",d.cssVars+=" & ",d.cssClassNames+=" & ",d.cssAvailableComponents+=" & ",d.cssGlobalStyles+=" & ",d.cssMediaQueries+=" & "),d.cssThemes+=`${t}CssTheme`,d.cssVars+=`${t}CssVars`,d.cssClassNames+=`${t}CssClassNames`,d.cssAvailableComponents+=`${t}CssAvailableComponents`,d.cssGlobalStyles+=`${t}CssGlobalStyles`,d.cssMediaQueries+=`${t}CssMediaQueries`)}),p.cssThemes+="}",p.cssVars+="}",p.cssClassNames+="}",p.cssAvailableComponents+="}",p.cssGlobalStyles+="}",p.cssMediaQueries+="}";const $=`${p.toImport}\n${p.cssThemes}\n${p.cssVars}\n${p.cssClassNames}\n${p.cssAvailableComponents}\n${p.cssGlobalStyles}\n${p.cssMediaQueries}\n`;if(await t(a.join(r,"stats/stats.js"),$,"stats.js"),e){d.cssThemes+=";",d.cssVars+=";",d.cssClassNames+=";",d.cssAvailableComponents+=";",d.cssGlobalStyles+=";",d.cssMediaQueries+=";";const s=`${d.toImport}\n${d.cssThemes}\n${d.cssVars}\n${d.cssClassNames}\n${d.cssAvailableComponents}\n${d.cssGlobalStyles}\n${d.cssMediaQueries}\n`;await t(a.join(r,"stats/stats.d.ts"),s,"stats.d.ts")}},m=async({dir:s,providerDocs:o,declarationHelp:l,providerName:i,compilerType:r})=>{await n({providerDocs:o,declarationHelp:l,compilerType:r,dir:s});const c=a.resolve(__dirname,"./template/providerTemplate.js");let m=await e.readFile(c,"utf8");if(m=m.replace(/\$_Provider_\$/g,i),await t(`${s}/${i}.js`,m,`${i}.js`),l){const o=a.resolve(__dirname,"./template/providerTemplate.d.ts");let l=await e.readFile(o,"utf8");l=l.replace(/\$_Provider_\$/g,i),await t(`${s}/${i}.d.ts`,l,`${i}.d.ts`)}};module.exports={generateProvider:m};
1
+ const s=require("fs"),e=require("fs").promises,a=require("path"),{writeDoc:t}=require("../writeDoc/writeDoc.utils"),{compilerTypeValid:o}=require("../../constants"),{simplifyName:l}=require("../simplifyName/simplifyName.utils"),i=(s="provider")=>s.charAt(0).toLowerCase()+s.slice(1),r=s=>`export default {${s}}`,c=(s,e)=>`export interface ${e} {${s}}\n`,n=async({dir:s,content:e,fileName:o,theme:l,declare:i=null})=>{const n=i?c(e,i):r(e),m=`stats/${l}/${o}`,p=a.resolve(s,m);await t(p,n,m)},m=async({providerDocs:s,declarationHelp:e,compilerType:i,dir:r})=>{const c=Object.entries(s),m=[];for(const[s,a]of c){m.push(s);const t=a.beforeFiles?.length>0,c=a.afterFiles?.length>0,p=t?`before:${a.beforeFiles}`:"",d=c?`after:${a.afterFiles}`:"",$=t||c;let C=$?"foreign:{":"";C+=p,C+=p.length&&d.length?",":"",C+=d,C+=$?"}":"";const b="cssPath"in a?`'${s}':{css:'${a.cssPath}',${C}}`:"";if(await n({dir:r,content:b,fileName:"cssTheme.js",theme:s}),e){const e="cssPath"in a?`'${s}':{css:string,foreign?:{before?:string[],after?:string[]}}`:"",t=`${l(s)}CssTheme`;await n({dir:r,content:e,fileName:"cssTheme.d.ts",theme:s,declare:t})}if(i!==o.foundationOnly){const t="classNames"in a?`'${s}':{${a.classNames.doc}}`:"";await n({dir:r,content:t,fileName:"cssClassNames.js",theme:s});const o="availableComp"in a?`'${s}':{${a.availableComp.doc}}`:"";if(await n({dir:r,content:o,fileName:"cssAvailableComponents.js",theme:s}),e){const e="classNames"in a?`'${s}':{${a.classNames.declare}}`:"",t=`${l(s)}CssClassNames`;await n({dir:r,content:e,fileName:"cssClassNames.d.ts",theme:s,declare:t});const o="availableComp"in a?`'${s}':{${a.availableComp.declare}}`:"",i=`${l(s)}CssAvailableComponents`;await n({dir:r,content:o,fileName:"cssAvailableComponents.d.ts",theme:s,declare:i})}}if(i!==o.componentOnly){const t="variables"in a?`'${s}':{${a.variables.doc}}`:"";await n({dir:r,content:t,fileName:"cssVars.js",theme:s});const o="globalStyles"in a?`'${s}':{${a.globalStyles.doc}}`:"";await n({dir:r,content:o,fileName:"cssGlobalStyles.js",theme:s});const i="mediaQueries"in a?`'${s}':{${a.mediaQueries.doc}}`:"";if(await n({dir:r,content:i,fileName:"cssMediaQueries.js",theme:s}),e){const e="variables"in a?`'${s}':{${a.variables.declare}}`:"",t=`${l(s)}CssVars`;await n({dir:r,content:e,fileName:"cssVars.d.ts",theme:s,declare:t});const o="globalStyles"in a?`'${s}':{${a.globalStyles.declare}}`:"",i=`${l(s)}CssGlobalStyles`;await n({dir:r,content:o,fileName:"cssGlobalStyles.d.ts",theme:s,declare:i});const c="mediaQueries"in a?`'${s}':{${a.mediaQueries.declare}}`:"",m=`${l(s)}CssMediaQueries`;await n({dir:r,content:c,fileName:"cssMediaQueries.d.ts",theme:s,declare:m})}}}const p={toImport:"",cssThemes:"export const cssThemes = {",cssVars:"export const cssVars = {",cssClassNames:"export const cssClasses = {",cssAvailableComponents:"export const cssAvailableComponents = {",cssGlobalStyles:"export const cssGlobalStyles = {",cssMediaQueries:"export const cssMediaQueries = {"},d={toImport:"",cssThemes:"export declare const cssThemes: ",cssVars:"export declare const cssVars: ",cssClassNames:"export declare const cssClasses: ",cssAvailableComponents:"export declare const cssAvailableComponents: ",cssGlobalStyles:"export declare const cssGlobalStyles: ",cssMediaQueries:"export declare const cssMediaQueries: "};m.forEach((s,a)=>{const t=l(s);p.toImport+=`import ${t}CssTheme from './${s}/cssTheme.js';\n`,p.toImport+=`import ${t}CssVars from './${s}/cssVars.js';\n`,p.toImport+=`import ${t}CssClassNames from './${s}/cssClassNames.js';\n`,p.toImport+=`import ${t}CssAvailableComponents from './${s}/cssAvailableComponents.js';\n`,p.toImport+=`import ${t}CssGlobalStyles from './${s}/cssGlobalStyles.js';\n`,p.toImport+=`import ${t}CssMediaQueries from './${s}/cssMediaQueries.js';\n`,p.cssThemes+=`...${t}CssTheme,`,p.cssVars+=`...${t}CssVars,`,p.cssClassNames+=`...${t}CssClassNames,`,p.cssAvailableComponents+=`...${t}CssAvailableComponents,`,p.cssGlobalStyles+=`...${t}CssGlobalStyles,`,p.cssMediaQueries+=`...${t}CssMediaQueries,`,e&&(d.toImport+=`import type { ${t}CssTheme } from './${s}/cssTheme.d.ts';\n`,d.toImport+=`import type { ${t}CssVars } from './${s}/cssVars.d.ts';\n`,d.toImport+=`import type { ${t}CssClassNames } from './${s}/cssClassNames.d.ts';\n`,d.toImport+=`import type { ${t}CssAvailableComponents } from './${s}/cssAvailableComponents.d.ts';\n`,d.toImport+=`import type { ${t}CssGlobalStyles } from './${s}/cssGlobalStyles.d.ts';\n`,d.toImport+=`import type { ${t}CssMediaQueries } from './${s}/cssMediaQueries.d.ts';\n`,a>0&&(d.cssThemes+=" & ",d.cssVars+=" & ",d.cssClassNames+=" & ",d.cssAvailableComponents+=" & ",d.cssGlobalStyles+=" & ",d.cssMediaQueries+=" & "),d.cssThemes+=`${t}CssTheme`,d.cssVars+=`${t}CssVars`,d.cssClassNames+=`${t}CssClassNames`,d.cssAvailableComponents+=`${t}CssAvailableComponents`,d.cssGlobalStyles+=`${t}CssGlobalStyles`,d.cssMediaQueries+=`${t}CssMediaQueries`)}),p.cssThemes+="}",p.cssVars+="}",p.cssClassNames+="}",p.cssAvailableComponents+="}",p.cssGlobalStyles+="}",p.cssMediaQueries+="}";const $=`${p.toImport}\n${p.cssThemes}\n${p.cssVars}\n${p.cssClassNames}\n${p.cssAvailableComponents}\n${p.cssGlobalStyles}\n${p.cssMediaQueries}\n`;if(await t(a.join(r,"stats/stats.js"),$,"stats.js"),e){d.cssThemes+=";",d.cssVars+=";",d.cssClassNames+=";",d.cssAvailableComponents+=";",d.cssGlobalStyles+=";",d.cssMediaQueries+=";";const s=`${d.toImport}\n${d.cssThemes}\n${d.cssVars}\n${d.cssClassNames}\n${d.cssAvailableComponents}\n${d.cssGlobalStyles}\n${d.cssMediaQueries}\n`;await t(a.join(r,"stats/stats.d.ts"),s,"stats.d.ts")}},p=async({dir:s,providerDocs:o,declarationHelp:l,providerName:r,compilerType:c})=>{await m({providerDocs:o,declarationHelp:l,compilerType:c,dir:s});const n=a.resolve(__dirname,"./template/providerTemplate.js");let p=await e.readFile(n,"utf8");const d=i(r);if(p=p.replace(/\$_Provider_\$/g,r),await t(a.join(s,`${d}.js`),p,`${d}.js`),l){const o=a.resolve(__dirname,"./template/providerTemplate.d.ts");let l=await e.readFile(o,"utf8");l=l.replace(/\$_Provider_\$/g,r),await t(a.join(s,`${d}.d.ts`),l,`${d}.d.ts`)}};module.exports={generateProvider:p};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bernova",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "The best way to write CSS with Javascript syntax",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -19,6 +19,15 @@ const { writeDoc } = require('../writeDoc/writeDoc.utils');
19
19
  const { compilerTypeValid } = require('../../constants');
20
20
  const { simplifyName } = require('../simplifyName/simplifyName.utils');
21
21
 
22
+ /**
23
+ * Convert the first character of a string to lowercase
24
+ * @param {string} str - input string
25
+ * @return {string} - string with first character in lowecase
26
+ */
27
+ const lowerCaseFirstChar = (str = 'provider') => {
28
+ return str.charAt(0).toLowerCase() + str.slice(1);
29
+ }
30
+
22
31
  /**
23
32
  * Return the content wrapped in an anonymous object
24
33
  * to avoid polluting the global scope
@@ -285,8 +294,9 @@ const generateProvider = async ({
285
294
  const providerDir = path.resolve(__dirname, './template/providerTemplate.js');
286
295
  let template = await fs.readFile(providerDir, 'utf8');
287
296
  //* customize provider name
297
+ const providerFileName = lowerCaseFirstChar(providerName);
288
298
  template = template.replace(/\$_Provider_\$/g, providerName);
289
- await writeDoc(`${dir}/${providerName}.js`, template, `${providerName}.js`);
299
+ await writeDoc(path.join(dir, `${providerFileName}.js`), template, `${providerFileName}.js`);
290
300
 
291
301
  if (declarationHelp) {
292
302
  //? write provider declare document
@@ -297,9 +307,9 @@ const generateProvider = async ({
297
307
  let templateDeclare = await fs.readFile(providerDirDeclare, 'utf8');
298
308
  templateDeclare = templateDeclare.replace(/\$_Provider_\$/g, providerName);
299
309
  await writeDoc(
300
- `${dir}/${providerName}.d.ts`,
310
+ path.join(dir, `${providerFileName}.d.ts`),
301
311
  templateDeclare,
302
- `${providerName}.d.ts`
312
+ `${providerFileName}.d.ts`
303
313
  );
304
314
  }
305
315
  };