Skip to content

Export JSII Compatible Interface from public NPM packages

License

Notifications You must be signed in to change notification settings

GoodNotes/ts-interface-generator

Repository files navigation

TS Interface Generator

Export JSII Compatible Interface from external packages

This repository is an exploration of generating JSII Compatible Interfaces for public packages on NPM.

It has only been tested with the DataDog Typescript API Client package and is not intended for production use.

Usage

# install pj dependencies
yarn
# run the export-datadog-interfaces task
npx projen@latest export-datadog-interfaces
# confirm JSII compile works
npx projen@latest compile

How it works

The export-datadog-interfaces task uses the ts-morph package to parse the DataDog Typescript API Client package and generate a JSII compatible interface for a specific class within the package. It resolves imports and combines all dependencies into a single Typescript source file.

Notes:

  • The DataDog API Typescript Client is autogenerated by OpenAPI generator and creates class objects only.
  • Internal properties such as attributeTypeMap are filtered out.
  • The UnparsedObject type's _data property is tagged as internal.

References