#! /usr/bin/env node // @ts-check const { spawn } = require("child_process"); const watchFiles = require("./watch/files"); const watchFolders = require("./watch/folders"); const confFileProvidedJSON = process.argv[process.argv.length - 1]; try { /** @type {TurboSyncConfigObject} */ const configFileObject = JSON.parse(confFileProvidedJSON); console.log(`Running '${configFileObject.title}' ...`); if ( Array.isArray(configFileObject.files) && Array.isArray(configFileObject.folders) ) { throw new Error("Choose wither `files` or `folders`. Not both"); } const files = configFileObject?.files; const firstFile = files?.[0]; const folders = configFileObject?.folders; const firstFolder = folders?.[0]; const options = configFileObject.options; if (firstFile && files?.[0]) { watchFiles({ files, options }); } else if (firstFolder && folders?.[0]) { watchFolders({ folders, options }); } } catch (error) { console.log(error); process.exit(); } process.on("exit", (code) => { if (code == 1) { const args = process.argv; const cmd = args.shift(); if (cmd) { spawn(cmd, args, { stdio: "inherit", }); } } else { process.exit(0); } });