class NextIsNotInstalled extends Data.TaggedError('NextIsNotInstalled')<{
cause: unknown;
}> {}
class NextHeaders extends Effect.Service<NextHeaders>()('NextHeaders', {
effect: Effect.tryPromise(() => import('next/headers')).pipe(
Effect.mapError(cause => new NextIsNotInstalled({ cause: cause.error })),
Effect.map(Struct.evolve({
cookies: e => Effect.tryPromise(e),
draftMode: e => Effect.tryPromise(e),
headers: e => Effect.tryPromise(e),
})),
),
}) {}
const asd = Effect.gen(function* () {
const { draftMode } = yield* NextHeaders;
// ^? Effect.Effect<DraftMode, UnknownException, never>
});
class NextIsNotInstalled extends Data.TaggedError('NextIsNotInstalled')<{
cause: unknown;
}> {}
class NextHeaders extends Effect.Service<NextHeaders>()('NextHeaders', {
effect: Effect.tryPromise(() => import('next/headers')).pipe(
Effect.mapError(cause => new NextIsNotInstalled({ cause: cause.error })),
Effect.map(Struct.evolve({
cookies: e => Effect.tryPromise(e),
draftMode: e => Effect.tryPromise(e),
headers: e => Effect.tryPromise(e),
})),
),
}) {}
const asd = Effect.gen(function* () {
const { draftMode } = yield* NextHeaders;
// ^? Effect.Effect<DraftMode, UnknownException, never>
});