Context.Mixin, чтобы подмешивать к классу поведение Context.ServiceТеперь можно даже вот так:
class Test extends Context.Mixin<Test>("Test")(
Schema.Class<Test>("Test")({
id: Schema.String
})
) {
test.method() { this.id }
}
Effect.gen(function*() {
const test = yield* Test
return test.method()
}) // Effect<string, never, Test>
.pipe(
Effect.provide(Test, Schema.decodeSync(Test)({ id: 'asd' }))
)
Теперь
Test — это и схема, и ключ в Context, и эффект по доставанию инстанса из R-канала.Не то чтобы это было целевая фича, но интересно получилось.
А фича в быстром поднятии какой-то имеющейся базы в экосистему эффекта.
Был класс — хоба и это уже
Context.ServiceDiscord & PR