whistle.capimock
Version:
连接capi的whistle插件
78 lines (65 loc) • 1.6 kB
JavaScript
var NAME_RE = /^.*\.ts$/;
var storage;
function getTplName(name, type) {
if (!NAME_RE.test(name)) {
return -1;
}
return name;
}
function getList() {
return storage.getFileList().map(function(item) {
var name = item.name;
var lists = JSON.parse(item.data);
return {
name: name,
checkList: lists.checkList,
list: lists.list
};
});
}
module.exports = {
getList: getList,
getTpl: function(vaseId) {
var list = getList();
for (var i = 0, len = list.length; i < len; i++) {
var item = list[i];
if (item.name == vaseId) {
return item;
}
}
},
setTplValue: function(name, value) {
if (!name || !storage.existsFile(name)) {
return;
}
storage.writeFile(name, JSON.stringify(value));
},
addTpl: function(item) {
var name = getTplName(item.name);
if (name === -1) {
return '文件格式校验不通过';
}
if (!name || storage.existsFile(name)) {
return '已经存在';
}
storage.writeFile(name, JSON.stringify(item));
},
removeTpl: function(item) {
storage.removeFile(getTplName(item.name));
},
getAllNoScriptTpl: function() {
return [];
},
setProperty: function(name, value) {
storage.setProperty(name, value);
},
getProperty: function(name) {
return storage.getProperty(name);
}
};
module.exports.setup = function(options) {
var pluginDataDir = options.config.pluginDataDir;
// eslint-disable-next-line no-console
console.log('pluginDataDir=>', pluginDataDir);
storage = options.storage;
};