UNPKG

flexbiz-server

Version:

Flexible Server

6 lines (5 loc) 2 kB
const axios=require("axios"),moment=require("moment"),numeral=require("numeral");require("../global"); const {evalute}=require("../libs/utils"),{workerData}=require("worker_threads"),_=require("lodash"),v8=require("v8"),{postToParent,onParentMessage}=require("./worker-utils"),runWebhook=async $msg$$=>{if(!$msg$$.webhook_configs||!$msg$$.webhook_configs.url)return postToParent({error:"configs webhook is not valid"});console.info("running webhook",$msg$$.webhook_configs.url,$msg$$.webhook_configs.action);let $data$$=$msg$$.data,$custom_data_send$$=$msg$$.webhook_configs.custom_data_send;if($custom_data_send$$)try{let $str_func$$= $custom_data_send$$;if($str_func$$.indexOf("async ")>=0)return postToParent({error:"Async is not allow to use when customing data"});$str_func$$.indexOf("return ")!==0&&($str_func$$=`return ${$str_func$$}`);$data$$=evalute($str_func$$,{data:$data$$,moment,numeral})}catch($e$$){return Logger.error($e$$,$custom_data_send$$),postToParent({error:$e$$.message||$e$$})}try{axios.post($msg$$.webhook_configs.url,$data$$).then(function($response$$){postToParent({result:$response$$.data,id_task:$msg$$.id_task})}).catch(function($error$$){postToParent({error:$error$$.data|| $error$$.message||$error$$,id_task:$msg$$.id_task})})}catch($e$$){postToParent({error:$e$$,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}runWebhook($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$$.webhook_configs&&runWebhook($msg$$)})();