@hazeljs/cli 0.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/@template/README.md +61 -0
  2. package/@template/package.json +48 -0
  3. package/@template/src/app.module.ts +7 -0
  4. package/@template/src/hello.controller.ts +9 -0
  5. package/@template/src/index.ts +10 -0
  6. package/README.md +675 -0
  7. package/dist/commands/add.d.ts +2 -0
  8. package/dist/commands/add.js +90 -0
  9. package/dist/commands/build.d.ts +2 -0
  10. package/dist/commands/build.js +52 -0
  11. package/dist/commands/generate-agent.d.ts +2 -0
  12. package/dist/commands/generate-agent.js +56 -0
  13. package/dist/commands/generate-ai-service.d.ts +2 -0
  14. package/dist/commands/generate-ai-service.js +49 -0
  15. package/dist/commands/generate-app.d.ts +2 -0
  16. package/dist/commands/generate-app.js +246 -0
  17. package/dist/commands/generate-controller.d.ts +2 -0
  18. package/dist/commands/generate-controller.js +59 -0
  19. package/dist/commands/generate-crud.d.ts +2 -0
  20. package/dist/commands/generate-crud.js +203 -0
  21. package/dist/commands/generate-dto.d.ts +2 -0
  22. package/dist/commands/generate-dto.js +56 -0
  23. package/dist/commands/generate-exception-filter.d.ts +2 -0
  24. package/dist/commands/generate-exception-filter.js +50 -0
  25. package/dist/commands/generate-guard.d.ts +2 -0
  26. package/dist/commands/generate-guard.js +35 -0
  27. package/dist/commands/generate-interceptor.d.ts +2 -0
  28. package/dist/commands/generate-interceptor.js +37 -0
  29. package/dist/commands/generate-middleware.d.ts +2 -0
  30. package/dist/commands/generate-middleware.js +79 -0
  31. package/dist/commands/generate-module.d.ts +2 -0
  32. package/dist/commands/generate-module.js +96 -0
  33. package/dist/commands/generate-pipe.d.ts +2 -0
  34. package/dist/commands/generate-pipe.js +33 -0
  35. package/dist/commands/generate-repository.d.ts +2 -0
  36. package/dist/commands/generate-repository.js +38 -0
  37. package/dist/commands/generate-serverless-handler.d.ts +2 -0
  38. package/dist/commands/generate-serverless-handler.js +46 -0
  39. package/dist/commands/generate-service.d.ts +2 -0
  40. package/dist/commands/generate-service.js +51 -0
  41. package/dist/commands/generate-websocket-gateway.d.ts +2 -0
  42. package/dist/commands/generate-websocket-gateway.js +47 -0
  43. package/dist/commands/info.d.ts +2 -0
  44. package/dist/commands/info.js +91 -0
  45. package/dist/commands/start.d.ts +2 -0
  46. package/dist/commands/start.js +61 -0
  47. package/dist/commands/test.d.ts +2 -0
  48. package/dist/commands/test.js +63 -0
  49. package/dist/index.d.ts +2 -0
  50. package/dist/index.js +61 -0
  51. package/dist/utils/generator.d.ts +14 -0
  52. package/dist/utils/generator.js +79 -0
  53. package/package.json +67 -0
  54. package/src/commands/add.ts +101 -0
  55. package/src/commands/build.ts +56 -0
  56. package/src/commands/generate-agent.ts +58 -0
  57. package/src/commands/generate-ai-service.ts +52 -0
  58. package/src/commands/generate-app.ts +270 -0
  59. package/src/commands/generate-controller.ts +61 -0
  60. package/src/commands/generate-crud.ts +214 -0
  61. package/src/commands/generate-dto.ts +61 -0
  62. package/src/commands/generate-exception-filter.ts +53 -0
  63. package/src/commands/generate-guard.ts +37 -0
  64. package/src/commands/generate-interceptor.ts +39 -0
  65. package/src/commands/generate-middleware.ts +86 -0
  66. package/src/commands/generate-module.ts +102 -0
  67. package/src/commands/generate-pipe.ts +36 -0
  68. package/src/commands/generate-repository.ts +41 -0
  69. package/src/commands/generate-serverless-handler.ts +53 -0
  70. package/src/commands/generate-service.ts +53 -0
  71. package/src/commands/generate-websocket-gateway.ts +50 -0
  72. package/src/commands/info.ts +106 -0
  73. package/src/commands/start.ts +61 -0
  74. package/src/commands/test.ts +70 -0
  75. package/src/index.ts +68 -0
  76. package/src/utils/generator.ts +93 -0
