UNPKG

@thisisagile/easy

Version:

Straightforward library for building domain-driven microservice architectures

53 lines (52 loc) 1.3 kB
import { Enum } from "../chunk-JVDKV5HE.mjs"; import "../chunk-WTFW6DLP.mjs"; import { text } from "../chunk-MCCIBDEH.mjs"; import "../chunk-H2762RTS.mjs"; import { toList } from "../chunk-A7C3XND3.mjs"; import "../chunk-JSON7A4X.mjs"; import "../chunk-CO2AFYVD.mjs"; import { kebab } from "../chunk-BDA5LB4S.mjs"; import "../chunk-SJGQU3OG.mjs"; import "../chunk-ZHXKBOK2.mjs"; import "../chunk-ZPNFXK7Y.mjs"; import "../chunk-DXQSIBC7.mjs"; import "../chunk-PIRWVOO2.mjs"; import { isIn, isString } from "../chunk-DEJ7A5PY.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; } 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)) ); } static byScopes(...s) { return this.filter((u) => u.scopes.some((us) => isIn(us, s))); } }; export { UseCase }; //# sourceMappingURL=UseCase.mjs.map