@21jumpclick/service-messenger
Version:
Amqp lib to send and receive messages from different applications
29 lines • 1.08 kB
JavaScript
import { resolve } from "path";
import * as fs from "node:fs";
export class FileImporter {
static async import(path) {
const current = resolve(path);
const files = await FileImporter.treeResolver(current);
if (!files) {
throw 'No files found';
}
await Promise.all(files.map((e) => import(e)));
}
static async treeResolver(path) {
const files = fs.readdirSync(path);
const result = [];
for (const file of files.filter((e) => !e.includes('node_modules'))) {
const filePath = resolve(path, file);
const isDirectory = fs.statSync(filePath).isDirectory();
if (isDirectory) {
const child = await FileImporter.treeResolver(filePath);
result.push(...(child || []));
}
else if (file.endsWith('.js') || file.endsWith('.ts') || file.endsWith('.cjs') || file.endsWith('.mjs')) {
result.push(filePath);
}
}
return result;
}
}
//# sourceMappingURL=file-importer.js.map