flexbiz-server
Version:
Flexible Server
6 lines (5 loc) • 1.51 kB
JavaScript
const axios=require("axios"),moment=require("moment"),numeral=require("numeral"),{workerData}=require("worker_threads"),async=require("async"),_=require("lodash");require("../global");
const {evalute}=require("../libs/utils"),v8=require("v8"),{postToParent,onParentMessage}=require("./worker-utils"),runScript=async $msg$$=>{try{var $data_error$$=$msg$$.script;if(!$data_error$$)return postToParent({error:"Script is empty"});if($data_error$$.indexOf("async ")>=0)return postToParent({error:"async function is not allow"});await evalute(`return (async ()=>{
${$data_error$$}
})`,{moment,numeral,axios,async})();postToParent({result:"OK",id_task:$msg$$.id_task})}catch($e$$){$data_error$$=$e$$.error||$e$$.message||$e$$,$data_error$$=$data_error$$+"\nScript: \n"+$msg$$.script,postToParent({error:$data_error$$,id_task:$msg$$.id_task})}};onParentMessage($msg$$=>{if($msg$$){if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){Logger.error($e$$);postToParent({error:"msg is not valid"});return}runScript($msg$$)}else postToParent({error:"msg is not valid"})});
workerData&&(()=>{let $msg$$=workerData;if(Buffer.isBuffer(workerData)||workerData instanceof Uint8Array)try{$msg$$=v8.deserialize(workerData)}catch($e$$){return Logger.error("[Worker] L\u1ed7i deserialize task:",$e$$),postToParent({error:"Deserialization failed"})}if(_.isString($msg$$))try{$msg$$=JSON.parse($msg$$)}catch($e$$){Logger.error($e$$);postToParent({error:"msg is not valid"});return}$msg$$.configs&&runScript($msg$$)})();