UNPKG

@wmfs/tymly

Version:

A framework for building and sharing workflows in Node.js

32 lines (25 loc) 921 B
const path = require('path') const fs = require('fs') const pathExploder = require('./tymly-loader/path-exploder') module.exports = function discoverBlueprintDirs (rawPaths, messages) { const pluginPaths = pathExploder(rawPaths, { expectModule: true, messages }) if (!Array.isArray(pluginPaths)) { return [] } const pluginBlueprintDirs = [] for (const pluginPath of pluginPaths) { const blueprintsDir = path.join(pluginPath, 'blueprints') try { const stats = fs.lstatSync(blueprintsDir) if (stats.isDirectory()) { const subDirs = fs.readdirSync(blueprintsDir) .map(subDir => path.join(blueprintsDir, subDir)) .filter(subDir => fs.statSync(subDir).isDirectory()) pluginBlueprintDirs.push(...subDirs) } } catch (err) { // ignore as blueprint dirs are not mandatory } } return pluginBlueprintDirs } // discoverBlueprintDirs