slavery-js
Version:
A simple clustering app that allows you to scale an application on multiple thread, containers or machines
1 lines • 2.68 kB
Source Map (JSON)
{"version":3,"sources":["../../src/app/makeProxyObject.ts"],"sourcesContent":["/* \n * this code will serve as the entry point for the applacation\n * it allows the api to have a syntax of:\n *\n * proxy\n * .master( (master) => {\n * console.log(master)\n * console.log('some function')\n * })\n * .slave( slave => {\n * console.log('something else', slave)\n * }, 9090, 'someArgString')\n * .yetAnotherMethod();\n */\n\n\n/* this function will make the proxy object which takes a callback\n * and returns a proxy object\n * @param {function} callback - the callback to be called\n */\n\n// this is a promise \ntype proxyObjectCallback = (methodCalled: string, param1: any, param2?: any, param3?: any) => void | Promise<void>;\n\nlet proxy: ProxyConstructor;\n\nconst makeProxyObject = (callback: proxyObjectCallback) => {\n // Create a proxy object handler the given callbakcs\n const proxyObjecHandler = makeProxyObjecHandler(callback);\n proxy = new Proxy({}, proxyObjecHandler);\n return proxy;\n}\n\nconst makeProxyObjecHandler = (callback: proxyObjectCallback) => ({\n get(target: any, prop: any) {\n // this will take\n return (args: any, args2?: any, args3?: any) => {\n let method = prop;\n let param1 = args;\n let param2 = args2;\n let param3 = args3;\n // if the first argument not a function or an object\n if(typeof args !== 'function' && typeof args !== 'object')\n throw new Error('first parameter must be a function or an object')\n if(args2 !== undefined && typeof args2 !== 'object') \n throw new Error('second parameter must be an object')\n if(args3 !== undefined && typeof args3 !== 'object')\n throw new Error('third parameter must be an object')\n // run the passed callback\n callback(method, param1, param2, param3);\n // return the proxy object\n return proxy;\n };\n }\n});\n\nexport default makeProxyObject;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBA,IAAI;AAEJ,MAAM,kBAAkB,CAAC,aAAkC;AAEvD,QAAM,oBAAoB,sBAAsB,QAAQ;AACxD,UAAQ,IAAI,MAAM,CAAC,GAAG,iBAAiB;AACvC,SAAO;AACX;AAEA,MAAM,wBAAwB,CAAC,cAAmC;AAAA,EAC9D,IAAI,QAAa,MAAW;AAExB,WAAO,CAAC,MAAW,OAAa,UAAgB;AAC5C,UAAI,SAAS;AACb,UAAI,SAAS;AACb,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,UAAG,OAAO,SAAS,cAAc,OAAO,SAAS;AAC7C,cAAM,IAAI,MAAM,iDAAiD;AACrE,UAAG,UAAU,UAAa,OAAO,UAAU;AACvC,cAAM,IAAI,MAAM,oCAAoC;AACxD,UAAG,UAAU,UAAa,OAAO,UAAU;AACvC,cAAM,IAAI,MAAM,mCAAmC;AAEvD,eAAS,QAAQ,QAAQ,QAAQ,MAAM;AAEvC,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;AAEA,IAAO,0BAAQ;","names":[]}