Template TypeScript Node.js package with all the CI bells & whistles I commonly use. ✨

Overview
Comments
  • 📝 Documentation: Not really documentation; rather feedback on using the latest and greatest

    📝 Documentation: Not really documentation; rather feedback on using the latest and greatest

    Bug Report Checklist

    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    When using this, I didn't know what this meant:

    ✔ Whether to skip calling the GitHub API (effectively making this a local-only change). · no

    I still don't! What does it mean?

    The generated project still seems to be not completely initialised. Consider the package.json:

    	"author": "Josh Goldberg <[email protected]>",
    

    Likewise, the contributors lists Josh Goldberg and not me.

    Additional Info

    Happy to provide more in depth details

    area: documentation 
    opened by johnnyreilly 22
  • 📝 Documentation: Setup instructions for a new repo

    📝 Documentation: Setup instructions for a new repo

    Bug Report Checklist

    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    I'll want to document what to do to take this template & make a new repo out of it.

    Additional Info

    At the very least:

    • Find-and-replace template-typescript-node-package to the new name
    • Fill out TODO in .md files
    • Empty out src/
    • Create a new package-specific publish token and set it as the NPM_TOKEN env variable in settings
    • Make sure GH_TOKEN is available on your account in CI
    • Set up required CI jobs
    • Go through GitHub settings in general:
      • Disable Wikis
      • Enable Sponsorships
      • Uncheck Allow merge commits and Allow rebase merging
      • Uncheck Projects
      • Check Always suggest updating pull request branches
      • Check Allow auto-merge
      • Check Automatically delete head branches
      • Check Limit how many branches and tags can be updated in a single push
    • Clearing out the all-contributors badge & table
    • Set version to something like 0.1.0 or 0.0.1
    released 
    opened by JoshuaKGoldberg 10
  • feat: add .nvmrc and `engines` key to package.json

    feat: add .nvmrc and `engines` key to package.json

    PR Checklist

    Overview

    It's like https://github.com/JoshuaKGoldberg/refined-saved-replies/pull/69 but for this repo. 🙃

    opened by Pinjasaur 7
  • fix: run build prior to release

    fix: run build prior to release

    PR Checklist

    Overview

    This PR adds in a build step to the release.yml so the build artefacts exist for publishing. It also excludes src from publishing as it bloats package size and isn't used.

    PR requested here: https://github.com/JoshuaKGoldberg/template-typescript-node-package/issues/147#issuecomment-1364555919

    It also ensure vitest doesn't try and run tests in the lib folder.

    opened by johnnyreilly 4
  • chore: move

    chore: move "plugin:typescript-sort-keys/recommended" to override scope

    PR Checklist

    Overview

    Moves TypeScript interface & type key sorting in ESLint to an override scope so that it only applies to TypeScript files.

    released 
    opened by NazCodeland 4
  • 🛠 Tooling: Enable @typescript-eslint/naming-convention

    🛠 Tooling: Enable @typescript-eslint/naming-convention

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    https://typescript-eslint.io/rules/naming-convention is a good rule but requires some configuration. I'll admit, I haven't figured out my preferred config for it yet.

    Additional Info

    Related: #18

    opened by JoshuaKGoldberg 4
  • 🛠 Tooling: Rename to template-typescript-package

    🛠 Tooling: Rename to template-typescript-package

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    It's a simpler name and the "node" part is irrelevant.

    Additional Info

    No response

    area: tooling accepting prs 
    opened by JoshuaKGoldberg 3
  • 🛠 Tooling: Add changelogs to semantic-release workflow

    🛠 Tooling: Add changelogs to semantic-release workflow

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    https://github.com/semantic-release/changelog -- let's use it!

    Additional Info

    No response

    opened by JoshuaKGoldberg 3
  • 🛠 Tooling: Add more ESLint plugins

    🛠 Tooling: Add more ESLint plugins

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    https://github.com/dustinspecker/awesome-eslint has a huge list of plugins. Let's add in any more that are relevant.

    Additional Info

    Sibling issue to #16.

    released 
    opened by JoshuaKGoldberg 3
  • 🐛 Bug: npm releases are out of sync with package.json

    🐛 Bug: npm releases are out of sync with package.json

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Expected

    The versions in npm and package.json should be in sync.

    Actual

    • npm has 1.13.0
    • package.json has 1.12.0

    ...and every time I bump package.json, somehow the npm version gets bumped to one higher. I don't understand. Is there a tag thing wrong somewhere?

    Additional Info

    No response

    type: bug area: tooling accepting prs 
    opened by JoshuaKGoldberg 2
  • feat: used semantic-release/exec to clean changelog headings

    feat: used semantic-release/exec to clean changelog headings

    PR Checklist

    Overview

    Pending https://github.com/semantic-release/changelog/issues/279 having a resolution, this uses a manual script to swap out \n# for \n## in CHANGELOG.md.

    opened by JoshuaKGoldberg 2
  • 🛠 Tooling: Sort allcontributors table alphabetically

    🛠 Tooling: Sort allcontributors table alphabetically

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    TIL that the allcontributors table is sorted by when people are added, not alphabetically. https://github.com/all-contributors/all-contributors/issues/225

    https://github.com/all-contributors/cli/pull/249 indicates a contributorsSortAlphabetically option is available.

    I like the alphabetical order for a couple reason:

    • It makes the order deterministic
    • It stops me from always being the first person on the list for all repos (😂)

    Additional Info

    I think this should be roughly a single-line change, right? Adding "contributorsSortAlphabetically": true to the .all-contributorsrc file?

    good first issue area: tooling accepting prs 
    opened by JoshuaKGoldberg 0
  • 🐛 Bug: Setup script isn't updating all .github/ contents

    🐛 Bug: Setup script isn't updating all .github/ contents

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Expected

    From https://github.com/JoshuaKGoldberg/template-typescript-node-package/issues/147#issuecomment-1364551999: after running pnpm run setup, all files inside .github should have their contents updated to the new name, repository, etc.

    Actual

    Looks like they're not all updated.

    Additional Info

    Similar to #155, but for actions.

    good first issue type: bug accepting prs 
    opened by JoshuaKGoldberg 0
  • 🛠 Tooling: Investigate simplifying setup to not need ACCESS_TOKEN

    🛠 Tooling: Investigate simplifying setup to not need ACCESS_TOKEN

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    From https://github.com/JoshuaKGoldberg/template-typescript-node-package/issues/147#issuecomment-1364487493: ${{ secrets.GITHUB_TOKEN }} should already exist. Is asking users to create an ACCESS_TOKEN PAT & using it in release.yml unnecessary work?

    It'd be great if we can use the built-in token instead, so users don't have to make a new one.

    Additional Info

    For context, it's used in release.yml right now to call to the GitHub API for toggling branch protections before & after package releasing.

    https://github.com/JoshuaKGoldberg/template-typescript-node-package/blob/8c5722e7ccc0fbbec6367bd0cecfc51031c361e1/.github/workflows/release.yml#L42

    area: tooling status: needs investigation 
    opened by JoshuaKGoldberg 2
  • docs: described setup script options, with new description

    docs: described setup script options, with new description

    PR Checklist

    Overview

    Adds a section in the README.md that explains them. It gets removed by setup as well.

    Also changes the package description to one more distinct from the title. I figured that'd be more clear & easier to understand when reading the docs.

    opened by JoshuaKGoldberg 1
  • 🛠 Tooling: Make sure no file in the repo contains

    🛠 Tooling: Make sure no file in the repo contains "josh" in end-to-end setup test

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    In #146, I added an "end-to-end" test script/setup-test-e2e.js for the setup script. It tests that some basic aspects of the script are as expected: that the script doesn't crash, and that it updates a couple values in package.json. More aspects should be tested though!

    From https://github.com/JoshuaKGoldberg/template-typescript-node-package/issues/147#issuecomment-1364486226: to start, I think the test file should make sure there are no more instances of JoshuaKGoldberg in the repository at all. Doing so would make sure there are no files being missed by the setup script's find-and-replace.

    Additional Info

    I'm imagining you can probably use a quick shell script to search in files. Or an npm package. Either way 🤷

    good first issue area: tooling accepting prs area: testing 
    opened by JoshuaKGoldberg 0
  • 🚀 Feature: Setup script should add the running user to .all-contributorsrc

    🚀 Feature: Setup script should add the running user to .all-contributorsrc

    Bug Report Checklist

    • [X] I have tried restarting my IDE and the issue persists.
    • [X] I have pulled the latest main branch of the repository.
    • [X] I have searched for related issues and found none that matched my issue.

    Overview

    From #147: if someone is running the setup script, they should be added to the .all-contributorsrc allcontributors config for (I'm thinking to start): code, content, documentation, ideas, infrastructure, maintenance, projectManagement, tool.

    Additional Info

    See https://allcontributors.org/docs/en/emoji-key for the full allcontributors emoji key.

    The setup script already makes sure the user is authenticated with gh. So you can get information on the user by running gh api user in the script.

    const user = JSON.parse(await $`gh api user`);
    
    good first issue type: feature accepting prs 
    opened by JoshuaKGoldberg 0
