#!/usr/bin/env node /* import {repositories.language} from './repository-language'; import {repositories.type} from './repository-type'; import {repositories.tag} from './repository-tag'; import {repositories.concept} from './repository-concept'; */ /** */ async function main(args : Array) : Promise { const command : string = args.shift(); switch (command) { case "setup": { await repositories.language.setup() await repositories.type.setup() await repositories.tag.setup() await repositories.concept.setup() process.exit(0); break; } case "feed": { const content : string = await helpers.misc.stdin(); const data : any = JSON.parse(content); const concept_thing : any = data; const concept_id : int = await services.concept.suck(concept_thing); console.info(concept_id); process.exit(0); break; } case "translate": { const language_from : string = args.shift(); const language_to : string = args.shift(); const part : string = args.shift(); const result = await services.concept.get_translations ( language_from, language_to, part ); result.forEach ( (entry) => { console.info ( helpers.string.coin ( "[{{language_from}}] {{value_from}} ~ [{{language_to}}] {{value_to}}", { "language_from": language_from, "value_from": entry["value_from"], "language_to": language_to, "value_to": entry["value_to"], } ) ); } ); process.exit(0); break; } case "export": { const result : Array = await services.concept.export_(); console.info(JSON.stringify(result, undefined, "\t")); process.exit(0); break; } case "show": { const concept_id = parseInt(args.shift()); const concept_entity : entities.concept = await services.concept.get(concept_id); console.info(JSON.stringify(concept_entity, undefined, "\t")); break; } default: { console.error("unhandled command: " + command); process.exit(1); break; } } } main(process.argv.slice(2));