summary refs log tree commit diff
path: root/scripts/generate_schema.js
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-08-22 22:12:00 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-08-22 22:12:00 +1000
commitafefa5d64bd6cde7d6efa3a9a5a3ec67a6ca29a8 (patch)
tree07779150eba77c27bf75bc0c7890f4a3f976716e /scripts/generate_schema.js
parentremoved char joiners as they are actually useful, added page break (diff)
parentMerge remote-tracking branch 'Puyodead1/patch/prettier-config' into staging (diff)
downloadserver-afefa5d64bd6cde7d6efa3a9a5a3ec67a6ca29a8.tar.xz
Merge remote-tracking branch 'upstream/staging' into fix/categoryNames
Diffstat (limited to '')
-rw-r--r--scripts/generate_schema.js (renamed from api/scripts/generate_schema.js)31
1 files changed, 23 insertions, 8 deletions
diff --git a/api/scripts/generate_schema.js b/scripts/generate_schema.js

index 7e742ec1..6925df5d 100644 --- a/api/scripts/generate_schema.js +++ b/scripts/generate_schema.js
@@ -27,11 +27,20 @@ const Excluded = [ "Response", "e.Response", "request.Response", - "supertest.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) { + for (let k in obj) { if (typeof obj[k] === "object" && obj[k] !== null) { modify(obj[k]); } @@ -39,14 +48,20 @@ function modify(obj) { } function main() { - const program = TJS.getProgramFromFiles(walk(path.join(__dirname, "..", "src", "routes")), compilerOptions); + const files = [ + ...walk(path.join(__dirname, "..", "src", "util", "schemas")), + ]; + const program = TJS.getProgramFromFiles( + files, + compilerOptions + ); const generator = TJS.buildGenerator(program, settings); if (!generator || !program) return; - const schemas = generator.getUserSymbols().filter((x) => (x.endsWith("Schema") || x.endsWith("Response")) && !Excluded.includes(x)); + let schemas = generator.getUserSymbols().filter((x) => (x.endsWith("Schema") || x.endsWith("Response")) && !Excluded.includes(x)); console.log(schemas); - var definitions = {}; + let definitions = {}; for (const name of schemas) { const part = TJS.generateSchema(program, name, settings, [], generator); @@ -63,11 +78,11 @@ function main() { main(); function walk(dir) { - var results = []; - var list = fs.readdirSync(dir); + let results = []; + let list = fs.readdirSync(dir); list.forEach(function (file) { file = dir + "/" + file; - var stat = fs.statSync(file); + let stat = fs.statSync(file); if (stat && stat.isDirectory()) { /* Recurse into a subdirectory */ results = results.concat(walk(file));