UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

49 lines (48 loc) 1.22 kB
import { Enum, text, toList } from "../chunk-AVHYDITZ.mjs"; import "../chunk-EBIF6AMC.mjs"; import "../chunk-KCY4RPFR.mjs"; import "../chunk-SSROJBD5.mjs"; import "../chunk-S3NSPQ7M.mjs"; import { kebab } from "../chunk-NNA77YYC.mjs"; import "../chunk-SJGQU3OG.mjs"; import "../chunk-D5IYAIMK.mjs"; import "../chunk-PF7HDF6B.mjs"; import "../chunk-IXK47WKF.mjs"; import "../chunk-PIRWVOO2.mjs"; import { isIn, isString } from "../chunk-AAND4MKF.mjs"; import "../chunk-4N72FQFX.mjs"; // src/process/UseCase.ts var UseCase = class _UseCase extends Enum { constructor(app, name, id = text(name).kebab, scopes = toList()) { super(name, id.toString()); this.app = app; this.scopes = scopes; } static byScopes(...s) { return this.filter((u) => u.scopes.some((us) => isIn(us, s))); } with(...s) { this.scopes.add( ...toList(s).flatMap((s2) => s2.expand()).distinct() ); return this; } for(item) { return new _UseCase(this.app, `${this.name} ${isString(item) ? item : item?.name}`, kebab(`${this.id} ${isString(item) ? item : item.id}`)).with( ...this.scopes.map((s) => s?.for(item)) ); } }; export { UseCase }; //# sourceMappingURL=UseCase.mjs.map