Updates
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import createDbFromSchema from "@/package-shared/shell/createDbFromSchema";
|
||||
import grabDirNames from "@/package-shared/utils/backend/names/grab-dir-names";
|
||||
import debugLog from "@/package-shared/utils/logging/debug-log";
|
||||
import dbSchemaToType from "@/utils/backend/db-schema-to-type";
|
||||
import fs from "fs";
|
||||
|
||||
function debugLogFn(log: any, label?: string) {
|
||||
debugLog({ log, addTime: true, label, title: "watchMainDbSchemaJSONFile" });
|
||||
}
|
||||
|
||||
let syncing = 0;
|
||||
let timeout: any;
|
||||
|
||||
const DEBOUNCE = 500;
|
||||
|
||||
export default function watchMainDbSchemaJSONFile() {
|
||||
if (process.env.NODE_ENV?.match(/prod/)) return;
|
||||
if (process.env.DSQL_HOST_ENV?.match(/prod/)) return;
|
||||
|
||||
const { mainShemaJSONFilePath, mainDbTypeDefFile } = grabDirNames();
|
||||
|
||||
fs.watch(mainShemaJSONFilePath, (curr) => {
|
||||
if (syncing == 1) return;
|
||||
if (curr !== "change") return;
|
||||
clearTimeout(timeout);
|
||||
|
||||
debugLogFn("Main Schema JSON File Changed!");
|
||||
|
||||
syncing = 1;
|
||||
|
||||
timeout = setTimeout(() => {
|
||||
const definitions = dbSchemaToType();
|
||||
|
||||
fs.writeFileSync(
|
||||
mainDbTypeDefFile,
|
||||
definitions?.join("\n\n") || "",
|
||||
"utf-8"
|
||||
);
|
||||
|
||||
createDbFromSchema({})
|
||||
.then((res) => {
|
||||
debugLogFn(res, "res");
|
||||
})
|
||||
.catch((err) => {
|
||||
debugLogFn(err, "res");
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
debugLogFn("Main Rebuilt Successfully!");
|
||||
syncing = 0;
|
||||
}, 1000);
|
||||
});
|
||||
}, DEBOUNCE);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user