@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
53 lines (52 loc) • 1.3 kB
JavaScript
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