-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
Issue description or question
Why does Quokka not respect the custom typescript compiler, which is used fine by ts-node --esm from the console?
So far it seems errors occur even before ts-node/typescript parser/compiler is leveraged.
How do I fix this behaviour?
Is this issue related to Quokka not outputting the expected results of your code?: Yes
https://github.com/effect-ts-app/playground/blob/main/starter-traced/src/main.ts
import "@effect-app/prelude/_global"
export interface Name {
getName: Effect<never, never, string>;
}
export const Name: Tag<Name> = Tag<Name>();
export const program: Effect<Name, never, void> = Effect.gen(function* ($) {
const { getName } = yield* $(Effect.service(Name));
yield* $(Effect.log(`Hello ${yield* $(getName)}`));
yield* $(Effect.die("Error"));
});
export const NameLive: Layer<never, never, Name> = Layer.effect(Name)(
Effect.sync(() => ({
getName: Effect.succeed("Mike"),
}))
);
program
.provideLayer(NameLive)
.tapErrorCause(_ => Effect.logErrorCauseMessage("Error", _))
.unsafeForkSeveral globals and extension methods are at play here, which are auto provided through the extended compiler.
It is important that ts-node's transpileOnly is false.
Compiled output (for reference)
import * as tracer_1 from "@effect/io/Debug";
const fileName_1 = "~/Projects/effect-ts-app/playground/starter-traced/src/main.ts";
import * as tsplus_module_1 from "@fp-ts/data/Context";
import * as tsplus_module_2 from "@effect/io/Effect";
import * as tsplus_module_3 from "@effect-app/core/Effect";
import "@effect-app/prelude/_global";
export const Name = tsplus_module_1.Tag();
export const program = tracer_1.withCallTrace(fileName_1 + ":9:58")(tsplus_module_2.gen(function* ($) {
const { getName } = yield* $(tracer_1.withCallTrace(fileName_1 + ":10:39")(tsplus_module_2.service(Name)));
yield* $(tracer_1.withCallTrace(fileName_1 + ":12:19")(tsplus_module_2.log(`Hello ${yield* $(getName)}`)));
yield* $(tracer_1.withCallTrace(fileName_1 + ":13:19")(tsplus_module_2.die("Error")));
}));
export const NameLive = tsplus_module_3.LayerFromEffect(Name)(tracer_1.withCallTrace(fileName_1 + ":17:10")(tsplus_module_2.sync(() => ({
getName: tracer_1.withCallTrace(fileName_1 + ":18:21")(tsplus_module_2.succeed("Mike")),
}))));
tsplus_module_2.unsafeFork(tracer_1.withCallTrace(fileName_1 + ":24:4")(tsplus_module_2.tapErrorCause(_ => tracer_1.withCallTrace(fileName_1 + ":24:30")(tsplus_module_2.logErrorCauseMessage("Error", _))))(tracer_1.withCallTrace(fileName_1 + ":23:4")(tsplus_module_2.provideLayer(NameLive))(program)));Sample repository link
- clone: https://github.com/effect-ts-app/playground
cd starter-tracedpnpm ipnpm start(it runsts-node --esm src/main.ts)
Output:
timestamp=2023-01-20T09:45:05.240Z level=INFO fiber=#0 message="Hello Mike"
timestamp=2023-01-20T09:45:05.242Z level=ERROR fiber=#0 message=Error cause="
An unchecked error was produced.
\"Error\"
Stack:
~/Projects/effect-ts-app/playground/starter-traced/src/main.ts:9:58
~/Projects/effect-ts-app/playground/starter-traced/src/main.ts:24:4
Execution:
~/Projects/effect-ts-app/playground/starter-traced/src/main.ts:13:19
~/Projects/effect-ts-app/playground/starter-traced/src/main.ts:9:58
~/Projects/effect-ts-app/playground/starter-traced/src/main.ts:12:19
~/Projects/effect-ts-app/playground/starter-traced/src/main.ts:9:58
~/Projects/effect-ts-app/playground/starter-traced/src/main.ts:18:21
"
- open vscode from within the
starter-tracedfolder - Set VS Code Typescript compiler to the node_modules one
- Open main.ts
- Quokka: Start on Current File
Quokka console output
Quokka PRO 'main.ts' (node: v18.12.1, TypeScript: v5.0.0-tsplus.20230113)
Tag is not defined
at starter-traced/src/main.ts:7
Code editor version
Visual Studio Code v1.74.1
OS name and version
OSX Ventura 13.1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels