From 60ecf601b65a10f5fdff781eebfaec51294978ad Mon Sep 17 00:00:00 2001
From: Timotej Ecimovic <timotej.ecimovic@silabs.com>
Date: Sat, 13 Jun 2020 11:33:08 -0400
Subject: [PATCH] Start working on a standalone node.js regen.

Opens a can of works with the whole ES6 vs ES5 mess.
---
 package.json |  1 +
 sdk-regen.js | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 sdk-regen.js

diff --git a/package.json b/package.json
index c61f4ffe..57621667 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,7 @@
   "name": "zap",
   "version": "0.99.1",
   "description": "Configuration tool for the Zigbee Cluster Library",
+  "type": "module",
   "productName": "zap",
   "cordovaId": "",
   "capacitorId": "",
diff --git a/sdk-regen.js b/sdk-regen.js
new file mode 100644
index 00000000..786b5c13
--- /dev/null
+++ b/sdk-regen.js
@@ -0,0 +1,37 @@
+import path from 'path'
+import fs from 'fs'
+import {
+  closeDatabase,
+  initDatabase,
+  loadSchema,
+} from './src-electron/db/db-api.js'
+import {
+  schemaFile,
+  sqliteTestFile,
+  appDirectory,
+  setDevelopmentEnv,
+} from './src-electron/util/env.js'
+import { runSdkGeneration } from './src-electron/sdk-gen/sdk-gen.js'
+import { loadZcl } from './src-electron/zcl/zcl-loader.js'
+import { zclPropertiesFile } from './src-electron/main-process/args.js'
+
+setDevelopmentEnv()
+var file = sqliteTestFile(42)
+var db
+
+initDatabase(file)
+  .then((d) => loadSchema(d, schemaFile(), '0.99.0'))
+  .then((d) => loadZcl(d, zclPropertiesFile))
+  .then((d) => {
+    db = d
+    return runSdkGeneration({
+      db: db,
+      generationDir: path.join(appDirectory(), 'sdk-gen'),
+      templateDir: '',
+      dontWrite: false,
+    })
+  })
+  .then(() => closeDatabase(db))
+  .then(() => {
+    if (fs.existsSync(file)) fs.unlinkSync(file)
+  })
-- 
GitLab