UNPKG

easy-api.ts

Version:

A powerful library to create your own API with ease.

1 lines 2.69 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.Data=void 0;let FunctionManager_1=require("../managers/FunctionManager"),Interpreter_1=require("../core/Interpreter");class Data{server;break;code;comments;functions;function;interpreter;parent;req;res;reverse;startTime;stream;#rs;#_vars;#_internal_vars;#locale;#timeZone;#date;constructor(e,t,r,s){this.server=r?.server||null,this.break=!1,this.code=null,this.comments=!1,this.functions=new FunctionManager_1.FunctionManager(t),this.function=null,this.interpreter=new Interpreter_1.Interpreter,this.parent=null,this.req=r?.request||null,this.res=r?.reply||null,this.reverse=e,this.startTime=performance.now(),this.stream=r?.stream||null,this.#_vars={},this.#_internal_vars={},this.#rs=!1,this.#locale=s?.locale??"en-US",this.#timeZone=s?.timeZone??"America/New_York",t=(new Date).toLocaleDateString(this.#locale,{timeZone:this.#timeZone}),this.#date=new Date(t)}deleteVar(e){return delete this.#_vars[e],this}deleteInternalVar(e){return delete this.#_internal_vars[e],this}extend(e,t){var r=new Data(this.reverse,this.functions.entries(),{server:this.server,request:this.req,reply:this.res,stream:this.stream}).setParent(this).setStart(this.startTime).stopCode(this.break);if(e)for(var[s,n]of Object.entries(e))r.setVar(s,n);if(t)for(var[a,i]of Object.entries(t))r.setInternalVar(a,i);return r}internalVarExists(e){return Object.prototype.hasOwnProperty.call(this.#_internal_vars,e)}overrideInternals(e){if(null===e)this.#_internal_vars={};else for(var[t,r]of Object.entries(e))this.setInternalVar(t,r);return this}overrideVars(e){if(null===e)this.#_vars={};else for(var[t,r]of Object.entries(e))this.setVar(t,r);return this}setInternalVar(e,t){return null!==this.parent&&this.parent.internalVarExists(e)&&this.parent.setInternalVar(e,t),this.#_internal_vars[e]=t,this}setLocale(e){return this.#locale=e,this}setTimeZone(e){return this.#timeZone=e,this}setVar(e,t){return null!==this.parent&&this.parent.varExists(e)&&this.parent.setVar(e,t),this.#_vars[e]=t,this}getInternalVar(e){return this.#_internal_vars[e]??null}getVar(e){return this.#_vars[e]??null}setParent(e){return this.parent=e,this}setStart(e){return this.startTime=e,this}stopCode(e=!0){return this.break=e,this}varExists(e){return Object.prototype.hasOwnProperty.call(this.#_vars,e)}hasInstance(e,t){return void 0!==this.#_internal_vars[e]&&this.#_internal_vars[e]instanceof t}getInstance(e,t){return this.hasInstance(e,t)?this.#_internal_vars[e]:null}get date(){return this.#date}get dots(){return this.#rs}get locale(){return this.#locale}get timeZone(){return this.#timeZone}get _(){return this.#_vars}get __(){return this.#_internal_vars}}exports.Data=Data;