Hookyns / tst-reflect

Advanced TypeScript runtime reflection system
MIT License
338 stars 11 forks source link

[BUG] Uncaught ReferenceError: _ßr is not defined #81

Open Hookyns opened 1 year ago

Hookyns commented 1 year ago

This is a known bug

You can find this issue in projects with incremental build and/or HMR. This is fixed in the new major version (not released yet).

Fix

You can hotfix this issue by adding this code somewhere to your project, it has to be executed as soon as possible.

import { getType, Type } from "tst-reflect";
(window as any)["_" + String.fromCharCode(223) + "r"] = { getType, Type };

Example

Lets have create-react-app project. You have to create new file eg. polyfills.ts

import { getType, Type } from "tst-reflect";
(window as any)["_" + String.fromCharCode(223) + "r"] = { getType, Type };

and import this file first in the index.ts.

import "./polyfills";
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(
  document.getElementById('root') as HTMLElement
);
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);
paluchi commented 1 year ago

@Hookyns How can I apply this fix to a node server?

Hookyns commented 1 year ago

Hi, you can participate in Alpha version (it's fixed there) or you have to declare that variable in "index" file on your own as shown above.

Do you have some specific issue with it?

paluchi commented 1 year ago

Hi, you can participate in Alpha version (it's fixed there) or you have to declare that variable in "index" file on your own as shown above.

Do you have some specific issue with it?

It's the same issue you already described. Could you please provide me a link to the alpha subs.? window object does not exist for node servers as it is not running on a web provider

EDIT (Hookyns): idk how, but I edited this instead of reply; reverted

Hookyns commented 1 year ago

@paluchi Ahh, okay. You just have to replace window by global or globalThis.