UNPKG

@angstone/monostone

Version:

monolitic event-sourced framework

53 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("./"); function createFeature(featureRecipe) { const featureName = _1.StringTools.lastNameOfFilePath(featureRecipe.featurePath); const commands = _1.CommandTools.createCommands({ commandNames: featureRecipe.commandNames || [], featureName, featurePath: featureRecipe.featurePath, }); const views = _1.ViewTools.createViews({ featureName, featurePath: featureRecipe.featurePath, viewNames: featureRecipe.viewNames || [], }); const cronjobs = _1.CronjobTools.createCronjobs({ featureName, featurePath: featureRecipe.featurePath, cronjobs: featureRecipe.cronjobs || [], }); const effects = _1.EffectTools.createEffects({ featureName, featurePath: featureRecipe.featurePath, effects: featureRecipe.effects || [], }); return { featureName, commands, views, cronjobs, effects }; } exports.createFeature = createFeature; function createFeatures(featureRecipes) { const featureLoadeds = []; featureRecipes.forEach(featureRecipe => { featureLoadeds.push(createFeature(featureRecipe)); }); const namesRepeated = []; return featureLoadeds.filter((featureLoaded) => { const alreadyAdded = namesRepeated.filter((name) => name == featureLoaded.featureName); if (alreadyAdded.length == 0) { namesRepeated.push(featureLoaded.featureName); return true; } else return false; }); } exports.createFeatures = createFeatures; function getRecipesFromFolderStructure(customPath) { const featuresDir = customPath || __dirname + '/../features'; return _1.FolderTools.getDirectories(featuresDir).map((featurePath) => { return { featurePath }; }); } exports.getRecipesFromFolderStructure = getRecipesFromFolderStructure; //# sourceMappingURL=feature.tools.js.map