UNPKG

js-mdict

Version:

mdict (*.mdx, *.mdd) file reader

75 lines 2.23 kB
#!/usr/bin/env node /* eslint-disable no-console */ //module/cli.js import fs from 'fs'; import { MDX, MDD } from './index.js'; function help() { console.log('js-mdict - A MDict dictionary file reader command line tool'); console.log('Usage:'); console.log('js-mdict path/xxx.mdx yourword'); console.log('\nOr:'); console.log('js-mdict path/xxx.mdd your-resource-key'); console.log('\nIf you want output full result base64 string: '); console.log('js-mdict path/xxx.mdd your-resource-key -f'); } /** Parse the command line */ const args = process.argv.slice(2); // Validate input if (args.length < 2) { console.log('Error: Requires 2 arguments'); help(); process.exit(); } const src = args[0]; const target = args[1]; let full_out_flag = false; if (args.length > 2) { if (args[2] == '-f') { full_out_flag = true; } } if (!fs.existsSync(src)) { console.log("Error: Source mdx/mdd file doesn't exist. given: ", src); help(); process.exit(); } const file_extionsion = src.split('.').pop(); if (file_extionsion !== 'mdx' && file_extionsion !== 'mdd') { console.log('Error: Source file must be a mdx or mdd file'); help(); process.exit(); } let result = { keyText: '', definition: null }; switch (file_extionsion) { case 'mdx': { const mdx_dict = new MDX(src); const result = mdx_dict.lookup(target); if (result && result.definition) { console.log(result.definition); } else { console.log('not found'); } break; } case 'mdd': { const mdd_dict = new MDD(src); result = mdd_dict.locate(target); if (result && result.definition) { if (!full_out_flag && result.definition.length > 100) { console.log(result.definition.slice(0, 100) + '...' + '(total: ' + result.definition.length / 1024 + ' KB)'); } else { console.log(result.definition); } } else { console.log('not found'); } break; } default: { console.log('Error: Source file must be a mdx or mdd file'); } } //# sourceMappingURL=cli.js.map