summary refs log tree commit diff
path: root/api/scripts/generate_schema.js
diff options
context:
space:
mode:
Diffstat (limited to 'api/scripts/generate_schema.js')
-rw-r--r--api/scripts/generate_schema.js96
1 files changed, 0 insertions, 96 deletions
diff --git a/api/scripts/generate_schema.js b/api/scripts/generate_schema.js
deleted file mode 100644
index b56c3fbc..00000000
--- a/api/scripts/generate_schema.js
+++ /dev/null
@@ -1,96 +0,0 @@
-// https://mermade.github.io/openapi-gui/#
-// https://editor.swagger.io/
-const path = require("path");
-const fs = require("fs");
-const TJS = require("typescript-json-schema");
-require("missing-native-js-functions");
-const schemaPath = path.join(__dirname, "..", "assets", "schemas.json");
-
-const settings = {
-	required: true,
-	ignoreErrors: true,
-	excludePrivate: true,
-	defaultNumberType: "integer",
-	noExtraProps: true,
-	defaultProps: false
-};
-const compilerOptions = {
-	strictNullChecks: true
-};
-const Excluded = [
-	"DefaultSchema",
-	"Schema",
-	"EntitySchema",
-	"ServerResponse",
-	"Http2ServerResponse",
-	"global.Express.Response",
-	"Response",
-	"e.Response",
-	"request.Response",
-	"supertest.Response",
-
-	// TODO: Figure out how to exclude schemas from node_modules?
-	"SomeJSONSchema",
-	"UncheckedPartialSchema",
-	"PartialSchema",
-	"UncheckedPropertiesSchema",
-	"PropertiesSchema",
-	"AsyncSchema",
-	"AnySchema",
-];
-
-function modify(obj) {
-	for (var k in obj) {
-		if (typeof obj[k] === "object" && obj[k] !== null) {
-			modify(obj[k]);
-		}
-	}
-}
-
-function main() {
-	const files = 		[
-		...walk(path.join(__dirname, "..", "src", "routes")),
-		...walk(path.join(__dirname, "..", "..", "util", "src")),
-	];
-	const program = TJS.getProgramFromFiles(
-		files,
-		compilerOptions
-	);
-	const generator = TJS.buildGenerator(program, settings);
-	if (!generator || !program) return;
-
-	let schemas = generator.getUserSymbols().filter((x) => (x.endsWith("Schema") || x.endsWith("Response")) && !Excluded.includes(x));
-	console.log(schemas);
-
-	var definitions = {};
-
-	for (const name of schemas) {
-		const part = TJS.generateSchema(program, name, settings, [], generator);
-		if (!part) continue;
-
-		definitions = { ...definitions, [name]: { ...part } };
-	}
-
-	modify(definitions);
-
-	fs.writeFileSync(schemaPath, JSON.stringify(definitions, null, 4));
-}
-
-main();
-
-function walk(dir) {
-	var results = [];
-	var list = fs.readdirSync(dir);
-	list.forEach(function (file) {
-		file = dir + "/" + file;
-		var stat = fs.statSync(file);
-		if (stat && stat.isDirectory()) {
-			/* Recurse into a subdirectory */
-			results = results.concat(walk(file));
-		} else {
-			if (!file.endsWith(".ts")) return;
-			results.push(file);
-		}
-	});
-	return results;
-}