| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /* 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');
- 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, 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();
|