| 1 | import * as Context from "effect/Context"; |
| 2 | import { GenericService } from "./Util/service.ts"; |
| 3 | |
| 4 | export interface Self< |
| 5 | R extends { Type: string; LogicalId: string } = { |
| 6 | Type: string; |
| 7 | LogicalId: string; |
| 8 | }, |
| 9 | > extends Context.ServiceClass<Self<R>, `Self<${R["Type"]}>`, R> {} |
| 10 | |
| 11 | export const Self = GenericService<{ |
| 12 | <R extends { Type: string; LogicalId: string }>(type: R["Type"]): Self<R>; |
| 13 | }>()("Alchemy::Self"); |