Releases(v1.27.12)
Owner
Josh Goldberg
Full time open open source 💖✨ prev @Codecademy @microsoft ✨ @typescript-eslint maintainer, occasional @typescript contributor, side of accessibility
Josh Goldberg
Package fetcher is a bot messenger which gather npm packages by uploading either a json file (package.json) or a picture representing package.json. To continue...

package-fetcher Ce projet contient un boilerplate pour un bot messenger et l'executable Windows ngrok qui va permettre de créer un tunnel https pour c

AILI Fida Aliotti Christino 2 Mar 29, 2022
A devtool improve your pakage manager use experience no more care about what package manager is this repo use; one line, try all.

pi A devtool improve your pakage manager use experience no more care about what package manager is this repo use; one line, try all. Stargazers over t

tick 11 Nov 1, 2022
Multi-platform node package bundle to a package.json.

dmpc Multi-platform node package bundle to a package.json. install ### npm mode npm i -g @kingsword/dmpc ### yarn mode yarn global add @kingsword/dmp

Kingsword 2 Oct 16, 2022
🛫 TypeScript Starter template to simplify creating your next npm package.

TypeScript Starter Kit This is an opinionated TypeScript Starter kit to help kick-start development of your next npm package. ?? Get Started Luckily,

Open Web 7 Sep 27, 2022
🛫 TypeScript Starter template to simplify creating your next npm package.

