{"id":13567882,"url":"https://github.com/apioo/typeschema-angular-editor","last_synced_at":"2025-08-11T09:39:57.140Z","repository":{"id":40569825,"uuid":"400888539","full_name":"apioo/typeschema-angular-editor","owner":"apioo","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-21T21:19:26.000Z","size":1032,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-12T05:37:18.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apioo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"chriskapp","patreon":"fusio","custom":"https://www.paypal.me/fusioapi"}},"created_at":"2021-08-28T20:54:15.000Z","updated_at":"2025-03-21T21:13:54.000Z","dependencies_parsed_at":"2023-02-16T01:45:33.457Z","dependency_job_id":"b578e93a-1c96-42e7-8a76-0df7783639b4","html_url":"https://github.com/apioo/typeschema-angular-editor","commit_stats":null,"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"purl":"pkg:github/apioo/typeschema-angular-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema-angular-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema-angular-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema-angular-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema-angular-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apioo","download_url":"https://codeload.github.com/apioo/typeschema-angular-editor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apioo%2Ftypeschema-angular-editor/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269864172,"owners_count":24487576,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-08-01T13:02:47.763Z","updated_at":"2025-08-11T09:39:57.041Z","avatar_url":"https://github.com/apioo.png","language":"TypeScript","funding_links":["https://github.com/sponsors/chriskapp","https://patreon.com/fusio","https://www.paypal.me/fusioapi"],"categories":["TypeScript"],"sub_categories":[],"readme":"# TypeSchemaAngularEditor\n\nThis package provides an Angular Editor Component which provides a visual editor to design a\n[TypeSchema](https://typeschema.org/) or [TypeAPI](https://typeapi.org) specification.\nIt also integrates with the [typehub.cloud](https://typehub.cloud/) API so that a user can integrate\nremote schemas registered at the TypeHub cloud platform. The following screenshot shows an example\nof the editor:\n\n![Preview](./assets/preview.png)\n\nWe use this component in different products:\n\n* [Fusio](https://www.fusio-project.org/)\n* [TypeHub](https://typehub.cloud/)\n* [APIgen](https://apigen.app/)\n* [SDKgen](https://sdkgen.app/)\n\n## Usage\n\nYou can use the `typeschema-editor` component directly in your template\n\n```angular2html\n\u003ctypeschema-editor [specification]=\"spec\" [importEnabled]=\"false\" (save)=\"submit($event)\" (change)=\"change($event)\"\u003e\u003c/typeschema-editor\u003e\n```\n\nIn your controller you can then listen on the save or change event:\n\n```typescript\nexport class DesignerComponent implements OnInit {\n\n  spec: Specification = {\n    imports: [],\n    types: []\n  };\n\n  ngOnInit(): void {\n  }\n\n  submit(spec: Specification) {\n    // is called everytime a user clicks on the save button\n  }\n\n  change(spec: Specification) {\n    // is called everytime the user changes the schema through the editor\n  }\n\n}\n```\n\n## Input\n\n### `specification`\n\nThe specification object\n\n### `operationEnabled`\n\nDefault: false\n\nWhether it is possible to manage operations\n\n### `importEnabled`\n\nDefault: true\n\nWhether it is possible to import specifications from remote sources\n\n### `readonly`\n\nDefault: false\n\nWhether the editor is readonly, if true the editor only renders the specification with no option to\nmodify the specification.\n\n## Development\n\nInternally the component does not work directly on a TypeSchema/TypeAPI JSON instead it uses\nan internal representation. The `Specification` is the internal representation, if\nyou want to turn this into a TypeSchema you can use the `ExportService`\nservice. There is also an `ImportService` service which converts a specification into the\ninternal `Specification` representation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapioo%2Ftypeschema-angular-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapioo%2Ftypeschema-angular-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapioo%2Ftypeschema-angular-editor/lists"}