srcbookdev / srcbook

TypeScript notebook for rapid prototyping
https://srcbook.com
Apache License 2.0
2.01k stars 56 forks source link

Creating ts srcbook on windows #297

Open WesBosman opened 2 weeks ago

WesBosman commented 2 weeks ago

When I boot up srcbook and click the button to create a typescript srcbook I get the following error on Windows.

Screenshot 2024-09-14 080432

This error led me to the node_modules/@srcbook/api/dist/tsserver/tsserver.mjs file. I noticed there was a call to spawn on line 37. If I add the option shell: true, to the spawn command then I don't get the error anymore.

const child = spawn('npx', ['tsserver'], {
  cwd:options.cwd,
  shell: true // added to make spawn call work
});

Now I'm able to create a typescript srcbook without generating an error. However when I start to type into the text area to create my typescript file I get another error. This error causes the local server to stop running.

Screenshot 2024-09-14 080828

I think this is an issue with the TextEncoder / TextDecoder in node_modules/@srcbook/api/dist/tsserver/messages.mjs.

I tried editing the carriage return char code thinking it was an issue with line endings in Windows but that didn't help.

// const CARRIAGE_RETURN_CHAR_CODE = '\r'.charCodeAt(0);
const CARRIAGE_RETURN_CHAR_CODE = '\r\n'.charcCodeAt();

I'm able to create javascript notebooks and run them without an issue. The issue only seems to happen with typescript notebooks.

versecafe commented 2 weeks ago

There's a few issues, a couple of spots not using path.join and the decoder is full of issues from windows using \r\n feel free to make a PR for this otherwise it'll get taken care of in the next few weeks

WesBosman commented 2 weeks ago

I'll keep debugging. If I can make it through the decoder I'll make a PR.

versecafe commented 2 weeks ago

If you end up needing help or have questions feel free to ping me Ben & Nick likely won't be checking on things until Monday

qpenney commented 2 weeks ago

+1

nichochar commented 1 week ago

@WesBosman by the way if you're not in the Discord, that's a good place to have longer conversations about the bug / PR / questions. GitHub is fine too, but wanted to share in case you were interested.

WesBosman commented 1 week ago

Hey @nichochar thanks! I've joined the discord.