TypeScript Starter Kit This is an opinionated TypeScript Starter kit to help kick-start development of your next npm package. ?? Get Started Luckily,

Open Web Foundation 5 May 19, 2022
A typescript wrapper package to use the cardano-cli

Coti cardano-cli A package to run cardano-cli commands from nodejs, if you hold a blockfrost API-KEY you could add while creating a cardano-cli instan

Coti 6 Aug 10, 2022
A simple Node.js package that helps you not to look up JavaScript promise syntax every time you use it.

A simple Node.js package that helps you not to look up JavaScript promise syntax every time you use it. Simple: Provides abstraction of the promise sy

Saad Irfan ⚡️ 9 Oct 8, 2022
The template I use to kickstart all my web3 apps.

dApp Starter The template I use to kickstart all my web3 apps. This starter kit is composed of Next.js and Tailwind CSS, with RainbowKit, ethers, & wa

Miguel Piedrafita 364 Dec 18, 2022
This package is for developers to be able to easily integrate bad word checking into their projects.\r This package can return bad words in array or regular expression (regex) form.

Vietnamese Bad Words This package is for developers to be able to easily integrate bad word checking into their projects. This package can return bad

Nguyễn Quang Sáng 8 Nov 3, 2022
Hacktoberfest is all about meeting up all brains. In this repository we are planning to come with many ideas and works. You all can share your ides/works here.

Hacktoberfest Submit your Work Hacktoberfest is all about meeting up all brains. In this repository we are planning to come with many ideas and works.

Chinmay Patil 3 Oct 5, 2022
A package to manage cron-jobs in a node.js Typescript application.

This package is a package to manage cron-jobs in a node.js Typescript application. It is built using node-cron and reflect-metadata packages

Osemudiamen Itua 7 Jul 17, 2022
An npm package for demonstration purposes using TypeScript to build for both the ECMAScript Module format (i.e. ESM or ES Module) and CommonJS Module format. It can be used in Node.js and browser applications.

An npm package for demonstration purposes using TypeScript to build for both the ECMAScript Module format (i.e. ESM or ES Module) and CommonJS Module format. It can be used in Node.js and browser applications.

Snyk Labs 57 Dec 28, 2022
A Typescript Hardhat-based template to develop evm-based smart contracts with all the tooling you need.

EVM-based Smart Contract Scaffold A Typescript Hardhat-based template to develop evm-based smart contracts with all the tooling you need. Features Use

Flair 8 Oct 24, 2022
Node js package makes creating node jd dependincies files like Controllers,Entities and Repositories easier by executing a few instructions

Nodejs Studio Node js package makes creating node js project dependincies files like Controllers,Entities and Repositories easier by executing a few i

Syrian Open Source 9 Oct 12, 2022
This project is a boilerplate for Next and TypeScript projects. This template was built with Vite, TypeScript and Stitches.

Awesome Template Stitches — NextJS, TypeScript, Stitches and Design Tokens Summary About this template Avaliale scripts Other scripts available Main t

Diego Silva 14 Dec 29, 2022
Node WebStation is a powerful tool designed for developers allowing them to create advanced web sockets for any use all without having the requirement to code.

Node WebStation Node WebStation is a powerful tool designed for developers to use to create an advanced WebStation for any use all without not having

null 2 Jun 4, 2022
A node, express and typescript starter template for 2022

Node Express & Typescript Starter for 2022 "A minimally opinionated typescript & express starter for 2022" Usage: You should copy .env.sample to .env

Carter Adams 12 Dec 15, 2022
A Node.js REST API example built with Express and Typescript that can be used as template for creation of new servers.

api-example-firebase-nodejs A Node.js REST API example built with Express and Typescript that can be used as template for creation of new servers. The

Rodrigo João Bertotti 5 Nov 25, 2022
A template for your Node.js projects including Typescript, Eslint, Prettier, Jest and Docker.

Node.js Template Quickly start a new Node.js project A template for your Node.js projects including Typescript, Eslint, Prettier, Jest and Docker. ⏩ G

Lorenzo Carneli 2 Oct 12, 2022