UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

67 lines (66 loc) 3.38 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.setLocalPluginConfig = exports.getLocalPluginConfig = exports.isValidPluginConfig = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = require("fs-extra"); const logger_1 = require("./utils/logger"); const get_project_directory_1 = require("./utils/get-project-directory"); const validate_tools_1 = require("./utils/validate-tools"); const utils_1 = require("./v1/utils"); const PLUGIN_CONFIG_FILE = 'plugin.config.json'; function isValidPluginConfig(config) { const errMsgs = []; if (!(0, validate_tools_1.isValidPluginId)(config.pluginId)) { errMsgs.push(`The pluginId "${config.pluginId}" is not valid, please check and retry.`); } if (!config.pluginSecret) { errMsgs.push(`The pluginSecret is not valid, please check and retry.`); } if (!(0, validate_tools_1.isValidURL)(config.siteDomain)) { errMsgs.push(`The siteDomain "${config.siteDomain}" is not valid, please check and retry.`); } if (!Array.isArray(config.resources) || config.resources.some(resource => !(0, validate_tools_1.isValidPluginResource)(resource))) { errMsgs.push(`The resources is not valid, please check and retry.`); } return [errMsgs.length === 0, errMsgs]; } exports.isValidPluginConfig = isValidPluginConfig; function getLocalPluginConfig() { const pluginConfigPath = path_1.default.resolve((0, get_project_directory_1.getProjectDirectory)(), PLUGIN_CONFIG_FILE); if (!(0, fs_extra_1.existsSync)(pluginConfigPath)) { logger_1.logger.debug(`Not found the plugin config file, ${pluginConfigPath}`); return undefined; } logger_1.logger.debug(`Read the plugin config file, ${pluginConfigPath}`); const pluginConfig = require(pluginConfigPath); let originPluginSecret = pluginConfig.pluginSecret; try { originPluginSecret = (0, utils_1.decrypt)(pluginConfig.pluginSecret); } catch (e) { // 如果尝试进行解密失败,说明是未加密的 logger_1.logger.warn('The pluginSecret is original and will be automatically encrypted into "plugin.config.json": ', pluginConfig.pluginSecret); setLocalPluginConfig({ pluginSecret: (0, utils_1.encrypt)(pluginConfig.pluginSecret) }); } const [isValid, errMsgs] = isValidPluginConfig(pluginConfig); if (!isValid) { throw new Error(errMsgs.join(' /n')); } return Object.assign(Object.assign({}, pluginConfig), { pluginSecret: originPluginSecret }); } exports.getLocalPluginConfig = getLocalPluginConfig; function setLocalPluginConfig(config) { const pluginConfigPath = path_1.default.resolve((0, get_project_directory_1.getProjectDirectory)(), PLUGIN_CONFIG_FILE); if (!(0, fs_extra_1.existsSync)(pluginConfigPath)) { logger_1.logger.debug(`Not found the plugin config file, ${pluginConfigPath}`); return undefined; } const pluginConfig = require(pluginConfigPath); const nextPluginConfig = Object.assign(Object.assign({}, pluginConfig), config); (0, fs_extra_1.writeJSONSync)(pluginConfigPath, nextPluginConfig, { spaces: 2 }); } exports.setLocalPluginConfig = setLocalPluginConfig;