{"id":32406874,"url":"https://github.com/rodsevich/public_wrapper_gen","last_synced_at":"2026-07-08T22:30:59.500Z","repository":{"id":147132916,"uuid":"78581129","full_name":"Rodsevich/public_wrapper_gen","owner":"Rodsevich","description":"source_gen implementation for easily generating APIs of your library","archived":false,"fork":false,"pushed_at":"2017-01-26T06:16:06.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-25T12:57:47.944Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","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/Rodsevich.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-01-10T22:41:15.000Z","updated_at":"2017-01-26T06:16:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"b354e28b-4013-4b2a-8a5d-36c9b4e55a4b","html_url":"https://github.com/Rodsevich/public_wrapper_gen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rodsevich/public_wrapper_gen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodsevich%2Fpublic_wrapper_gen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodsevich%2Fpublic_wrapper_gen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodsevich%2Fpublic_wrapper_gen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodsevich%2Fpublic_wrapper_gen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rodsevich","download_url":"https://codeload.github.com/Rodsevich/public_wrapper_gen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rodsevich%2Fpublic_wrapper_gen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35280681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-08T02:00:06.796Z","response_time":61,"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":"2025-10-25T12:57:19.744Z","updated_at":"2026-07-08T22:30:59.486Z","avatar_url":"https://github.com/Rodsevich.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# public_wrapper_gen\n\nA code generator based on source_gen to easily make APIs for libraries.\n\n## Use case\n\n - You have a library that is a mess, or is written in another language, or whatever... And you want to show a clean API to your clients.\n - You want an easy way of fighting against the not so straightforward *_private* \"to the library\" (that in reality is not much like that) Dart feature and avoiding the tedious parts of the library.\n\n## Usage\n\nA simple usage example:\n\n    // your_package/lib/src/ClaseInterna.dart\n\n    import 'package:public_wrapper_gen/public_wrapper_gen.dart';\n\n    library your_library;\n\n    part \"this_file.g.dart\";\n\n    @PublicWrapper(\"PublicClass\")\n    class TuClaseInterna { //TuClaseInterna = yourInternalClass\n      @PublicKey(\"salutation\", inDefaultConstructor: true)\n      String saludo = \"Hola\";\n\n      TuClaseInterna(this.saludo);\n\n      /// documentation will be copied\n      String salutation() =\u003e generarSaludo();\n\n      @OmitGeneration\n      String generarSaludo() =\u003e this.saludo;\n    }\n\nGenerate by running: ` pub run public_wrapper_gen:generate your_file.dart `\n\n    // your_package/lib/src/ClaseInterna.g.dart\n\n    part of \"your_library\";\n\n    /// Generated from [TuClaseInterna]\n    class PublicClass {\n      TuClaseInterna _wrapped;\n\n      String get salutation =\u003e _wrapped.saludo;\n      void set salutation(String x){ _wrapped.saludo = x}\n\n      PublicClass(salutation) : _wrapped = new TuClaseInterna(salutation);\n\n      /// documentation will be copied\n      String salutation() =\u003e _wrapped.salutation();\n    }\n\nNow in your library export file:\n\n    // your_package/lib/your_library.dart\n\n    export 'src/ClaseInterna.dart show PublicClass';\n\n\n## Features and bugs\n\nPlease file feature requests and bugs at the [issue tracker][tracker].\n\n[tracker]: http://github.com/Rodsevich/plublic_wrapper_gen/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodsevich%2Fpublic_wrapper_gen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodsevich%2Fpublic_wrapper_gen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodsevich%2Fpublic_wrapper_gen/lists"}