diff options
author | Peter Johanson <peter@peterjohanson.com> | 2021-03-29 00:59:15 +0000 |
---|---|---|
committer | Pete Johanson <peter@peterjohanson.com> | 2021-09-11 00:50:36 -0400 |
commit | 5e6634d2e522289c5169b22a2a0d8b600a0e008d (patch) | |
tree | 8d4d314585a1ec02b9027233648cdcedf65199cf /docs/src/hardware-schema-typescript-plugin | |
parent | b52835ffbf1c47ab854d491dac9bb5ffbb15e80f (diff) |
feat(docs): Add TS type gen, metadata JSON gen
* Generate TS types from new hardware metadata schema.
* Aggregate all hw metadata YAML into one aggregate JSON
file for consumption by others.
Diffstat (limited to 'docs/src/hardware-schema-typescript-plugin')
-rw-r--r-- | docs/src/hardware-schema-typescript-plugin/index.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/src/hardware-schema-typescript-plugin/index.js b/docs/src/hardware-schema-typescript-plugin/index.js new file mode 100644 index 0000000..2ccbf19 --- /dev/null +++ b/docs/src/hardware-schema-typescript-plugin/index.js @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2021 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +var PrebuildPlugin = require("prebuild-webpack-plugin"); +const fs = require("fs"); +const { compileFromFile } = require('json-schema-to-typescript'); + +async function generateHardwareMetadataTypescript() { + const ts = await compileFromFile("../schema/hardware-metadata.schema.json"); + fs.writeFileSync("src/hardware-metadata.d.ts", ts); +} + +module.exports = function () { + return { + name: "hardware-metadata-typescript-plugin", + configureWebpack() { + return { + plugins: [ + new PrebuildPlugin({ + build: generateHardwareMetadataTypescript, + }), + ], + }; + }, + }; +};
\ No newline at end of file |