Skip to content

feat: setup Nx workspace with comprehensive development tooling#5

Open
shettydev wants to merge 2 commits intofixes/dist-removefrom
feat/nx-setup
Open

feat: setup Nx workspace with comprehensive development tooling#5
shettydev wants to merge 2 commits intofixes/dist-removefrom
feat/nx-setup

Conversation

@shettydev
Copy link
Copy Markdown

@shettydev shettydev commented Aug 10, 2025

Description

This PR transforms the SSHield project into a fully configured Nx workspace, improving project organization. The changes introduce tooling and automation with the help of nx.

Key Improvements:

  • Nx Workspace Configuration: Complete setup with named inputs, target defaults, and caching for improved build performance
  • ESLint Integration: Comprehensive TypeScript-aware linting rules with proper globals and recommended configurations (basic setup - needs to be expanded)
  • Development Workflow: Standardized tasks for build, development, linting, and testing through Nx targets
  • Project Structure: Clean separation of concerns with proper ignore patterns for generated files
  • Module System: Updated to ES modules (from commonjs) for better modern JavaScript compatibility

Type of change

  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

The following commands have been verified to work correctly:

  • nx build - Compiles TypeScript and outputs to dist directory
  • nx dev - Runs the application in development mode using ts-node
  • nx lint - Executes ESLint with the new TypeScript configuration
  • nx start - Runs the compiled application from dist
  • All existing CLI functionality remains intact and operational

If you don't have the CLI installed then you can use test it out using pnpm nx ... as well

Screenshots (if appropriate):

screenshot of the nx graph:

image

Additional context

This setup provides a solid foundation for future development and scaling of the SSHield project. The Nx workspace will enable:

  • Faster builds through intelligent caching
  • Consistent code quality through standardized linting
  • Improved development workflow with unified task execution
  • Better project organization as the codebase grows

Things to be implemented:

  • The monorepo workspace setup is yet to be implemented by @shaiknoorullah in order for multiple projects to be registered
  • Lint rules need to be expanded
  • Developer documentation needs to be included and the relevant steps for the use of the nx commands need to be listed

- Create .gitignore entries for nx cache, workspace data, dist, and
other generated files - Add eslint.config.js with comprehensive
TypeScript ESLint rules - Add nx.json with named inputs, target
defaults, and @nx/js plugin - Add project.json defining build, start,
dev, lint, and test targets - Update package.json: set module type, add
@eslint/js, @nx/js, @typescript-eslint/*, eslint, nx devDependencies,
and nx field - Update pnpm-lock.yaml with new dependencies and lockfile
entries - Ensure all new files and configurations are committed for a
fully configured Nx workspace and linting environment.
@shettydev shettydev self-assigned this Aug 10, 2025
@shettydev shettydev changed the title fix: fixes and enhances code feat: setup Nx workspace with comprehensive development tooling Aug 10, 2025
@shettydev shettydev added the enhancement New feature or request label Aug 10, 2025
@shettydev shettydev marked this pull request as ready for review August 10, 2025 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant