sdin
Version:
JavaScript package builder.
2 lines • 3.22 kB
JavaScript
import i from"@babel/runtime/helpers/defineProperty";function r(e,t){var s,i=Object.keys(e);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(e),t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),i.push.apply(i,s)),i}function a(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?r(Object(s),!0).forEach(function(t){i(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):r(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}import{keyBy as s,omit as t}from"lodash";import{SdinAbstractConfig as e}from"./abstract-config";import{filterNotNone as n}from"../utils/array";import{replaceByCode as p}from"../utils/string";import{APP_PAGE_NAME_EXP as o,RELATIVE_URL_PATH_EXP as l}from"../tools/check";import{matchRegExpOrThrow as h}from"../utils/check";import{SdinConfigError as c}from"../tools/errors";import{blue as m,magenta as g,yellow as u}from"../utils/print";import{fileExistOrThrow as f,resolveExtensionSync as S,resolvePosixSlash as y,TJSX_FILE_EXTENSIONS as O}from"../utils/path";let b=()=>"";class d extends e{constructor(t,e,s){super(t,e,s),this.name=s.name,this.title=s.title,this.index=s.index?e.withSrc(s.index):S(e.src,this.name+"/index",O),this.path=y(s.path||this.name,!1,!1),this.metas=this.assignLabels(e.params.metas,s.metas),this.links=this.assignLabels(e.params.links,s.links),this.styles=this.assignLabels(e.params.styles,s.styles),this.scripts=this.assignLabels(e.params.scripts,s.scripts),this.skeleton=s.skeleton||e.params.skeleton||b,this.datas=a(a(a({},this.parent.datas),this.params.datas),{},{SDIN_PAGE_NAME:this.name,SDIN_PAGE_TITLE:this.title,SDIN_PAGE_PATH:e.path+this.path})}async validate(){var t,e;if(await super.validate(),h("page name",this.name,o),h("page path",this.path,l),!this.index)throw t=this.parent.withSrc(this.name,"index.(tsx|ts|jsx|js)"),e="module ".concat(u(this.parent.name)," page ").concat(g(this.name)),new c(c.APP_PAGE_INDEX_IS_NOT_EXIST,"".concat(e,' index fille "').concat(m(t),'" is not exist.'));await f(this.index)}getHtmlTitle(){return this.parent.title?"".concat(this.title," - ").concat(this.parent.title):this.title}getHtmlDatas(){return t(this.datas,["SDIN_PROJECT_AUTHOR_NAME","SDIN_PROJECT_AUTHOR_EMAIL"])}getMetaHtmlString(){return this.toHtmlString("meta",this.metas)}getLinkHtmlString(){return this.toHtmlString("link",this.links)}getStyleHtmlString(){return this.toHtmlString("link",this.styles)}getScriptHtmlString(t){return this.toHtmlString("script",t||this.scripts)}getSkeleton(){return this.skeleton(this)}assignLabels(t,e){return Object.values(Object.assign(s(n(t),"key"),s(n(e),"key")))}toHtmlString(e,s){var a=["script"].includes(e),n=[];for(let t=0,r;t<s.length;t++){r=s[t];var o=[];let i;var l,h=Object.keys(r);for(let t=0,e,s;t<h.length;t++)"key"!==(e=h[t])&&(s=r[e],"children"===e?i=p(s,this.datas):o.push(!0===s?e:e+'="'+p(s,this.datas)+'"'));o.length<=0||(l="<"+e+" "+o.join(" "),i?n.push(l+">"+i+"</"+e+">"):n.push(a?l+"></"+e+">":l+"/>"))}return n.join("\n")}}export{d as SdinApplicationPage};
//# sourceMappingURL=application-page.js.map