Как получить класс с неизвестным именем с помощью require () - PullRequest
0 голосов
/ 07 мая 2020

У меня есть файл класса шаблона с именем

./templates/Class.js

class Template {
//code
}

Затем у меня есть другой класс с именем:

./classes/Foo.js

const Template = require('./../../templates/Class.js')
class Foo extends Template {
//code
}

У меня есть основной файл с именем: ./index.js, который проверяет все файлы под ./classes/ и проверяет,

classname instanceof Template;

Так что я не могу отслеживать все имена классов под ./classes/, и я хочу потребовать все файлы в ./classes/, проверить наличие классов для каждого файла, который выходит за пределы моего класса Template, и добавить этот класс / функцию на карту. Я знаю, как требовать все файлы под ./classes/, но не намного больше, так как мне это сделать?

КАК Я ТРЕБУЮТ ФАЙЛЫ: index.js

const getAllFiles = function(dirPath, arrayOfFiles) {
  files = fs.readdirSync(dirPath)

  arrayOfFiles = arrayOfFiles || []

  files.forEach(function(file) {
    if (fs.statSync(dirPath + "/" + file).isDirectory()) {
      arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles)
    } else {
      if(fs.readdirSync(dirPath).filter(file => file.endsWith('.js') && fs.statSync(dirPath + "/" + file).isFile()).length) {
      arrayOfFiles.push(dirPath + "/" + file)
      }
    }
  })

  return arrayOfFiles;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...