{"id":21327364,"url":"https://github.com/wanadev/abitbol","last_synced_at":"2025-07-12T07:31:16.726Z","repository":{"id":36246002,"uuid":"40550365","full_name":"wanadev/abitbol","owner":"wanadev","description":"The classiest javascript class library of the world","archived":false,"fork":false,"pushed_at":"2025-06-23T12:15:42.000Z","size":759,"stargazers_count":16,"open_issues_count":0,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-06-23T13:25:31.344Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://wanadev.github.io/abitbol/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wanadev.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,"zenodo":null}},"created_at":"2015-08-11T15:38:56.000Z","updated_at":"2025-06-23T12:15:40.000Z","dependencies_parsed_at":"2022-07-29T21:09:47.302Z","dependency_job_id":"d807f000-784f-4192-bb9a-dc66cf22ef6f","html_url":"https://github.com/wanadev/abitbol","commit_stats":{"total_commits":99,"total_committers":8,"mean_commits":12.375,"dds":0.3939393939393939,"last_synced_commit":"f7b485e3d90304cb439f0160261447b34090f5c6"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/wanadev/abitbol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fabitbol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fabitbol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fabitbol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fabitbol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wanadev","download_url":"https://codeload.github.com/wanadev/abitbol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanadev%2Fabitbol/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264958135,"owners_count":23689006,"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-11-21T21:16:57.568Z","updated_at":"2025-07-12T07:31:16.234Z","avatar_url":"https://github.com/wanadev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Abitbol\n\n[![Lint and Test](https://github.com/wanadev/abitbol/actions/workflows/node-ci.yml/badge.svg)](https://github.com/wanadev/abitbol/actions/workflows/node-ci.yml)\n[![NPM Version](http://img.shields.io/npm/v/abitbol.svg?style=flat)](https://www.npmjs.com/package/abitbol)\n[![License](http://img.shields.io/npm/l/abitbol.svg?style=flat)](https://github.com/wanadev/abitbol/blob/master/LICENSE)\n[![Discord](https://img.shields.io/badge/chat-Discord-8c9eff?logo=discord\u0026logoColor=ffffff)](https://discord.gg/BmUkEdMuFp)\n\n\nAbitbol is a small Javascript library that provides consistent/easy to use\nclasses for Node.js and web browsers. It is heavily inspired by  Armin\nRonacher's [Classy][] library, but extends its possibilities.\n\n**Features:**\n\n* Simple inheritance\n* Consistent `this` (always points to the current instance)\n* Annotations\n* Computed properties automatically generated from getters and setters\n* Simple way to call a super class method\n* Simple way to declare static properties\n* Handful mixin\n\n**Exemple class definition:**\n\n```javascript\nvar Vehicle = Class.$extend({\n\n    __init__: function(color) {\n        this.color = color;\n        this.speed = 0;\n    },\n\n    move: function(speed) {\n        this.speed = speed;\n    },\n\n    stop: function() {\n        this.speed = 0;\n    }\n\n});\n```\n\n![George Abitbol](./doc/images/george-abitbol.jpg)\n\n\u003e The classiest javascript class library of the world\u003cbr /\u003e\n\u003e -- George Abitbol\n\n\n## Install\n\nTo install Abitbol run the following command:\n\n    npm install abitbol\n\n\n## Documentation\n\n* https://wanadev.github.io/abitbol/\n\n\n## Contributing\n\n### Questions\n\nIf you have any question, you can:\n\n* [Open an issue on GitHub][gh-issue]\n* [Ask on discord][discord]\n\n### Bugs\n\nIf you found a bug, please [open an issue on Github][gh-issue] with as much information as possible.\n\n### Pull Requests\n\nPlease consider [filing a bug][gh-issue] before starting to work on a new feature. This will allow us to discuss the best way to do it. This is of course not necessary if you just want to fix some typo or small errors in the code.\n\n### Coding Style / Lint\n\nTo check coding style, run the follwoing command:\n\n    npx grunt lint\n\n### Tests\n\nTu run tests, use the following command:\n\n    npx grunt test\n\n### Build For Browsers\n\nTo generate browser version of the lib (files in the `dist/` folder), run:\n\n    npx grunt\n\n\n[gh-issue]: https://github.com/wanadev/abitbol/issues\n[discord]: https://discord.gg/BmUkEdMuFp\n\n\n## Changelog\n\n* **[NEXT]** (changes on master that have not been released yet):\n\n    * Nothing yet ;)\n\n* **v2.1.2:**\n\n    * feat: Improved TypeScript type definition for Abitbol classes (@Pduhard, #44)\n    * misc: Updated dev dependencies (@dependabot)\n\n* **v2.1.1:**\n\n    * Updated dev dependencies (@jbghoul, #34)\n\n* **v2.1.0:**\n\n    * Added TypeScript type definitions (@jbghoul, #26)\n\n* **v2.0.1:**\n\n    * Optimization of special properties detection (@jbghoul, #23)\n\n* **v2.0.0:**\n\n    * New pre/post build hooks that allows to implement new patterns on Abitbol Classes.\n\n* **v1.2.0:**\n\n    * Support static method/properties in mixin\n\n* **v1.1.1**:\n\n    * Updates doc and README\n\n* **v1.1.0**:\n\n    * Adds ES2015 support in the annotation parser\n\n* **v1.0.4**:\n\n    * Updates dependencies\n\n* **v1.0.3**:\n\n    * Allows computed properties' accessors and mutators to be monkey-patched.\n\n* **v1.0.2**:\n\n    * Do not wrap methods when it is not necessary.\n\n* **v1.0.1**:\n\n    * Fixes context issue with nested method calls.\n\n* **v1.0.0**:\n\n    * Computed properties generated from accessors and mutators (get/set), annotations, proper `this`.\n\n* **v0.1.0**:\n\n    * Equivalent to Classy (except `Class.$classyVersion`, `Class.$withData()`, `Class.$noConflict()` that are not implemented).\n\n\n[Classy]: https://github.com/mitsuhiko/classy\n[dl-zip]: https://github.com/wanadev/abitbol/archive/master.zip\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanadev%2Fabitbol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwanadev%2Fabitbol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanadev%2Fabitbol/lists"}