UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

74 lines (73 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidPluginResource = exports.isValidPluginVersion = exports.isValidPluginId = exports.isValidDirectoryName = exports.isValidURL = void 0; const url_1 = require("url"); const REG_DIRECTORY_NAME = /^[a-zA-Z0-9_-]+$/; // 目录名称只能包含字母、数字、下划线和连字符 const REG_PLUGIN_ID = /^MII_[0-9A-Z]{16}$/; // 以 MII_ 开头,16位大写字母或数字,适配马来迁移 const REG_PLUGIN_VERSION = /^([0-9]|[1-9]\d*).([0-9]|[1-9]\d*).([0-9]|[1-9]\d*)$/; function isString(val) { return typeof val === 'string' || val instanceof String; } /** * 是否是合法的 URL * @param url * @returns boolean */ function isValidURL(url) { if (!isString(url)) { return false; } try { new url_1.URL(url); return true; } catch (e) { return false; } } exports.isValidURL = isValidURL; /** * 是否是合法的目录名称 * @param name * @returns */ function isValidDirectoryName(name) { return isString(name) ? REG_DIRECTORY_NAME.test(name) : false; } exports.isValidDirectoryName = isValidDirectoryName; /** * 是否是合法的插件 id * @param pluginId * @returns boolean */ function isValidPluginId(pluginId) { return isString(pluginId) ? REG_PLUGIN_ID.test(pluginId) : false; } exports.isValidPluginId = isValidPluginId; /** * 是否是合法的插件版本号,x.y.z * @param version 版本号 * @returns boolean */ function isValidPluginVersion(version) { return isString(version) ? REG_PLUGIN_VERSION.test(version) : false; } exports.isValidPluginVersion = isValidPluginVersion; /** * 是否是合法的插件资源配置项 * @param resource * @returns */ function isValidPluginResource(resource) { if (typeof resource !== 'object') { return false; } if (!('id' in resource) || !isString(resource.id)) { return false; } if (!('entry' in resource) || !isString(resource.entry)) { return false; } return true; } exports.isValidPluginResource = isValidPluginResource;