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", _))
.unsafeFork
Several 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
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-traced folder
- 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
Issue description or question
Why does Quokka not respect the custom typescript compiler, which is used fine by
ts-node --esmfrom 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
Several globals and extension methods are at play here, which are auto provided through the extended compiler.
It is important that ts-node's
transpileOnlyis false.Compiled output (for reference)
Sample repository link
cd starter-tracedpnpm ipnpm start(it runsts-node --esm src/main.ts)Output:
starter-tracedfolderQuokka console output
Code editor version
Visual Studio Code v1.74.1
OS name and version
OSX Ventura 13.1