dart-archive / js_facade_gen

Generates package:js Javascript interop facades for arbitrary TypeScript libraries
Apache License 2.0
161 stars 29 forks source link

Cannot read properties of undefined (reading 'getSourceFile') #107

Open jsiedentop opened 2 years ago

jsiedentop commented 2 years ago

I tried to generate a facade of the chrome extensions api but got this error:

/usr/local/lib/node_modules/dart_js_facade_gen/index.js:28
  if (e.name !== 'DartFacadeError') throw e;
                                    ^

TypeError: Cannot read properties of undefined (reading 'getSourceFile')
    at Transpiler.reportError (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/main.js:407:22)
    at FacadeConverter.reportError (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/base.js:395:25)
    at FacadeConverter.getTypeDeclarationOfSymbol (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/facade_converter.js:615:18)
    at MergedType.merge (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/merge.js:39:42)
    at Array.forEach (<anonymous>)
    at MergedType.merge (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/merge.js:24:33)
    at FacadeConverter.generateDartTypeName (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/facade_converter.js:399:20)
    at TypeTranspiler.visitNode (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/type.js:13:31)
    at Transpiler.visit (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/main.js:446:37)
    at DeclarationTranspiler.visit (/usr/local/lib/node_modules/dart_js_facade_gen/build/lib/base.js:301:25)

Node.js v18.8.0

Steps to reproduce

# create interactive node docker container and execute a bash
docker run -it --rm node:18 bash

# setup build environment inside of the docker container
mkdir /build
cd /build
npm install -g dart_js_facade_gen

# load chrome interfaces
npm install --save @types/chrome

# execute the dart_js facade generator
dart_js_facade_gen --destination=/build/lib --base-path=/build/node_modules/@types/chrome /build/node_modules/@types/chrome/index.d.ts

My approach worked with some minimal typescript interfaces. I tried to isolate the error and found out that there are several interfaces with such a line: export var TAB_ID_NONE: -1; that cause problems. But there are more errors.

Because I only need a small portion of the interface I decided to use direct js interop instead of this generator. Would be awesome, if this project could be resumed. I would have liked to publish a dart version of the chrome extension api on pub.dev

ps9310 commented 1 year ago

Same error for me as well.

/opt/homebrew/lib/node_modules/dart_js_facade_gen/index.js:28 if (e.name !== 'DartFacadeError') throw e; ^

TypeError: Cannot read properties of undefined (reading 'getSourceFile') at Transpiler.reportError (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/main.js:407:22) at FacadeConverter.reportError (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/base.js:395:25) at FacadeConverter.getTypeDeclarationOfSymbol (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/facade_converter.js:615:18) at MergedType.merge (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/merge.js:39:42) at Array.forEach () at MergedType.merge (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/merge.js:24:33) at FacadeConverter.generateDartTypeName (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/facade_converter.js:399:20) at TypeTranspiler.visitNode (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/type.js:13:31) at Transpiler.visit (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/main.js:446:37) at DeclarationTranspiler.visit (/opt/homebrew/lib/node_modules/dart_js_facade_gen/build/lib/base.js:301:25)

ps9310 commented 1 year ago

@sigmundch @kevmoo any plans to fix this in near future?

kevmoo commented 1 year ago

@ps9310 no. We're likely going to sunset this project. It has not been maintained and it's VERY outdated.

I'd love to have a solution in this space, though.

kevmoo commented 1 year ago

CC @devoncarew