Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions .claude/settings.local.json

This file was deleted.

22 changes: 7 additions & 15 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,10 @@ jobs:
test:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: "npm"
- run: yarn
- run: yarn format:check
- run: yarn lint
- run: yarn test
- run: yarn build
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- uses: actions/checkout@v6
- uses: jdx/mise-action@v2
- run: pnpm install
- run: pnpm format:check
- run: pnpm lint
- run: pnpm test
- run: pnpm build
22 changes: 10 additions & 12 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,14 @@ jobs:
publish-npm:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/setup-node@v4
with:
node-version: 18
registry-url: https://registry.npmjs.org/
- run: yarn
- run: yarn format:check
- run: yarn lint
- run: yarn test
- run: yarn build
- run: npm publish --access public
- uses: actions/checkout@v6
- uses: jdx/mise-action@v2
- run: pnpm install
- run: pnpm format:check
- run: pnpm lint
- run: pnpm test
- run: pnpm build
- run: pnpm publish --access public --no-git-checks
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
NPM_CONFIG_REGISTRY: https://registry.npmjs.org/
NPM_CONFIG_//registry.npmjs.org/:_authToken: ${{secrets.NPM_TOKEN}}
108 changes: 5 additions & 103 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,107 +1,9 @@
.idea/
.test-registry
.claude/settings.local.json

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-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/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# 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 variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next
.local/

# 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

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port
node_modules/
dist/
coverage/
3 changes: 3 additions & 0 deletions .mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[tools]
node = "24"
pnpm = "10.33.0"
1 change: 0 additions & 1 deletion .nvmrc

This file was deleted.

19 changes: 9 additions & 10 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

### Development

- `npm install` - Install dependencies
- `npm run build` - Compile TypeScript to JavaScript (outputs to dist/)
- `npm run build:watch` - Compile TypeScript in watch mode
- `npm test` - Run all tests with Jest and generate coverage
- `npm run test:watch` - Run tests in watch mode
- `npm run format` - Format code with Prettier
- `npm run format:check` - Check code formatting
- `npm run lint` - Run ESLint on src/ directory
- `pnpm install` - Install dependencies
- `pnpm build` - Compile TypeScript to JavaScript (outputs to dist/)
- `pnpm build:watch` - Compile TypeScript in watch mode
- `pnpm test` - Run all tests with Jest and generate coverage
- `pnpm test:watch` - Run tests in watch mode
- `pnpm format` - Format code with Prettier
- `pnpm format:check` - Check code formatting
- `pnpm lint` - Run ESLint on src/ directory

### Testing

- Tests are written using Jest with ts-jest preset
- Test files follow the pattern `*.test.ts`
- Coverage reports are generated in the `coverage/` directory
- Run specific test: `npm test -- path/to/file.test.ts`
- Run specific test: `pnpm test -- path/to/file.test.ts`

## Architecture

Expand Down Expand Up @@ -53,7 +53,6 @@ This is a TypeScript CLI tool that provides Git workspace management utilities.
- `simple-git` - Git operations
- `inquirer` - Interactive CLI prompts
- `commander` - Command-line interface parsing
- `axios` - HTTP requests for API interactions
- `@labset/leveldb-registry` - Local database for workspace items
- `@labset/task-pool-executor` - Concurrent task execution

Expand Down
48 changes: 7 additions & 41 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,52 +1,19 @@
import { fileURLToPath } from "node:url";
import path from "path";

import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
import { FlatCompat } from "@eslint/eslintrc";
import js from "@eslint/js";
import labsetEslint from "@labset-eslint/eslint-plugin";
import typescriptEslint from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import _import from "eslint-plugin-import";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all,
});
import importPlugin from "eslint-plugin-import";
import tseslint from "typescript-eslint";

export default [
export default tseslint.config(
{
ignores: ["node_modules", "dist", "coverage"],
},
...fixupConfigRules(
compat.extends(
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
),
),
js.configs.recommended,
...tseslint.configs.recommended,
importPlugin.flatConfigs.recommended,
{
plugins: {
"@typescript-eslint": fixupPluginRules(typescriptEslint),
import: fixupPluginRules(_import),
"@labset-eslint": labsetEslint,
},
languageOptions: {
parser: tsParser,
ecmaVersion: 2018,
sourceType: "module",

parserOptions: {
ecmaFeatures: {
modules: true,
},
},
},

settings: {
"import/resolver": {
node: {
Expand All @@ -57,7 +24,6 @@ export default [
},
},
},

rules: {
"@labset-eslint/license-notice": [
"error",
Expand Down Expand Up @@ -93,4 +59,4 @@ export default [
],
},
},
];
);
Loading
Loading