UNPKG

alloy-worker

Version:

面向事务的高可用 Web Worker 通信框架

52 lines (43 loc) 1.52 kB
/* * 事务文件名校验和重名校验 */ const fs = require('fs'); const config = require('./config'); const checkName = (actionName) => { if (!actionName) { console.error('事务名称不能为空.'); return false; } // 事务名称规范检查 const nameVeridate = (actionName) => { if (/^[-_a-zA-Z]*$/.test(actionName)) { return true; } return false; }; const isNameVeridate = nameVeridate(actionName); if (!isNameVeridate) { console.error('请使用合法的事务名称作为参数.'); console.error('合法名称为: 字母, `_`, `-` 的组合.'); console.error('如: `worker-ability-test`, `cookie` 等.'); return false; } // 事务是否已经存在检查 const actionExist = (actionName) => { const existedActionsName = fs.readdirSync(config.mainThreadTargetDir, 'utf-8'); return existedActionsName.some((name) => { const nameWithoutSuffix = name.toLowerCase().replace(/\.ts$/, ''); return ( actionName.toLowerCase() === nameWithoutSuffix || actionName.toLowerCase().replace(/[_-]/g, '') === nameWithoutSuffix.replace(/[_-]/g, '') ); }); }; const isActionExist = actionExist(actionName); if (isActionExist) { console.error(`事务 \`${actionName}\` 已经存在, 请换个名称.`); return false; } return true; }; module.exports = checkName;