@@ -4,6 +4,8 @@ import parseArgs from "minimist"
4
4
import fs from "fs-extra"
5
5
import { range } from "lodash"
6
6
7
+ const TEMPLATE_FILENAME = "./devTools/schema/template"
8
+
7
9
const schemaVersionRegex =
8
10
/ h t t p s : \/ \/ f i l e s \. o u r w o r l d i n d a t a \. o r g \/ s c h e m a s \/ g r a p h e r - s c h e m a \. (?< version > \d { 3 } ) \. j s o n / m
9
11
const getSchemaVersion = ( config : Record < string , any > ) : string =>
@@ -58,23 +60,23 @@ async function main(parsedArgs: parseArgs.ParsedArgs) {
58
60
59
61
// save as ts file if requested
60
62
if ( parsedArgs [ "save-ts" ] ) {
63
+ const template = fs . readFileSync ( TEMPLATE_FILENAME , "utf8" )
64
+
61
65
const latestVersion = getSchemaVersion ( defaultConfig )
62
66
const outdatedVersionsAsInts = range ( 1 , parseInt ( latestVersion ) )
63
67
const outdatedVersions = outdatedVersionsAsInts . map ( ( versionNumber ) =>
64
68
versionNumber . toString ( ) . padStart ( 3 , "0" )
65
69
)
66
70
67
71
const out = parsedArgs [ "save-ts" ]
68
- const content = `// THIS IS A GENERATED FILE, DO NOT EDIT DIRECTLY
69
-
70
- // GENERATED BY devTools/schema/generate-default-object-from-schema.ts
71
-
72
- import { GrapherInterface } from "@ourworldindata/types"
73
-
74
- export const latestSchemaVersion = "${ latestVersion } " as const
75
- export const outdatedSchemaVersions = ${ toArrayString ( outdatedVersions ) } as const
72
+ const content = template
73
+ . replace ( "{{LATEST_SCHEMA_VERSION}}" , latestVersion . toString ( ) )
74
+ . replace (
75
+ "{{OUTDATED_SCHEMA_VERSIONS}}" ,
76
+ toArrayString ( outdatedVersions )
77
+ )
78
+ . replace ( "{{DEFAULT_GRAPHER_CONFIG}}" , defaultConfigJSON )
76
79
77
- export const defaultGrapherConfig = ${ defaultConfigJSON } as GrapherInterface`
78
80
fs . outputFileSync ( out , content )
79
81
}
80
82
0 commit comments