easy-api.ts
Version:
A powerful library to create your own API with ease.
1 lines • 1.08 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.Compiler=void 0;let Readers_1=require("./Readers");class Compiler{pack(e,r=!0,l=!0){let a=(!0===r?Readers_1.ReaderV1:Readers_1.ReaderV2).read(e,l),t=[],u={value:"",type:"TEXT"};for(let e=0;e<a.length;e++){var s=a[e];(""+s.type).includes("FUNCTION")?void 0===a[e+1]||"TEXT"===a[e+1].type?(u.value+=s.value,u.type="FN",t.push(u),u={value:"",type:"TEXT"}):u.value+=s.value:void 0===a[e+1]||(""+a[e+1].type).includes("FUNCTION")?(u.value+=s.value,t.push(u),u={value:"",type:"TEXT"}):u.value+=s.value}return t}restructToken(e){var r=e.match(/\$\w+/g)?.[0]??"$__VOID__",t=e.includes("[")&&e.includes("]")?e.slice(e.indexOf("[")+1,e.lastIndexOf("]")):"$__NULL__",u=[];if(t&&"$__NULL__"!==t){let r=0,l="",a=Array.from(t);for(let e=0;e<a.length;e++){var s=a[e];"["===s?r++:"]"===s&&r--,";"===s&&0===r?("]"===a[e+1]?u.push(""):u.push(l),l=""):l+=s}""!==l&&u.push(l)}return{name:r,all:e,inside:t,fields:u}}remap(e,r=!0,l){return this.pack(e,r).map(e=>"TEXT"===e.type?e:this.restructToken(""+e.value))}}exports.Compiler=Compiler;