|
|
@@ -0,0 +1,74 @@
|
|
|
+/* eslint-disable no-console */
|
|
|
+import chokidar from 'chokidar';
|
|
|
+import fs from 'fs-extra';
|
|
|
+import { globSync } from 'glob';
|
|
|
+import path from 'path';
|
|
|
+
|
|
|
+const SCHEMAS_GLOB = '**/*.graphql';
|
|
|
+const MESSAGES_GLOB = 'i18n/messages/**/*';
|
|
|
+const DEST_DIR = path.join(__dirname, '../dist');
|
|
|
+const MESSAGES_DEST_DIR = path.join(__dirname, '../dist/i18n/messages');
|
|
|
+
|
|
|
+function copyFiles(sourceGlob: string, destinationDir: string) {
|
|
|
+ const srcDir = path.join(__dirname, '../src');
|
|
|
+ const files = globSync(sourceGlob, {
|
|
|
+ cwd: srcDir,
|
|
|
+ });
|
|
|
+ for (const file of files) {
|
|
|
+ const destFile = path.join(destinationDir, file);
|
|
|
+ try {
|
|
|
+ fs.ensureDirSync(path.dirname(destFile));
|
|
|
+ fs.copySync(path.join(srcDir, file), destFile);
|
|
|
+ } catch (error: any) {
|
|
|
+ console.error(`Error copying file ${file}:`, error);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function copySchemas() {
|
|
|
+ try {
|
|
|
+ copyFiles(SCHEMAS_GLOB, DEST_DIR);
|
|
|
+ console.log('Schemas copied successfully!');
|
|
|
+ } catch (error) {
|
|
|
+ console.error('Error copying schemas:', error);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function copyI18nMessages() {
|
|
|
+ try {
|
|
|
+ copyFiles(MESSAGES_GLOB, MESSAGES_DEST_DIR);
|
|
|
+ console.log('I18n messages copied successfully!');
|
|
|
+ } catch (error) {
|
|
|
+ console.error('Error copying i18n messages:', error);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function build() {
|
|
|
+ copySchemas();
|
|
|
+ copyI18nMessages();
|
|
|
+}
|
|
|
+
|
|
|
+function watch() {
|
|
|
+ const watcher1 = chokidar.watch(SCHEMAS_GLOB, { cwd: path.join(__dirname, '../src') });
|
|
|
+ const watcher2 = chokidar.watch(MESSAGES_GLOB, { cwd: path.join(__dirname, '../src') });
|
|
|
+
|
|
|
+ watcher1.on('change', copySchemas);
|
|
|
+ watcher2.on('change', copyI18nMessages);
|
|
|
+
|
|
|
+ console.log('Watching for changes...');
|
|
|
+}
|
|
|
+
|
|
|
+function runCommand() {
|
|
|
+ const command = process.argv[2];
|
|
|
+
|
|
|
+ if (command === 'build') {
|
|
|
+ build();
|
|
|
+ } else if (command === 'watch') {
|
|
|
+ watch();
|
|
|
+ } else {
|
|
|
+ console.error('Invalid command. Please use "build" or "watch".');
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Run command specified in the command line argument
|
|
|
+runCommand();
|