{"id":20797182,"url":"https://github.com/daniguardiola/package-template","last_synced_at":"2025-04-09T19:43:09.854Z","repository":{"id":205619398,"uuid":"714670195","full_name":"DaniGuardiola/package-template","owner":"DaniGuardiola","description":"A package template that uses the latest and greatest tools while keeping things simple.","archived":false,"fork":false,"pushed_at":"2024-01-08T19:32:29.000Z","size":219,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-23T21:45:48.012Z","etag":null,"topics":["bun","javascript","npm","package","template","tshy","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/DaniGuardiola.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}},"created_at":"2023-11-05T15:01:58.000Z","updated_at":"2024-04-18T00:10:04.000Z","dependencies_parsed_at":"2024-01-08T20:48:59.841Z","dependency_job_id":null,"html_url":"https://github.com/DaniGuardiola/package-template","commit_stats":null,"previous_names":["daniguardiola/package-template"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniGuardiola%2Fpackage-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniGuardiola%2Fpackage-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniGuardiola%2Fpackage-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DaniGuardiola%2Fpackage-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DaniGuardiola","download_url":"https://codeload.github.com/DaniGuardiola/package-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248101384,"owners_count":21047962,"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":["bun","javascript","npm","package","template","tshy","typescript"],"created_at":"2024-11-17T16:32:53.155Z","updated_at":"2025-04-09T19:43:09.833Z","avatar_url":"https://github.com/DaniGuardiola.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My package template\n\nThis is my personal npm package template. It uses the latest and greatest tools while keeping things simple.\n\nHere's what's included:\n\n- [Bun](https://bun.sh/): fast package manager and task runner.\n- [TypeScript](https://www.typescriptlang.org/): typed JavaScript.\n- [tshy](https://github.com/isaacs/tshy/): package builder. It Just Works™️ for ESM + CommonJS exports.\n- [Changesets](https://github.com/changesets/changesets): versioning, changelogs and releases.\n  - Includes a GitHub Action that automates changelogs and releases.\n- [ESLint](https://eslint.org/): linting.\n  - Using the recommended rules from [`eslint`](https://eslint.org/docs/latest/rules/) and [`@typescript-eslint`](https://typescript-eslint.io/rules/?=recommended) + deterministic import sort.\n- [Prettier](https://prettier.io/): code formatting.\n- Bug and feature request forms for GitHub issues.\n- Automatic pull request CI checks: types, format, and linting.\n\n## Usage\n\nThe easiest way to use this template is by using `bun create`:\n\n```\nbun create DaniGuardiola/package-template my-package\n```\n\nYou can also use the \"Use this template\" button on GitHub.\n\nOnce initialized, make sure to follow these steps:\n\n- [ ] Update the name, description and author in the `package.json` file.\n- [ ] Update the heading of the `CHANGELOG.md` file.\n- [ ] Replace the author in the `LICENSE` file.\n- [ ] Replace this README's content with your own.\n- [ ] Publish to GitHub.\n- [ ] Register the `NPM_TOKEN` secret for GitHub actions.\n\n  This is required to publish the package to npm from the `publish.yml` workflow.\n\n  1. Go to `https://www.npmjs.com/settings/\u003cyour username\u003e/tokens`.\n  2. Generate a new access token that has read and write permissions for, at the very least, your new package.\n  3. Copy the token and go to your GitHub repository.\n  4. Go to Settings \u003e Secrets and variables \u003e Actions.\n  5. Create a new repository secret called `NPM_TOKEN` and paste the token as its value.\n\n- [ ] Enable the right permissions for the `GITHUB_TOKEN` secret:\n\n  This is required for Changesets to create and update pull requests for versioning from the `publish.yml` workflow.\n\n  1. In your GitHub repository, go to Settings \u003e Actions \u003e General.\n  2. Scroll down to \"Workflow permissions\".\n  3. Select the \"Read and write permissions\".\n  4. Enable \"Allow GitHub Actions to create and approve pull requests\".\n\n- [ ] Create a great package and publish it to npm! 🚀\n\n## Releases\n\nThis template uses [Changesets](https://github.com/changesets/changesets) to manage releases. Check out their documentation to learn how to use it. The basic idea is:\n\n1. Make changes.\n2. Run `bun changeset` to create a new changeset.\n3. Commit and push the changeset (either directly to `main` or by merging a pull request).\n4. A PR titled \"Version Packages\" will be created (or updated) by the `publish.yml` workflow.\n5. Merge the PR when you're ready to publish a new version.\n6. The `publish.yml` workflow will publish the new version to npm.\n\n## Recommendations\n\nThis is a list of settings and other things that I usually do in my packages. They are not mandatory though!\n\n- General settings\n\n  - [ ] Enable \"Always suggest updating pull request branches\".\n  - [ ] Enable \"Allow auto-merge\".\n  - [ ] Enable \"Automatically delete head branches\".\n  - [ ] From \"Allow merge commits/squash merging/rebase merging\" leave only \"Allow squash merging\" enabled.\n  - [ ] In the same setting, select \"Default to pull request title\".\n\n- Main branch protection\n\n  In your GitHub repository, go to Settings \u003e Branches and click \"Add rule\".\n\n  - [ ] In \"Branch name pattern\", type \"main\".\n  - [ ] Enable \"Require a pull request before merging\".\n  - [ ] Enable \"Require approvals\".\n  - [ ] Enable \"Require approval of the most recent reviewable push\".\n  - [ ] Enable \"Require status checks to pass before merging\".\n  - [ ] Enable \"Require branches to be up to date before merging\".\n  - [ ] Add the following status checks as required: `check-format`, `check-types`, `lint`.\n  - [ ] Enable \"Lock branch\".\n\n  Finally, click \"Create\".\n\n## Contributing\n\nContributions are welcome, but I will need to agree to significant changes since this is, after all, my personal template. Feel free to open an issue to discuss it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniguardiola%2Fpackage-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniguardiola%2Fpackage-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniguardiola%2Fpackage-template/lists"}