Skip to content

Commit 6d4a6c8

Browse files
simllllclaudegithub-actions[bot]
authored
chore: modernize repo tooling and dependencies (#8)
* chore: modernize repo tooling and dependencies Major dependency updates: - Migrate redis-storage from redis@3.x to redis@4.x (native promises) - Update @types/node from 18.19.0 to ^20.0.0 - Upgrade TypeScript from 5.1.6 to ^5.7.0 - Upgrade ESLint from 8.x to 9.x with flat config - Upgrade Prettier from 2.x to 3.x - Migrate test framework from Mocha to Vitest ESM conversion: - Add "type": "module" to root package.json - Convert gulpfile.js to ESM syntax Code quality: - Remove deprecated bluebird dependency - Remove old .eslintrc.js in favor of eslint.config.js - Update tsconfig.json with modern settings (NodeNext modules, ES2022) - Convert all test files from Mocha/assert to Vitest/expect * chore: replace gulp with npm scripts - Remove gulp, del, and glob dependencies - Add rimraf for cross-platform file deletion - Convert gulp tasks to npm scripts: - clean: removes dist and .tmp directories - clean:modules: removes node_modules from packages - clean:all: runs both clean tasks - Remove gulpfile.js * chore: use modern exports field in package.json Replace legacy main/types fields with the modern exports field for all packages. This provides: - Better encapsulation of package internals - Proper TypeScript resolution via types condition - Future-proof for subpath exports if needed All packages now use: "exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" } } * chore: add changeset * ci: use GitHub App token for changeset bot Use a GitHub App token instead of GITHUB_TOKEN so that commits made by the changeset bot will trigger subsequent workflow runs (CI checks). Required setup: 1. Create a GitHub App with Contents: write permission 2. Install the app on the repository 3. Add BOT_APP_ID as a repository variable 4. Add BOT_APP_PRIVATE_KEY as a repository secret * chore: add .prettierignore to exclude .changeset folder * fix: increase redis test timeout for CI * ci: remove custom changeset workflows in favor of official bot * ci: retry tests * ci: use Redis service container instead of redis-memory-server in CI - Add Redis 7 service container to test workflow - Update redis storage test to use CI Redis when REDIS_HOST/REDIS_PORT set - Fall back to redis-memory-server for local development - Fixes timeout issues on Node 20 * chore: remove changeset to test bot flow * chore: remove redis-memory-server dependency - Remove redis-memory-server from devDependencies - Tests now require actual Redis (CI service container or local Docker) - Faster installs, no 4MB binary download --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent a2b80d2 commit 6d4a6c8

38 files changed

Lines changed: 1704 additions & 4158 deletions

.eslintrc.js

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/workflows/changeset-bot.yml

Lines changed: 0 additions & 196 deletions
This file was deleted.

.github/workflows/changeset-check.yml

Lines changed: 0 additions & 86 deletions
This file was deleted.

.github/workflows/test.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@ jobs:
1616
node-version: ['20', '22', '24']
1717
fail-fast: false
1818

19+
services:
20+
redis:
21+
image: redis:7
22+
ports:
23+
- 6379:6379
24+
options: >-
25+
--health-cmd "redis-cli ping"
26+
--health-interval 10s
27+
--health-timeout 5s
28+
--health-retries 5
29+
1930
steps:
2031
- name: Checkout repository
2132
uses: actions/checkout@v4
@@ -39,6 +50,8 @@ jobs:
3950
run: pnpm test
4051
env:
4152
CI: true
53+
REDIS_HOST: localhost
54+
REDIS_PORT: 6379
4255

4356
lint:
4457
name: Lint & Format

.prettierignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules
2+
dist
3+
.changeset
4+
pnpm-lock.yaml

eslint.config.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import eslint from '@eslint/js';
2+
import tseslint from 'typescript-eslint';
3+
4+
export default tseslint.config(
5+
eslint.configs.recommended,
6+
...tseslint.configs.recommended,
7+
{
8+
languageOptions: {
9+
ecmaVersion: 2022,
10+
sourceType: 'module',
11+
parserOptions: {
12+
projectService: true,
13+
tsconfigRootDir: import.meta.dirname
14+
}
15+
},
16+
rules: {
17+
'@typescript-eslint/no-explicit-any': 'off',
18+
'@typescript-eslint/explicit-module-boundary-types': 'off',
19+
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }]
20+
}
21+
},
22+
{
23+
ignores: ['**/dist/**', '**/node_modules/**', '**/*.js', '!eslint.config.js']
24+
}
25+
);

0 commit comments

Comments
 (0)