@oeyoews/tiddlywiki-plugin-dev
Version:
[](https://github.com/tiddly-gittly)
72 lines (71 loc) • 2.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createPlugin = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _chalk = _interopRequireDefault(require("chalk"));
var _inquirer = _interopRequireDefault(require("inquirer"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const createPlugin = async (src = 'src') => {
const {
pluginType,
pluginName,
authorName,
description
} = await _inquirer.default.prompt([{
type: 'list',
name: 'pluginType',
message: 'What type of plugin to create?',
choices: ['plugin', 'theme', 'language'],
default: 'plugin'
}, {
type: 'input',
name: 'pluginName',
message: "What's the plugin's name"
}, {
type: 'input',
name: 'authorName',
message: "What's your name"
}, {
type: 'input',
name: 'description',
message: "What's your description of this plugin"
}]);
// eslint-disable-next-line no-console
console.log(_chalk.default.green.bold('Creating...'));
if (!_fs.default.existsSync(_path.default.resolve(src))) {
_fs.default.mkdirSync(_path.default.resolve(src));
}
const pluginPath = _path.default.resolve(src, encodeURIComponent(pluginName));
if (_fs.default.existsSync(pluginPath)) {
const {
override
} = await _inquirer.default.prompt({
type: 'confirm',
name: 'override',
message: `${pluginPath} already exists, override?`,
default: false
});
if (!override) {
return;
}
} else {
_fs.default.mkdirSync(pluginPath);
}
const pluginTitle = `$:/${pluginType}s/${authorName}/${pluginName}`;
_fs.default.writeFileSync(_path.default.resolve(pluginPath, 'plugin.info'), JSON.stringify({
title: pluginTitle,
name: pluginName,
author: authorName,
description,
'plugin-type': pluginType,
version: '0.0.1',
list: 'readme'
}, undefined, 2));
_fs.default.writeFileSync(_path.default.resolve(pluginPath, 'readme.tid'), [`title: ${pluginTitle}/readme`, 'type: text/vnd.tiddlywiki', '', `! ${pluginName}`, '', description].join('\n'));
// eslint-disable-next-line no-console
console.log(_chalk.default.green.bold(`Created plugin ${pluginTitle} at src/${encodeURIComponent(pluginName)}`));
};
exports.createPlugin = createPlugin;