{"id":16099041,"url":"https://github.com/hellerve/dbc","last_synced_at":"2025-04-05T22:43:54.758Z","repository":{"id":79626239,"uuid":"155096140","full_name":"hellerve/dbc","owner":"hellerve","description":"A toy design-by-contract system for zepto","archived":false,"fork":false,"pushed_at":"2018-10-31T15:59:57.000Z","size":1,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-12T05:12:20.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellerve.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-10-28T17:21:07.000Z","updated_at":"2023-09-08T17:46:36.000Z","dependencies_parsed_at":"2023-03-08T00:00:34.327Z","dependency_job_id":null,"html_url":"https://github.com/hellerve/dbc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fdbc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fdbc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fdbc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fdbc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellerve","download_url":"https://codeload.github.com/hellerve/dbc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411193,"owners_count":20934650,"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":[],"created_at":"2024-10-09T18:25:31.784Z","updated_at":"2025-04-05T22:43:54.734Z","avatar_url":"https://github.com/hellerve.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# dbc\n\nA design-by-contract system for [zepto](https://github.com/zepto-lang/zepto).\nBuilt for an upcoming blog post on Scheme macros. Inspired by [ds2643’s\nimplementation in Common Lisp](https://github.com/ds2643/dbc).\n\n## Usage\n\nThis is an overly simple design-by-contract system expressed in a single macro.\nIt understands pre- and post-conditions. Its syntax looks a little like that:\n\n```scheme\n(defcontract (double xs)\n  (pre (list? xs) (all? number? xs))\n  (post (list? *ret*) (all? number? *ret*))\n  (map (lambda (x) (* x 2)) xs))\n```\n\nThe variable `*ret*` is the return value of the function, and it’s available for\nall post-conditions.\n\nFor more information about what it is and how to build something like this\nyourself, [stay tuned for the blog post](//blog.veitheller.de/scheme-macros)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellerve%2Fdbc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellerve%2Fdbc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellerve%2Fdbc/lists"}