@tramvai/tools-generate-schema 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +13 -13
- package/package.json +2 -2
package/index.js
CHANGED
|
@@ -5,33 +5,33 @@ const path = require('path');
|
|
|
5
5
|
const TJS = require('typescript-json-schema');
|
|
6
6
|
|
|
7
7
|
const generateSchema = async () => {
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const schemaTypeFilename = path.resolve(process.cwd(), 'src', 'schema', 'ConfigSchema.ts');
|
|
9
|
+
const autogeneratedSchemaFilename = path.resolve(
|
|
10
10
|
process.cwd(),
|
|
11
11
|
'src',
|
|
12
12
|
'schema',
|
|
13
13
|
'autogeneratedSchema.json'
|
|
14
14
|
);
|
|
15
15
|
|
|
16
|
-
if (fs.existsSync(
|
|
16
|
+
if (fs.existsSync(autogeneratedSchemaFilename)) {
|
|
17
17
|
console.log('generate-schema: remove previous schema');
|
|
18
|
-
await fs.promises.unlink(
|
|
18
|
+
await fs.promises.unlink(autogeneratedSchemaFilename);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
const settings = {
|
|
22
22
|
ref: false,
|
|
23
23
|
required: true,
|
|
24
24
|
noExtraProps: true,
|
|
25
|
-
validationKeywords: ['title', 'patternProperties', 'if', 'then', 'else'],
|
|
25
|
+
validationKeywords: ['title', 'patternProperties', 'if', 'then', 'else', 'cli_overridable'],
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
const program = TJS.programFromConfig('tsconfig.schema.json', [
|
|
28
|
+
const program = TJS.programFromConfig('tsconfig.schema.json', [schemaTypeFilename]);
|
|
29
29
|
|
|
30
30
|
console.log('generate-schema: start generate new schema');
|
|
31
31
|
const schema = TJS.generateSchema(program, 'ConfigSchema', settings);
|
|
32
32
|
|
|
33
33
|
await fs.promises.writeFile(
|
|
34
|
-
path.resolve(
|
|
34
|
+
path.resolve(autogeneratedSchemaFilename),
|
|
35
35
|
JSON.stringify(schema, null, 2).replace(/%40/g, '@'),
|
|
36
36
|
'utf-8'
|
|
37
37
|
);
|
|
@@ -42,24 +42,24 @@ const generatePublicSchema = async () => {
|
|
|
42
42
|
console.log('generate-schema: start generate new public schema');
|
|
43
43
|
|
|
44
44
|
const topLevelSchemaFilename = path.resolve(process.cwd(), 'src', 'schema', 'topLevelSchema.js');
|
|
45
|
-
const
|
|
45
|
+
const autogeneratedSchemaFilename = path.resolve(
|
|
46
46
|
process.cwd(),
|
|
47
47
|
'src',
|
|
48
48
|
'schema',
|
|
49
49
|
'autogeneratedSchema.json'
|
|
50
50
|
);
|
|
51
|
-
const
|
|
51
|
+
const autogeneratedPublicSchemaFilename = path.resolve(process.cwd(), 'schema.json');
|
|
52
52
|
const topLevelSchema = require(topLevelSchemaFilename);
|
|
53
|
-
const autogeneratedSchema = require(
|
|
53
|
+
const autogeneratedSchema = require(autogeneratedSchemaFilename);
|
|
54
54
|
const schema = topLevelSchema(autogeneratedSchema);
|
|
55
55
|
|
|
56
|
-
if (fs.existsSync(
|
|
56
|
+
if (fs.existsSync(autogeneratedPublicSchemaFilename)) {
|
|
57
57
|
console.log('generate-schema: remove previous public schema');
|
|
58
|
-
await fs.promises.unlink(
|
|
58
|
+
await fs.promises.unlink(autogeneratedPublicSchemaFilename);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
fs.promises.writeFile(
|
|
62
|
-
path.resolve(
|
|
62
|
+
path.resolve(autogeneratedPublicSchemaFilename),
|
|
63
63
|
JSON.stringify(schema, null, 2),
|
|
64
64
|
'utf-8'
|
|
65
65
|
);
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/tools-generate-schema",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"bin": {
|
|
6
6
|
"generate-schema": "bin/generate-schema.js"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"typescript-json-schema": "^0.
|
|
9
|
+
"typescript-json-schema": "^0.61.0"
|
|
10
10
|
},
|
|
11
11
|
"license": "Apache-2.0"
|
|
12
12
|
}
|