UNPKG

@oeyoews/tiddlywiki-plugin-dev

Version:

[![](https://img.shields.io/badge/Join-TiddlyWiki_CN-blue)](https://github.com/tiddly-gittly)

72 lines (71 loc) 2.4 kB
"use strict"; 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;