thetarnav / solid-devtools

Library of developer tools, reactivity debugger & Devtools Chrome extension for visualizing SolidJS reactivity graph
https://chrome.google.com/webstore/detail/solid-devtools/kmcfjchnmmaeeagadbhoofajiopoceel
MIT License
548 stars 21 forks source link

typescript error when including @solid-devtools/debugger outside of vite #293

Open Alloyed opened 7 months ago

Alloyed commented 7 months ago

Here's a minimal repro. In a private repository we're using esbuild for bundling and typescript independently for verification, and we're seeing the same issues there.

https://github.com/Alloyed/solid-sandbox/tree/TS2846

install with pnpm install, test with pnpm run typescript

The error seems to be in compiled/code-generated output, so it may be a problem with an upstream build tool. As a workaround, for now, we're directly modifying the affected files in node_modules and checking the results in.

full error log:

node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/index-9809b963.d.ts:6:50 - error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file 'solid-js/store/types/store.js' instead?

6 import * as solid_js_store_types_store_d_ts from 'solid-js/store/types/store.d.ts';
                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/index-9809b963.d.ts:9:54 - error TS2846: A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file 'solid-js/types/reactive/signal.js' instead?

9 import * as solid_js_types_reactive_signal_d_ts from 'solid-js/types/reactive/signal.d.ts';
                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/index.d.ts:5:54 - error TS2846: A declaration file cannot 
be imported without 'import type'. Did you mean to import an implementation file 'solid-js/types/reactive/signal.js' instead?

5 import * as solid_js_types_reactive_signal_d_ts from 'solid-js/types/reactive/signal.d.ts';
                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/setup.d.ts:2:50 - error TS2846: A declaration file cannot 
be imported without 'import type'. Did you mean to import an implementation file 'solid-js/store/types/store.js' instead?

2 import * as solid_js_store_types_store_d_ts from 'solid-js/store/types/store.d.ts';
                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/setup.d.ts:5:54 - error TS2846: A declaration file cannot 
be imported without 'import type'. Did you mean to import an implementation file 'solid-js/types/reactive/signal.js' instead?

5 import * as solid_js_types_reactive_signal_d_ts from 'solid-js/types/reactive/signal.d.ts';
                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/setup.d.ts:40:9 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'SolidDevtools$$' must be of type '{ readonly Solid: typeof import("E:/code/solid-sandbox/node_modules/.pnpm/solid-js@1.8.11/node_modules/solid-js/types/index"); readonly Store: typeof import("E:/code/solid-sandbox/node_modules/.pnpm/solid-js@1.8.11/node_modules/solid-js/store/types/index"); ... 13 more ...; readonly getOwnerLocation: (owner: Owner) ...', but here has type '{ readonly Solid: typeof import("E:/code/solid-sandbox/node_modules/.pnpm/solid-js@1.8.11/node_modules/solid-js/types/index"); readonly Store: typeof import("E:/code/solid-sandbox/node_modules/.pnpm/solid-js@1.8.11/node_modules/solid-js/store/types/index"); ... 13 more ...; readonly getOwnerLocation: (owner: Owner) ...'.

40     var SolidDevtools$$: {
           ~~~~~~~~~~~~~~~

  node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/index-9809b963.d.ts:164:9
    164     var SolidDevtools$$: {
                ~~~~~~~~~~~~~~~
    'SolidDevtools$$' was also declared here.

node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/setup.d.ts:100:9 - error TS2717: Subsequent property declarations must have the same type.  Property 'sdtType' must be of type 'NodeType | undefined', but here has type 'NodeType | undefined'.

100         sdtType?: NodeType;
            ~~~~~~~

  node_modules/.pnpm/@solid-devtools+debugger@0.23.3_solid-js@1.8.11/node_modules/@solid-devtools/debugger/dist/index-9809b963.d.ts:228:9
    228         sdtType?: NodeType;
                ~~~~~~~
    'sdtType' was also declared here.

node_modules/.pnpm/@solid-primitives+utils@6.2.2_solid-js@1.8.11/node_modules/@solid-primitives/utils/dist/index/index.d.ts:6:54 - error TS2307: Cannot find module '../node_modules/solid-js/types/reactive/signal.js' or its corresponding type declarations.

6 export { ResolvedChildren, ResolvedJSXElement } from '../node_modules/solid-js/types/reactive/signal.js';
                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~