/**
 * 前端业务逻辑插件
 * 将「运行前端 Logic 表达式」注册为 Vue 全局方法，可在任意组件或配置脚本中调用。
 * 使用方式：
 *   - 在组件中：this.$runFrontLogic('logicName', { key: value })
 *   - 返回 Promise，可 .then() / .catch()
 *
 * 运行模式（第三个参数）：
 *   - this.$runFrontLogic('logicName', param) - 普通模式，每次都执行
 *   - this.$runFrontLogic('logicName', param, 'ignore') - 忽略重复，如果已在运行则忽略后续调用
 *   - this.$runFrontLogic('logicName', param, 'cancel') - 取消前一个，杀死之前的，执行当前的
 */
import LogicRunner from '@vue2-client/logic/LogicRunner'

const runFrontLogic = (logicName, param, mode) => LogicRunner.run(logicName, param, mode)

const FrontLogicPlugin = {
  install (Vue) {
    Vue.$runFrontLogic = runFrontLogic
    Vue.prototype.$runFrontLogic = runFrontLogic
  }
}

export default FrontLogicPlugin
