codess
Version:
vscode代码片段管理器,通过 本地包(本地某个文件夹) 或官网的 远程包(代码片段集合) 生成本地项目的 vscode 代码片段配置。
54 lines (53 loc) • 2.04 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.configName = void 0;
exports.getNullConfig = getNullConfig;
exports.getConfig = getConfig;
exports.setConfig = setConfig;
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const packageJSON_1 = require("./packageJSON");
const seting_1 = require("../seting");
const fs_2 = require("../utils/fs");
const package_1 = require("../package");
exports.configName = `${packageJSON_1.packageJSON.name}.config.json`;
function getNullConfig() {
return {
dependent: [],
installRecord: {},
document: seting_1.seting.officialDoc,
};
}
function getConfig() {
var _a;
let configPath = path_1.default.join(process.cwd(), exports.configName);
let config = getNullConfig();
if ((_a = (0, fs_2.statSync)(configPath)) === null || _a === void 0 ? void 0 : _a.isFile()) {
let configStr = fs_1.default.readFileSync(configPath).toString();
try {
config = JSON.parse(configStr);
if (config.dependent.some((_) => {
var _a;
let packageName = _.package;
_.package = (_a = (0, package_1.parsePackageNameStr)(_.package)) === null || _a === void 0 ? void 0 : _a.package;
return _.package != packageName;
})) {
config.dependent = config.dependent.filter((_) => !!_.package);
setConfig(config);
}
}
catch (e) {
throw `Error reading configuration file ${configPath}:\n${e}`;
}
}
else {
fs_1.default.writeFileSync(configPath, JSON.stringify(config, undefined, 4));
}
return config;
}
function setConfig(config) {
fs_1.default.writeFileSync(path_1.default.join(process.cwd(), exports.configName), JSON.stringify(config, undefined, 4));
}