@metadev/essential-core
Version:
Core SDK Metamodeling Framework. Essential
5 lines • 4.14 kB
JavaScript
;var v=Object.defineProperty;var P=(r,e,t)=>e in r?v(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var a=(r,e)=>v(r,"name",{value:e,configurable:!0});var d=(r,e,t)=>P(r,typeof e!="symbol"?e+"":e,t);var O=function(r){return r[r.None=0]="None",r[r.Info=1]="Info",r[r.Warning=2]="Warning",r[r.Error=3]="Error",r}({}),c=function(r){return r[r.PreOrder=0]="PreOrder",r[r.PostOrder=1]="PostOrder",r}({});var f=class f{static load(e,t){t();}static save(e,t,s){s();}static getHashCode(e){if(e==null)return 0;let t=0,s=0,i=e.length;for(;s<i;)t=(t<<5)-t+e.charCodeAt(s++)<<0;return t}static isModelElement(e){return !e||typeof e!="object"||e.length>=0?!1:Object.prototype.hasOwnProperty.call(e,"_meta")}static isModelElementCollection(e){if(!e||typeof e!="object")return !1;if(Object.prototype.hasOwnProperty.call(e,"length")){let t=e;if(t.length>0&&t[0]){let s=t[0];return f.isModelElement(s)}return !0}return !1}static asModelElement(e){return f.isModelElement(e)?e:null}static asModelElementCollection(e){return f.isModelElementCollection(e)?e:null}static collectionToJson(e){if(!e)return "null";let t=e.map(i=>i.toJson());return t.length===0?"[]":"["+t.reduce((i,l)=>i+","+l)+"]"}static toEssential(e){let t="";return e?(e.visit(c.PreOrder,s=>{t+=s.toEssential();}),t):""}static refToEssential(e){return e.getId()}static collectionToEssential(e){return !e||e.length===0?"[]":"["+e.map(i=>f.refToEssential(i)).reduce((i,l)=>i+", "+l)+"]"}static primitiveTypeToEssential(e){return e?e===!0?"true":e===!1?"false":typeof e=="number"?e.toString():'"'+e.toString()+'"':null}};a(f,"Essential");var o=f;var g=class g{seq=0;prefix="";constructor(e="e"){this.prefix=e;}generateUniqueId(){return this.prefix+this.seq++}reset(){this.seq=0;}};a(g,"Sequencer");var p=g,n=class n{static generateUniqueId(e="e"){return n.lazyInit(e),n.seq.generateUniqueId()}static reset(e){n.seq=void 0,n.lazyInit(e);}static lazyInit(e){n.seq||(n.prefix=e||"e",n.seq=new p(n.prefix));}};a(n,"StaticSequencer"),d(n,"seq"),d(n,"prefix","e");var m=n;var x=class x{_meta;constructor(e={}){e=e||{},this._meta={id:e.id||m.generateUniqueId("e")},e.location&&(this._meta.location=e.location);}getId(){return this._meta.id}getTypeName(){let e=this.constructor.toString().match(/\w+/g);return e&&e.length>2?e[1]:""}toString(){return this.getTypeName()}identity(){return this.getTypeName()+"_"+this.getId()}sameConcept(e){return e?this.identity()===e.identity():!1}equals(e){return e?this.hashCode()===e.hashCode():!1}hashCodeElement(){return o.getHashCode(this.getTypeName()+this.getId())}hashCode(){let e=0;return this.visit(c.PreOrder,t=>{e^=t.hashCodeElement(),e=e<<3;}),e}visit(e,t){e===c.PreOrder?(this.visitNode(t),this.visitChildren(e,t)):e===c.PostOrder&&(this.visitChildren(e,t),this.visitNode(t));}toJson(){let e="{",t="";for(let s in this)if(Object.prototype.hasOwnProperty.call(this,s)&&s!=="_meta"){let i=this[s],l="",h=o.asModelElement(i),N=o.asModelElementCollection(i);N?l=o.collectionToJson(N):h?l=h.toJson():l=JSON.stringify(i),e+=t+'"'+s+'":'+l,t=",";}return e+"}"}toEssential(){let e=this.getTypeName()+" "+this.getId()+` {
`;for(let t in this)if(Object.prototype.hasOwnProperty.call(this,t)&&t!=="_meta"){let s=this[t],i="",l=o.asModelElement(s),h=o.asModelElementCollection(s);h?i=o.collectionToEssential(h):l?i=o.refToEssential(l):i=o.primitiveTypeToEssential(s)||"",e+=" "+t+" = "+i+`;
`;}return e+`}
`}visitNode(e){e(this);}visitChildren(e,t){}validate(){return []}};a(x,"ModelElementBase");var u=x;var y=class y extends u{modelName;version="0";constructor(e={}){super(e),e.modelName&&(this.modelName=e.modelName),e.version&&(this.version=e.version);}toString(){return this.getTypeName()+` ${this.modelName} v. ${this.version}`}validate(){return []}};a(y,"ModelBase");var E=y;var C=class C{type;message;element;location;constructor(e=O.Error,t,s,i){this.type=e,this.message=t,this.element=s,this.location=i;}};a(C,"ErrorBase");var I=C;exports.ErrorBase=I;exports.ErrorType=O;exports.Essential=o;exports.ModelBase=E;exports.ModelElementBase=u;exports.VisitMode=c;//# sourceMappingURL=index.cjs.map
//# sourceMappingURL=index.cjs.map