657e9a9de1c6b8aacc1b7d1d279ed115d87649b8
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts          1) /*
source/main.ts          2) import {repositories.language} from './repository-language';
source/main.ts          3) import {repositories.type} from './repository-type';
source/main.ts          4) import {repositories.tag} from './repository-tag';
source/main.ts          5) import {repositories.concept} from './repository-concept';
source/main.ts          6)  */
source/main.ts          7) 
source/main.ts          8) 
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts          9) function syntaxerror() : void
source/main.ts         10) {
source/main.ts         11) 	console.error("-- wrong syntax");
source/main.ts         12) 	process.exit(1);
source/main.ts         13) }
source/main.ts         14) 
source/main.ts         15) 
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts         16) /**
source/main.ts         17)  */
source/main.ts         18) async function main(args : Array<string>) : Promise<void>
source/main.ts         19) {
source/main.ts         20) 	const command : string = args.shift();
source/main.ts         21) 	switch (command)
source/main.ts         22) 	{
source/main.ts         23) 		case "setup":
source/main.ts         24) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts         25) 			await repositories.language.setup();
source/main.ts         26) 			await repositories.type.setup();
source/main.ts         27) 			await repositories.tag.setup();
source/main.ts         28) 			await repositories.expression.setup();
source/main.ts         29) 			await repositories.concept.setup();
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts         30) 			process.exit(0);
source/main.ts         31) 			break;
source/main.ts         32) 		}
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/main.ts         33) 		case "run":
source/main.ts         34) 		{
Christian Fraß [mod] server

Christian Fraß authored 3 years ago

server/source/main.ts  35) 			const server : lib_server.class_server = new lib_server.class_server
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/main.ts         36) 			(
Christian Fraß [mod] server

Christian Fraß authored 3 years ago

server/source/main.ts  37) 				7777,
server/source/main.ts  38) 				ns_server.query_http_raw
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/main.ts         39) 			);
Christian Fraß [mod] server

Christian Fraß authored 3 years ago

server/source/main.ts  40) 			server.start();
Christian Fraß [add] api

Christian Fraß authored 3 years ago

source/main.ts         41) 			break;
source/main.ts         42) 		}
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts         43) 		case "show":
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts         44) 		{
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts         45) 			const concept_id = parseInt(args.shift());
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts         46) 			const exposal : services.concept.type_exposal = await services.concept.expose(concept_id);
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts         47) 			console.info(helpers.json.encode_extended(exposal, true, 0));
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts         48) 			process.exit(0);
source/main.ts         49) 			break;
source/main.ts         50) 		}
source/main.ts         51) 		case "translate":
source/main.ts         52) 		{
source/main.ts         53) 			const language_from : string = args.shift();
source/main.ts         54) 			const language_to : string = args.shift();
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts         55) 			const part : string = args.join(" "); args = [];
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts         56) 			const result = await services.concept.get_translations
source/main.ts         57) 			(
source/main.ts         58) 				language_from,
source/main.ts         59) 				language_to,
source/main.ts         60) 				part
source/main.ts         61) 			);
source/main.ts         62) 			result.forEach
source/main.ts         63) 			(
source/main.ts         64) 				(entry) =>
source/main.ts         65) 				{
source/main.ts         66) 					console.info
source/main.ts         67) 					(
source/main.ts         68) 						helpers.string.coin
source/main.ts         69) 						(
source/main.ts         70) 							"[{{language_from}}] {{value_from}} ~ [{{language_to}}] {{value_to}}",
source/main.ts         71) 							{
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts         72) 								"language_from": entry["language_from"],
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts         73) 								"value_from": entry["value_from"],
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts         74) 								"language_to": entry["language_to"],
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts         75) 								"value_to": entry["value_to"],
source/main.ts         76) 							}
source/main.ts         77) 						)
source/main.ts         78) 					);
source/main.ts         79) 				}
source/main.ts         80) 			);
source/main.ts         81) 			process.exit(0);
source/main.ts         82) 			break;
source/main.ts         83) 		}
source/main.ts         84) 		case "export":
source/main.ts         85) 		{
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts         86) 			const directory : string = ((args.length >= 1) ? args.shift() : "/tmp");
source/main.ts         87) 			const result : Array<services.concept.type_exposal> = await services.concept.export_();
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts         88) 			const digits : int = 3;
source/main.ts         89) 			for (const exposal of result)
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts         90) 			{
source/main.ts         91) 				const path : string = helpers.string.coin
source/main.ts         92) 				(
source/main.ts         93) 					"{{directory}}/concept_{{id}}.json",
source/main.ts         94) 					{
source/main.ts         95) 						"directory": directory,
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts         96) 						"id": helpers.string.pad_left(exposal.id.toFixed(0), digits, "0"),
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts         97) 					}
source/main.ts         98) 				);
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts         99) 				delete exposal.id;
source/main.ts        100) 				const content : string = helpers.json.encode_extended(exposal, true, 0);
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts        101) 				await helpers.file.write(path, content);
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts        102) 				// console.info(path);
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts        103) 			}
source/main.ts        104) 			console.info(directory);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts        105) 			process.exit(0);
source/main.ts        106) 			break;
source/main.ts        107) 		}
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        108) 		case "search":
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts        109) 		{
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        110) 			const part : string = args.join(" "); args = [];
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts        111) 			const result : Array<services.concept.type_exposal> = await services.concept.search(part);
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        112) 			result.forEach
source/main.ts        113) 			(
source/main.ts        114) 				(entry) =>
source/main.ts        115) 				{
source/main.ts        116) 					console.info
source/main.ts        117) 					(
source/main.ts        118) 						helpers.string.coin
source/main.ts        119) 						(
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts        120) 							"{{id}} | {{type}} | {{description}} | {{tags}} | {{expressions}}",
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        121) 							{
source/main.ts        122) 								"id": entry["id"].toFixed(),
source/main.ts        123) 								"type": entry["type"],
Christian Fraß [mod] server

