{"id":14155910,"url":"https://github.com/GoodNotes/ts-interface-generator","last_synced_at":"2025-08-06T02:31:00.217Z","repository":{"id":192991680,"uuid":"687456509","full_name":"GoodNotes/ts-interface-generator","owner":"GoodNotes","description":"Export JSII Compatible Interface from public NPM packages","archived":false,"fork":false,"pushed_at":"2024-08-17T00:16:31.000Z","size":609,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":21,"default_branch":"main","last_synced_at":"2024-08-17T02:32:05.045Z","etag":null,"topics":["cdk","jsii","projen-managed","ts-morph"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GoodNotes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-05T11:54:27.000Z","updated_at":"2024-08-17T02:32:05.046Z","dependencies_parsed_at":"2024-01-02T01:38:04.531Z","dependency_job_id":"88bd6d34-cd99-428c-bc55-9692b4ba02c0","html_url":"https://github.com/GoodNotes/ts-interface-generator","commit_stats":null,"previous_names":["goodnotes/ts-interface-generator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodNotes%2Fts-interface-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodNotes%2Fts-interface-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodNotes%2Fts-interface-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GoodNotes%2Fts-interface-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GoodNotes","download_url":"https://codeload.github.com/GoodNotes/ts-interface-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215735863,"owners_count":15923388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cdk","jsii","projen-managed","ts-morph"],"created_at":"2024-08-17T08:05:05.357Z","updated_at":"2024-08-17T08:06:15.422Z","avatar_url":"https://github.com/GoodNotes.png","language":"TypeScript","funding_links":[],"categories":["others"],"sub_categories":[],"readme":"# TS Interface Generator\n\n\u003e Export JSII Compatible Interface from external packages\n\nThis repository is an exploration of generating JSII Compatible Interfaces for public packages on NPM.\n\nIt has only been tested with the DataDog Typescript API Client package and is not intended for production use.\n\n## Usage\n\n```bash\n# install pj dependencies\nyarn\n# run the export-datadog-interfaces task\nnpx projen@latest export-datadog-interfaces\n# confirm JSII compile works\nnpx projen@latest compile\n```\n\n## How it works\n\nThe `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.\n\nNotes:\n\n- The DataDog API Typescript Client is autogenerated by OpenAPI generator and creates `class` objects only.\n- Internal properties such as `attributeTypeMap` are filtered out.\n- The `UnparsedObject` type's `_data` property is tagged as internal.\n\n## References\n\n- [Generate RunTypes from TS](https://gist.github.com/skurfuerst/a07ab23c3e40a45f2268f7700ceeceaf)\n- [Type FootPrint](https://gist.github.com/zaripych/963fa6584524e5b446b70548dbabbf65)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGoodNotes%2Fts-interface-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGoodNotes%2Fts-interface-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGoodNotes%2Fts-interface-generator/lists"}