package com.brilliance.isc.common.validator.es.resource;

import com.brilliance.isc.common.validator.es.support.impl.EsScriptValidator;
import com.brilliance.isc.common.validator.es.utils.EsConstant;
import com.brilliance.isc.common.validator.es.vo.EnvDespVo;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * 按照交易、模块输出JS文件，供Vue调用
 * @author fukai
 */
public abstract class AbstractEsScriptResource {

    @Autowired
    private EsScriptValidator esScriptValidator;

    /**
     * 输出某交易下的校验规则
     * @param transName 交易名/规则名
     * @return
     */
    public String outputScript( String transName){
        EnvDespVo envDespVo = EnvDespVo.builder()
                .scriptName(transName)
                .terminal(EsConstant.VUE_TERMINAL)
                .subtype(EsConstant.JS_TYPE).build();
        return esScriptValidator.outputScript(envDespVo,null);
    }

    /**
     * 输出Es6格式的module
     * @return Es6 module
     */
    public String outputModuleScript(String module, List<String> transList,String loader){
        return esScriptValidator.outputEsModuleScript(module,transList,loader);
    }

}
