@angstone/monostone
Version:
monolitic event-sourced framework
53 lines • 1.99 kB
JavaScript
;
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