Christian Fraß authored 3 years ago

server/source/main.ts 124) 								"description": (entry["description"] || '-'),
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        125) 								"tags": entry["tags"].join(","),
Christian Fraß [mod] makefile

Christian Fraß authored 3 years ago

source/main.ts        126) 								"expressions": (
source/main.ts        127) 									() =>
source/main.ts        128) 									{
source/main.ts        129) 										let parts : Array<string> = [];
source/main.ts        130) 										for (const [key, value] of Object.entries(entry["expressions"]))
source/main.ts        131) 										{
source/main.ts        132) 											parts.push(key + ":" + value.join("/"));
source/main.ts        133) 										}
source/main.ts        134) 										return parts.join(",");
source/main.ts        135) 									}
source/main.ts        136) 								) (),
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        137) 							}
source/main.ts        138) 						)
source/main.ts        139) 					);
source/main.ts        140) 				}
source/main.ts        141) 			);
source/main.ts        142) 			process.exit(0);
source/main.ts        143) 			break;
source/main.ts        144) 		}
source/main.ts        145) 		case "feed":
source/main.ts        146) 		{
source/main.ts        147) 			const content : string = await helpers.misc.stdin();
source/main.ts        148) 			const data : any = JSON.parse(content);
source/main.ts        149) 			const concept_thing : any = data;
source/main.ts        150) 			const concept_id : int = await services.concept.suck(concept_thing);
source/main.ts        151) 			console.info(concept_id);
source/main.ts        152) 			process.exit(0);
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts        153) 			break;
source/main.ts        154) 		}
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts        155) 		case "add":
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        156) 		{
source/main.ts        157) 			if (args.length < 1)
source/main.ts        158) 			{
source/main.ts        159) 				syntaxerror();
source/main.ts        160) 			}
source/main.ts        161) 			else
source/main.ts        162) 			{
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts        163) 				/*
source/main.ts        164) 				SYNOPSIS
source/main.ts        165) 					add <type> [-d <description>] [-t <tag>] [-t <tag>] … [-e <language>:<value>] [-e <language>:<value>] _
source/main.ts        166) 				
source/main.ts        167) 				OPTIONS
source/main.ts        168) 					<type>
source/main.ts        169) 					-d <description> | --description=<description>
source/main.ts        170) 					-t <tag> | --tag=<tag>
source/main.ts        171) 					-e <language>:<value> | --expression=<language>:<value>
source/main.ts        172) 				 */
source/main.ts        173) 				const concept_thing : {type ?: string; description : null|string; tags : Array<string>; expressions : {[language : string] : Array<string>};} = {
source/main.ts        174) 					"type": undefined,
source/main.ts        175) 					"description": null,
source/main.ts        176) 					"tags": [],
source/main.ts        177) 					"expressions": {},
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        178) 				};
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts        179) 				let positional : {list : Array<string>; index : int;} = {
source/main.ts        180) 					"list": ["type"],
source/main.ts        181) 					"index": 0,
source/main.ts        182) 				};
source/main.ts        183) 				while (args.length > 0)
source/main.ts        184) 				{
source/main.ts        185) 					const arg : string = args.shift();
source/main.ts        186) 					switch (arg)
source/main.ts        187) 					{
source/main.ts        188) 						case "-h":
source/main.ts        189) 						{
source/main.ts        190) 							console.info("add <type> [-d <description>] [-t <tag>] [-t <tag>] … [-e <language>:<value>] [-e <language>:<value>] _");
source/main.ts        191) 							process.exit(0);
source/main.ts        192) 							break;
source/main.ts        193) 						}
source/main.ts        194) 						case "-d":
source/main.ts        195) 						{
source/main.ts        196) 							concept_thing["description"] = args.shift();
source/main.ts        197) 							break;
source/main.ts        198) 						}
source/main.ts        199) 						case "-t":
source/main.ts        200) 						{
source/main.ts        201) 							concept_thing["tags"].push(args.shift());
source/main.ts        202) 							break;
source/main.ts        203) 						}
source/main.ts        204) 						case "-e":
source/main.ts        205) 						{
source/main.ts        206) 							const [language, value] : Array<string> = args.shift().split(":", 2);
source/main.ts        207) 							if (! concept_thing["expressions"].hasOwnProperty(language)) {
source/main.ts        208) 								concept_thing["expressions"][language] = [];
source/main.ts        209) 							}
source/main.ts        210) 							concept_thing["expressions"][language].push(value);
source/main.ts        211) 							break;
source/main.ts        212) 						}
source/main.ts        213) 						default:
source/main.ts        214) 						{
source/main.ts        215) 							if (positional.index < positional.list.length) {
source/main.ts        216) 								concept_thing[positional.list[positional.index]] = arg;
source/main.ts        217) 								positional.index += 1;
source/main.ts        218) 							}
source/main.ts        219) 							else {
source/main.ts        220) 								throw (new Error("unexpected: " + arg));
source/main.ts        221) 							}
source/main.ts        222) 							break;
source/main.ts        223) 						}
source/main.ts        224) 					}
source/main.ts        225) 				}
source/main.ts        226) // console.info(helpers.json.encode_extended(concept_thing, true, 0));
Christian Fraß [mod] logic

