diff --git a/.github/dependabot.yml b/.github/dependabot.yml index fa65dc85..83d21d57 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -37,3 +37,15 @@ updates: - lopopolo labels: - A-deps + - package-ecosystem: npm + directory: "/" + schedule: + interval: monthly + groups: + npm-deps: + patterns: + - "*" + assignees: + - lopopolo + labels: + - A-deps diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8d359c53..3dd3737a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -204,6 +204,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v4.1.1 + - name: Setup Node.js runtime + uses: actions/setup-node@v4.0.1 + with: + node-version: "lts/*" + + - name: Install toolchain + run: npm ci + - name: Format with prettier run: npx prettier --check '**/*' diff --git a/.gitignore b/.gitignore index d590539b..60680792 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,145 @@ -# Created by https://www.toptal.com/developers/gitignore/api/vim,rust,ruby -# Edit at https://www.toptal.com/developers/gitignore?templates=vim,rust,ruby +# Created by https://www.toptal.com/developers/gitignore/api/vim,ruby,rust,node +# Edit at https://www.toptal.com/developers/gitignore?templates=vim,ruby,rust,node + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit ### Ruby ### *.gem @@ -95,7 +235,7 @@ tags # Persistent undo [._]*.un~ -# End of https://www.toptal.com/developers/gitignore/api/vim,rust,ruby +# End of https://www.toptal.com/developers/gitignore/api/vim,ruby,rust,node # Overrides diff --git a/.node-version b/.node-version new file mode 100644 index 00000000..b009dfb9 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +lts/* diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..033bed95 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,30 @@ +{ + "name": "@artichokeruby/intaglio", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@artichokeruby/intaglio", + "version": "0.0.0", + "devDependencies": { + "prettier": "^3.2.5" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..1f5c51b0 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "@artichokeruby/intaglio", + "version": "0.0.0", + "private": true, + "description": "UTF-8 string and byte string interner and symbol table", + "keywords": [ + "intern", + "interner", + "symbol", + "rust" + ], + "repository": "github:artichoke/intaglio", + "author": "Ryan Lopopolo (https://hyperbo.la/)", + "homepage": "https://www.artichokeruby.org", + "bugs": "https://github.com/artichoke/intaglio/issues", + "devDependencies": { + "prettier": "^3.2.5" + }, + "scripts": { + "fmt": "prettier --write \"**/*\"" + } +}