VOOZH about

URL: https://deepwiki.com/Digilac/simap-mcp/7.2-development-dependencies

⇱ Development Dependencies | Digilac/simap-mcp | DeepWiki


Loading...
Menu

Development Dependencies

This page documents the development dependencies used in the simap-mcp project. These are tools and libraries required during development but not included in the production runtime. For runtime dependencies (production dependencies used when the server executes), see 7.1 Runtime Dependencies.

Overview

The project utilizes a modern TypeScript development stack centered around tsc for compilation, eslint for code quality, prettier for formatting, and vitest for testing. These dependencies ensure type safety, consistent style, and functional correctness before the code is transpiled to JavaScript for distribution. As of v1.3.0, the development environment is optimized for Node.js >=22.

Sources: package.json47-49 package.json58-68

Development Dependencies Table

PackageVersionPurpose
typescript^6.0.3TypeScript compiler for transpiling .ts source to JavaScript
@types/node^25.9.1TypeScript type definitions for Node.js built-in modules
eslint^10.4.0Core linting engine for identifying code quality issues
@eslint/js^10.0.1ESLint's JavaScript configuration and rules
typescript-eslint^8.59.4TypeScript-specific ESLint rules and parser
prettier^3.8.3Code formatter for consistent style
vitest^4.1.7Testing framework with native ESM and TypeScript support
@changesets/cli^2.31.0Tool for managing versioning and changelogs

Sources: package.json58-68

Development Workflow Integration

The following diagram illustrates how development dependencies interact during the local development lifecycle, from writing code to generating the distribution build.

Development Toolchain Flow


Sources: package.json11-27 tsconfig.json1-17

TypeScript Configuration

The project uses TypeScript 6.0.3. The configuration is optimized for modern Node.js environments using ECMAScript Modules (ESM).

Compiler Options (tsconfig.json)

The tsconfig.json file defines the transformation from src/ to dist/. Key settings include:

Sources: tsconfig.json1-17 package.json65

Linting and Formatting

ESLint Configuration

The project uses the "Flat Config" format (eslint.config.js). It combines the recommended JavaScript rules from @eslint/js with the recommended TypeScript rules from typescript-eslint.

Custom Rule Implementation:

Sources: eslint.config.js1-20 package.json61-66

Prettier Configuration

Formatting is controlled via CLI arguments in package.json scripts. The project uses prettier ^3.8.3 package.json64

  • Scripts: format runs prettier --write src/ and format:check runs prettier --check src/ package.json17-18

Sources: package.json17-18 package.json64

Testing Infrastructure

Vitest

Vitest 4.1.7 is the chosen test runner. It is configured to run in the src/ directory and respects the project's ESM configuration.

Execution Modes:

  • Single Run: npm test executes vitest run for CI environments package.json20
  • Watch Mode: npm run test:watch executes vitest for interactive local development package.json21

Sources: package.json67 package.json20-21

Versioning and Releases

The project uses @changesets/cli to manage versioning and the automated generation of changelogs.

  • Changeset Creation: npm run changeset allows developers to document changes package.json24
  • Versioning: npm run version-packages applies changesets, updates the version, and syncs internal metadata package.json25
  • Publication: npm run release uses changeset publish to push the package to the registry package.json26

Sources: package.json24-26 package.json59-60

Development Task Mapping

This diagram maps the high-level development tasks to the specific underlying tools and configurations defined in the codebase.

Task to Tool Mapping


Sources: package.json11-27 tsconfig.json1-17 eslint.config.js1-20

Script Reference

ScriptCommandDescription
buildtscTranspiles TypeScript to JavaScript in dist/ package.json12
startnode dist/index.jsRuns the compiled server package.json13
devnpm run build && npm startRebuilds and starts the server for local testing package.json14
linteslint src/Runs static analysis on source files package.json15
lint:fixeslint src/ --fixAutomatically fixes repairable linting issues package.json16
formatprettier --write src/Rewrites source files to match style guide package.json17
format:checkprettier --check src/Validates formatting without modifying files package.json18
typechecktsc --noEmitRuns the compiler's type checker without generating files package.json19
testvitest runExecutes the test suite once package.json20
test:watchvitestRuns tests in interactive watch mode package.json21
update:checknpx npm-check-updates --target semverChecks for available dependency updates package.json22
changesetchangesetCreates a new changeset for versioning package.json24
releasechangeset publishPublishes the package to npm package.json26
prepublishOnlynpm run buildLifecycle hook ensuring a fresh build before npm publication package.json27

Sources: package.json11-27