import fs from 'fs' import path from 'path' import yaml from 'js-yaml' import slug from 'slug' /** * resolve action class * * @author Björn Hase * @license http://opensource.org/licenses/MIT The MIT License * @link https://git.node001.net/HerrHase/super-hog.git * */ function resolveActionClass(className) { let classPath = path.join(path.resolve(), 'resources/actions/' + className + '.ts') let result = undefined if (fs.existsSync(classPath)) { result = classPath } if (!result) { throw new Error('Action Class ' + className + ' / ' + classPath + ' not found!') } return result } /** * loading all configs from enabled directory * * @author Björn Hase * @license http://opensource.org/licenses/MIT The MIT License * @link https://git.node001.net/HerrHase/super-hog.git * */ function resolveEnabledConfig(name?: string) { const configs = [] const directoryPath = path.join(path.resolve(), 'resources/config') // load files from enabled const files = fs.readdirSync(directoryPath + '/enabled') for (let index in files) { let file = files[index] if (!file.endsWith('.yml')) { continue } if (name !== undefined && file !== (name + '.yml')) { continue } const result = yaml.load(fs.readFileSync(directoryPath + '/enabled/' + file)) if (result) { result.slug = slug(result.name) configs.push(result) } } return configs } export { resolveActionClass, resolveEnabledConfig }