-
Notifications
You must be signed in to change notification settings - Fork 41
Description
This issue is for tracking the development of the JS Interop Bindings Generator for TypeScript Declaration Files (.d.ts
files).
This encompasses being able to parse TypeScript declarations, generate an intermediate representation for such declarations, and generate Dart Interop Code using code_builder
, making use of Dart's new modern JS Interop, with support for dart:js_interop
and package:web
types.
For more information on the project, see the project overview.
This will merge with the work done in web_generator
to generate a single binary entrypoint (dart_main.dart
) with which Dart JS Interop Code can be generated from IDL and TypeScript Files, which will include some refactoring of the AST used to suit both purposes.
Issues
- [web_generator] Setting up
web_generator
for Dart JS Interop Gen #368 - [interop] Refactoring Generator to make use of configuration options #408
- [web_generator] Configuration Support #376
- ts_bindings_test.dart needs input data to run #372
- [web_generator] Add Support for Globs and Dir inputs (for IDL and TS Declarations Generator) #425
TS Generation
- Interop Gen: Support Variable Declarations #375
- Interop Gen: Support Function Declarations #389
- Interop Gen: Support Enumerations #393
- Interop Gen: Support Literal Types in TS (i.e
null
,true
,false
) #384 - Interop Gen: Support Typealiases #406
- Interop Gen: Support Overloaded Constructors #411
- Interop Gen: Support Interfaces #402
- Interop Gen: Support Classes #409
- Interop Gen: Support
typeof
type declarations #383 - Interop Gen: Implement Error Diagnostics when parsing input files #421
- Interop Gen: Support Export/Import Declarations #378
- Interop Gen: Support Import Declarations and Multi-File Output #387
- Interop Gen: Support Namespaces #399
- Interop Gen: Add Support for Import Typealiases #437
- Interop Gen: Support Qualified Names #416
- Interop Gen: Support Globbed
as
imports (namespace imports) #420 - Interop Gen: Support Documentation #413
- Interop Gen: Support Passing TS Configuration from
tsconfig.json
#442 - Interop Gen: Support Union Types #385
- Interop Gen: Support Constructor Types #410
- Interop Gen: Support Function Types #422
- Interop Gen: Support Tuples #433
- Interop Gen: Improve Documentation #412
- Interop Gen: Support
never
type #456 - Interop Gen: Support
readonly
types #454 - Interop Gen: Support
keyof
types #453 - Make unsupported types/features default to
JSAny
for now #448 - Interop Gen: Combine Interface and
var
declarations into class where possible #429 - Interop Gen: Support Overloading #388
- [interop] Adding support for
dart:js_interop
andpackage:web
types #403 - [interop] Update Configuration to allow TS Compiler Configuration and non-exported decl generation #443
- [interop] Minor Fixes in Generics with Anonymous Closures #447
- [web_generator] Updated README #461
- [interop] Resolved Namespace
typedef
and exception improvements #459 - Interop Gen: Support Modules #424
- Interop Gen: Add Support for Merging Interface Types to already built-in Dart JS Interop Types as Extensions #430
- Interop Gen: Add support for TS Reference Compiler Directives #431
Future Issues
These issues are to be worked on after the GSoC Period, and are mainly extensions of current work to make generated interop code better, or to expand the scope of the generator.
- [web-generator] Added support for multi-file input for JS Generator #470
- Interop Gen: Support Indexed Access Types #391
- Interop Gen: Support Some Primitive JS Types #379
- Interop Gen: Support Generator Functions #390
- Interop Gen: Support non-identifier properties #414
- Interop Gen: Add Support for
import = require
declarations #438 - Interop Gen: Support Globbed Export, Default Exports and Exporting Namespace Import Objects #439
- Interop Gen: Support Mapped Types #455
- Interop Gen: Support Destructured Parameters #466
- Interop Gen: Support Predicate Types #463
- Interop Gen: Support Conditional Types #464
- Interop Gen: Support Additional Literal Types #465
- [infra] Test web_generator bin script #471
IDL Refactoring
Most of IDL refactoring is occurring on #394.