summaryrefslogtreecommitdiff
path: root/docs/src/hardware-schema-typescript-plugin
diff options
context:
space:
mode:
Diffstat (limited to 'docs/src/hardware-schema-typescript-plugin')
-rw-r--r--docs/src/hardware-schema-typescript-plugin/index.js29
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