@@ -0,0 +1,61 @@
1
+ # HazelJS Starter App
2
+
3
+ This project was generated with the [HazelJS CLI](https://github.com/your-org/hazeljs) and serves as a starting point for building scalable, modular Node.js applications with TypeScript.
4
+
5
+ ## Features
6
+
7
+ - **TypeScript-first**: All code and configs are TypeScript.
8
+ - **Decorator-based API**: Clean, intuitive module/controller/service structure.
9
+ - **Built-in Dependency Injection**.
10
+ - **Validation, Guards, Interceptors, and Middleware** support.
11
+ - **Swagger/OpenAPI** integration out of the box.
12
+ - **Ready for Testing**: Includes Jest setup.
13
+
14
+ ## Project Structure
15
+
16
+ ```
17
+ src/
18
+ core/ # HazelJS core framework (decorators, pipes, guards, swagger, types)
19
+ example/ # Example application code
20
+ index.ts # Main entry point
21
+ ```
22
+
23
+ ## Getting Started
24
+
25
+ 1. **Install dependencies:**
26
+ ```bash
27
+ npm install
28
+ ```
29
+
30
+ 2. **Run the app:**
31
+ ```bash
32
+ npm run start
33
+ ```
34
+
35
+ 3. **Run tests:**
36
+ ```bash
37
+ npm test
38
+ ```
39
+
40
+ 4. **Build for production:**
41
+ ```bash
42
+ npm run build
43
+ ```
44
+
45
+ ## Example Usage
46
+
47
+ - See `src/example/` for a sample module, controller, and DTO.
48
+ - Modify or add modules/controllers/services in `src/` as needed.
49
+
50
+ ## Customization
51
+
52
+ - Edit `src/core/` to extend or override framework features.
53
+ - Add new modules, controllers, services, DTOs, and middleware as your app grows.
54
+
55
+ ## Documentation
56
+
57
+ - See the [HazelJS documentation](https://github.com/your-org/hazeljs) for more details on decorators, DI, validation, and advanced features.
58
+
59
+ ## License
60
+
61
+ MIT
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "hazeljs-example",
3
+ "version": "1.0.0",
4
+ "description": "Example application using HazelJS",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "build": "tsc",
8
+ "start": "node dist/index.js",
9
+ "dev": "ts-node-dev --respawn --transpile-only src/index.ts",
10
+ "test": "jest",
11
+ "test:ci": "jest --coverage --coverageReporters=text --coverageReporters=lcov --coverageReporters=clover --no-coverage-threshold",
12
+ "lint": "eslint \"src/**/*.ts\" --max-warnings 0",
13
+ "lint:fix": "eslint \"src/**/*.ts\" --fix --max-warnings 0",
14
+ "format": "prettier --write \"src/**/*.ts\""
15
+ },
16
+ "dependencies": {
17
+ "@hazeljs/core": "file:..",
18
+ "bcryptjs": "^2.4.3",
19
+ "class-transformer": "^0.5.1",
20
+ "class-validator": "^0.14.1",
21
+ "dotenv": "^16.4.5",
22
+ "jsonwebtoken": "^9.0.2",
23
+ "reflect-metadata": "^0.2.1",
24
+ "winston": "^3.12.0"
25
+ },
26
+ "devDependencies": {
27
+ "@types/axios": "^0.9.36",
28
+ "@types/bcryptjs": "^2.4.6",
29
+ "@types/express": "^4.17.21",
30
+ "@types/jest": "^29.5.12",
31
+ "@types/jsonwebtoken": "^9.0.6",
32
+ "@types/node": "^20.11.24",
33
+ "@types/swagger-ui-express": "^4.1.6",
34
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
35
+ "@typescript-eslint/parser": "^7.0.0",
36
+ "axios": "^1.9.0",
37
+ "eslint": "^8.0.0",
38
+ "eslint-config-prettier": "^9.0.0",
39
+ "eslint-plugin-jest": "^27.0.0",
40
+ "eslint-plugin-prettier": "^5.0.0",
41
+ "jest": "^29.7.0",
42
+ "prettier": "^3.0.0",
43
+ "ts-jest": "^29.1.2",
44
+ "ts-node": "^10.9.2",
45
+ "ts-node-dev": "^2.0.0",
46
+ "typescript": "^5.3.3"
47
+ }
48
+ }
@@ -0,0 +1,7 @@
1
+ import { HazelModule } from '@hazeljs/core';
2
+ import { HelloController } from './hello.controller';
3
+
4
+ @HazelModule({
5
+ controllers: [HelloController],
6
+ })
7
+ export class AppModule {}
@@ -0,0 +1,9 @@
1
+ import { Get, Controller } from '@hazeljs/core';
2
+
3
+ @Controller('/hello')
4
+ export class HelloController {
5
+ @Get()
6
+ hello(): Promise<string> {
7
+ return Promise.resolve('Hello, World!');
8
+ }
9
+ }
@@ -0,0 +1,10 @@
1
+ // Create a simple HTTP server
2
+ import { HazelApp } from '@hazeljs/core';
3
+ import { AppModule } from './app.module';
4
+
5
+ async function bootstrap(): Promise<void> {
6
+ const app = new HazelApp(AppModule);
7
+ await app.listen(3000);
8
+ }
9
+
10
+ bootstrap();