Christian Fraß authored 3 years ago

source/main.ts        227) 				const concept_id : int = await services.concept.suck(concept_thing);
source/main.ts        228) 				console.info(concept_id);
source/main.ts        229) 				process.exit(0);
source/main.ts        230) 			}
source/main.ts        231) 			break;
source/main.ts        232) 		}
source/main.ts        233) 		case "set":
source/main.ts        234) 		{
source/main.ts        235) 			if (args.length < 1)
source/main.ts        236) 			{
source/main.ts        237) 				syntaxerror();
source/main.ts        238) 			}
source/main.ts        239) 			else
source/main.ts        240) 			{
source/main.ts        241) 				const concept_id : int = parseInt(args.shift());
source/main.ts        242) 			}
source/main.ts        243) 		}
Christian Fraß [add] typescript logic

Christian Fraß authored 3 years ago

source/main.ts        244) 		default:
source/main.ts        245) 		{
source/main.ts        246) 			console.error("unhandled command: " + command);
source/main.ts        247) 			process.exit(1);
source/main.ts        248) 			break;
source/main.ts        249) 		}
source/main.ts        250) 	}
source/main.ts        251) }
source/main.ts        252) 
source/main.ts        253) 
Christian Fraß [mod] main

Christian Fraß authored 3 years ago

source/main.ts        254) main(process.argv.slice(2))
source/main.ts        255) .catch
source/main.ts        256) (
source/main.ts        257) 	(error) =>
source/main.ts        258) 	{
source/main.ts        259) 		console.error(error.toString());
source/main.ts        260) 	}
source/main.ts        261) );