{"id":22672692,"url":"https://github.com/jimlynchcodes/dcl-components-library","last_synced_at":"2026-02-03T18:34:41.827Z","repository":{"id":74887670,"uuid":"404802540","full_name":"JimLynchCodes/dcl-components-library","owner":"JimLynchCodes","description":"An example npm package project for building a decentraland component library!","archived":false,"fork":false,"pushed_at":"2021-09-09T17:35:19.000Z","size":6,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-05T11:51:55.810Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JimLynchCodes.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":"2021-09-09T16:56:33.000Z","updated_at":"2021-09-09T17:36:14.000Z","dependencies_parsed_at":"2023-02-26T21:15:55.584Z","dependency_job_id":null,"html_url":"https://github.com/JimLynchCodes/dcl-components-library","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JimLynchCodes/dcl-components-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimLynchCodes%2Fdcl-components-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimLynchCodes%2Fdcl-components-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimLynchCodes%2Fdcl-components-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimLynchCodes%2Fdcl-components-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JimLynchCodes","download_url":"https://codeload.github.com/JimLynchCodes/dcl-components-library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JimLynchCodes%2Fdcl-components-library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29052635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T15:43:47.601Z","status":"ssl_error","status_checked_at":"2026-02-03T15:43:46.709Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-12-09T16:20:22.178Z","updated_at":"2026-02-03T18:34:41.801Z","avatar_url":"https://github.com/JimLynchCodes.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Example Dcl Component Library\n\nAn example npm package project for building a decentraland component library!\n\n\n\u003cbr/\u003e\n\n# How It Works\n\nThis is a example of a component library to be used in Decentraland projects!\n\nIf deploying your own, you can use [npm scoped packages](https://docs.npmjs.com/creating-and-publishing-scoped-public-packages) to deploy an npm package that begins with your organization (optional, but recommended).\n\n\u003cbr/\u003e\n\n# Consuming This Library In A Project\n\nTo consume the component library, create a new decentraland project on your loal machine. \n\nThen, install the component library via npm using whatever name you chose. something like this:\n```bash\nnpm install @example-org/dcl-components-library\n```\n\nThen project will list `@example-org/dcl-components-library` as a dev dependency, and all the fancy awesome components can be used in your other javascript or typescript files!\n\nFor example, here's how easy it is to add the \"spinning crate\" component onto your stage and control how fast it spins!\n\n```typescript\nimport { SpinningCrate } from '@example-org/dcl-components-library';\n\n// Create the entity\nconst spinningCrate = new SpinningCrate(42)\n\n// Add the entity to the engine\nengine.addEntity(spinningCrate)\n```\n\n# Peer Dependencies\n\nVirtually all project for building things in Decentraland depend on the _Decentraland Entity Component Sytem._\n\nThis is the [decentraland-ecs](https://www.npmjs.com/package/decentraland-ecs) npm package. This project declares `decentraland-ecs` as a \"peer dependency\" which means it does not get packaged in with the final build. Instead, it uses the `decentraland-ecs` package that the consumer has already installed in his or her project.  \n\nNote that consumers must use _at least_ the version of `decentraland-ecs` that it specifies in the package.json of this project.  \n\n\u003cbr/\u003e\n\n# CI / CD Automation Stuff\n\nWe can take advantage of the fact that npm versions can have additional text after the \"semver\" code.\n\nConsider this scenario: you are a developor adding a componet to this library. Suppose the library is currently at version `1.2.3`, and since you added a non-breaking change you want to update it to `1.2.4`. \n\n_To publish an npm package, all you need to do is run `npm publish`._ And with the right environment variables, we can run `npm publish` on our build servers!\n\nA fancy build script can even take the `1.2.4` in our package.json of the component library, and publish a version of `1.2.4-alpha` when PRs are opened. \n\nThen once they are merged into dev, another build script can publish it with the version `1.2.4-beta` or `1.2.4-staging` (the namings can be whatever you decide)!\n\nThen finally, when we are happy with the staging version we can cut a final `1.2.4` version, redeploying the working package with the new version. \n\n\n\u003cbr/\u003e\n\n# Contributing\n\nWe're looking for creative people to help us build awesome stuff for Decentraland!\n\nYou're always welcome to join our coding fam:\n\n - Meetup - https://www.meetup.com/ethbuilders/\n\n - Slack - https://join.slack.com/t/nyc-blockchain-devs/shared_invite/zt-9q57smnm-HHkovOCbhT_i_~U2V3Nuew\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimlynchcodes%2Fdcl-components-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjimlynchcodes%2Fdcl-components-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjimlynchcodes%2Fdcl-components-library/lists"}