typescript-express-starter 10.2.1 → 11.0.0
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.
- package/README.kr.md +136 -287
- package/README.md +134 -274
- package/bin/ast-utils.js +226 -0
- package/bin/common.js +312 -0
- package/bin/config.js +80 -0
- package/bin/db-map.js +169 -0
- package/bin/errors.js +129 -0
- package/bin/performance.js +203 -0
- package/bin/starter.js +359 -0
- package/bin/validators.js +146 -0
- package/devtools/biome/.biome.json +34 -0
- package/devtools/biome/.biomeignore +29 -0
- package/devtools/docker/.dockerignore +27 -0
- package/devtools/docker/Dockerfile.dev +20 -0
- package/devtools/docker/Dockerfile.prod +35 -0
- package/{lib/default → devtools/docker}/Makefile +3 -0
- package/devtools/docker/nginx.conf +67 -0
- package/devtools/eslint/eslint.config.cjs +23 -0
- package/devtools/husky/.husky/commit-msg +4 -0
- package/devtools/husky/.husky/pre-commit +4 -0
- package/devtools/husky/.husky/pre-push +4 -0
- package/devtools/jest/jest.config.cjs +2 -0
- package/devtools/jest/jest.config.ts +25 -0
- package/devtools/jest/src/test/e2e/auth.e2e.spec.ts +40 -0
- package/devtools/jest/src/test/e2e/users.e2e.spec.ts +63 -0
- package/devtools/jest/src/test/setup.ts +31 -0
- package/devtools/jest/src/test/unit/entities/user.entity.spec.ts +279 -0
- package/devtools/jest/src/test/unit/services/auth.service.spec.ts +75 -0
- package/devtools/jest/src/test/unit/services/users.service.spec.ts +109 -0
- package/devtools/oxlint/.oxlintrc.json +57 -0
- package/devtools/pm2/ecosystem.config.js +59 -0
- package/devtools/swagger/swagger.yaml +124 -0
- package/{lib/prisma → devtools/swc}/.swcrc +2 -1
- package/devtools/tsup/tsup.config.ts +15 -0
- package/devtools/vitest/src/test/e2e/auth.e2e.spec.ts +41 -0
- package/devtools/vitest/src/test/e2e/users.e2e.spec.ts +64 -0
- package/devtools/vitest/src/test/setup.ts +31 -0
- package/devtools/vitest/src/test/unit/services/auth.service.spec.ts +70 -0
- package/devtools/vitest/src/test/unit/services/users.service.spec.ts +90 -0
- package/devtools/vitest/vitest.config.ts +22 -0
- package/package.json +24 -11
- package/templates/default/nodemon.json +7 -0
- package/templates/default/package.json +48 -0
- package/templates/default/src/app.ts +118 -0
- package/templates/default/src/config/env.ts +78 -0
- package/templates/default/src/controllers/auth.controller.ts +40 -0
- package/templates/default/src/controllers/users.controller.ts +46 -0
- package/templates/default/src/dtos/users.dto.ts +42 -0
- package/templates/default/src/entities/user.entity.ts +190 -0
- package/templates/default/src/exceptions/httpException.ts +14 -0
- package/{lib/knex → templates/default}/src/interfaces/auth.interface.ts +3 -3
- package/templates/default/src/interfaces/users.interface.ts +9 -0
- package/templates/default/src/middlewares/auth.middleware.ts +49 -0
- package/templates/default/src/middlewares/error.middleware.ts +89 -0
- package/templates/default/src/middlewares/notFound.middleware.ts +6 -0
- package/templates/default/src/middlewares/validation.middleware.ts +15 -0
- package/templates/default/src/repositories/users.repository.ts +55 -0
- package/templates/default/src/routes/auth.route.ts +31 -0
- package/templates/default/src/routes/users.route.ts +32 -0
- package/templates/default/src/server.ts +35 -0
- package/templates/default/src/services/auth.service.ts +67 -0
- package/templates/default/src/services/users.service.ts +48 -0
- package/templates/default/src/utils/asyncHandler.ts +8 -0
- package/templates/default/src/utils/logger.ts +113 -0
- package/{lib/typeorm → templates/default}/tsconfig.json +23 -22
- package/CONTRIBUTORS.md +0 -69
- package/bin/cli.js +0 -18
- package/lib/default/.dockerignore +0 -18
- package/lib/default/.editorconfig +0 -9
- package/lib/default/.env.development.local +0 -13
- package/lib/default/.env.production.local +0 -13
- package/lib/default/.env.test.local +0 -13
- package/lib/default/.eslintignore +0 -1
- package/lib/default/.eslintrc +0 -18
- package/lib/default/.huskyrc +0 -5
- package/lib/default/.lintstagedrc.json +0 -5
- package/lib/default/.prettierrc +0 -8
- package/lib/default/.swcrc +0 -39
- package/lib/default/.vscode/launch.json +0 -35
- package/lib/default/.vscode/settings.json +0 -6
- package/lib/default/Dockerfile.dev +0 -18
- package/lib/default/Dockerfile.prod +0 -18
- package/lib/default/docker-compose.yml +0 -35
- package/lib/default/ecosystem.config.js +0 -57
- package/lib/default/jest.config.js +0 -12
- package/lib/default/nginx.conf +0 -40
- package/lib/default/nodemon.json +0 -12
- package/lib/default/package.json +0 -76
- package/lib/default/src/app.ts +0 -81
- package/lib/default/src/config/index.ts +0 -5
- package/lib/default/src/controllers/auth.controller.ts +0 -44
- package/lib/default/src/controllers/users.controller.ts +0 -63
- package/lib/default/src/dtos/users.dto.ts +0 -20
- package/lib/default/src/exceptions/HttpException.ts +0 -10
- package/lib/default/src/http/auth.http +0 -27
- package/lib/default/src/http/users.http +0 -34
- package/lib/default/src/interfaces/auth.interface.ts +0 -15
- package/lib/default/src/interfaces/users.interface.ts +0 -5
- package/lib/default/src/middlewares/auth.middleware.ts +0 -38
- package/lib/default/src/middlewares/error.middleware.ts +0 -15
- package/lib/default/src/middlewares/validation.middleware.ts +0 -27
- package/lib/default/src/models/users.model.ts +0 -9
- package/lib/default/src/routes/auth.route.ts +0 -21
- package/lib/default/src/routes/users.route.ts +0 -23
- package/lib/default/src/server.ts +0 -10
- package/lib/default/src/services/auth.service.ts +0 -52
- package/lib/default/src/services/users.service.ts +0 -51
- package/lib/default/src/test/auth.test.ts +0 -52
- package/lib/default/src/test/users.test.ts +0 -62
- package/lib/default/src/utils/logger.ts +0 -65
- package/lib/default/src/utils/validateEnv.ts +0 -8
- package/lib/default/swagger.yaml +0 -123
- package/lib/default/tsconfig.json +0 -39
- package/lib/graphql/.dockerignore +0 -18
- package/lib/graphql/.editorconfig +0 -9
- package/lib/graphql/.env.development.local +0 -20
- package/lib/graphql/.env.production.local +0 -20
- package/lib/graphql/.env.test.local +0 -20
- package/lib/graphql/.eslintignore +0 -1
- package/lib/graphql/.eslintrc +0 -18
- package/lib/graphql/.huskyrc +0 -5
- package/lib/graphql/.lintstagedrc.json +0 -5
- package/lib/graphql/.prettierrc +0 -8
- package/lib/graphql/.swcrc +0 -40
- package/lib/graphql/.vscode/launch.json +0 -35
- package/lib/graphql/.vscode/settings.json +0 -6
- package/lib/graphql/Dockerfile.dev +0 -19
- package/lib/graphql/Dockerfile.prod +0 -19
- package/lib/graphql/Makefile +0 -46
- package/lib/graphql/docker-compose.yml +0 -58
- package/lib/graphql/ecosystem.config.js +0 -59
- package/lib/graphql/jest.config.js +0 -12
- package/lib/graphql/nginx.conf +0 -40
- package/lib/graphql/nodemon.json +0 -12
- package/lib/graphql/package.json +0 -75
- package/lib/graphql/src/app.ts +0 -107
- package/lib/graphql/src/config/index.ts +0 -6
- package/lib/graphql/src/database/index.ts +0 -26
- package/lib/graphql/src/dtos/users.dto.ts +0 -27
- package/lib/graphql/src/entities/users.entity.ts +0 -26
- package/lib/graphql/src/exceptions/HttpException.ts +0 -10
- package/lib/graphql/src/http/auth.http +0 -49
- package/lib/graphql/src/http/users.http +0 -78
- package/lib/graphql/src/interfaces/auth.interface.ts +0 -14
- package/lib/graphql/src/interfaces/users.interface.ts +0 -5
- package/lib/graphql/src/middlewares/auth.middleware.ts +0 -42
- package/lib/graphql/src/middlewares/error.middleware.ts +0 -15
- package/lib/graphql/src/repositories/auth.repository.ts +0 -53
- package/lib/graphql/src/repositories/users.repository.ts +0 -51
- package/lib/graphql/src/resolvers/auth.resolver.ts +0 -32
- package/lib/graphql/src/resolvers/users.resolver.ts +0 -47
- package/lib/graphql/src/server.ts +0 -10
- package/lib/graphql/src/test/auth.test.ts +0 -10
- package/lib/graphql/src/test/users.test.ts +0 -11
- package/lib/graphql/src/typedefs/users.type.ts +0 -13
- package/lib/graphql/src/utils/logger.ts +0 -77
- package/lib/graphql/src/utils/validateEnv.ts +0 -8
- package/lib/graphql/tsconfig.json +0 -40
- package/lib/knex/.dockerignore +0 -18
- package/lib/knex/.editorconfig +0 -9
- package/lib/knex/.env.development.local +0 -20
- package/lib/knex/.env.production.local +0 -20
- package/lib/knex/.env.test.local +0 -20
- package/lib/knex/.eslintignore +0 -1
- package/lib/knex/.eslintrc +0 -18
- package/lib/knex/.huskyrc +0 -5
- package/lib/knex/.lintstagedrc.json +0 -5
- package/lib/knex/.prettierrc +0 -8
- package/lib/knex/.swcrc +0 -40
- package/lib/knex/.vscode/launch.json +0 -35
- package/lib/knex/.vscode/settings.json +0 -6
- package/lib/knex/Dockerfile.dev +0 -19
- package/lib/knex/Dockerfile.prod +0 -19
- package/lib/knex/Makefile +0 -46
- package/lib/knex/docker-compose.yml +0 -55
- package/lib/knex/ecosystem.config.js +0 -57
- package/lib/knex/jest.config.js +0 -12
- package/lib/knex/knexfile.ts +0 -23
- package/lib/knex/nginx.conf +0 -40
- package/lib/knex/nodemon.json +0 -12
- package/lib/knex/package.json +0 -85
- package/lib/knex/src/app.ts +0 -87
- package/lib/knex/src/config/index.ts +0 -6
- package/lib/knex/src/controllers/auth.controller.ts +0 -44
- package/lib/knex/src/controllers/users.controller.ts +0 -63
- package/lib/knex/src/database/index.ts +0 -24
- package/lib/knex/src/database/migrations/.gitkeep +0 -0
- package/lib/knex/src/database/migrations/20210713110926_initial.ts +0 -17
- package/lib/knex/src/database/seeds/.gitkeep +0 -0
- package/lib/knex/src/dtos/users.dto.ts +0 -20
- package/lib/knex/src/exceptions/HttpException.ts +0 -10
- package/lib/knex/src/http/auth.http +0 -27
- package/lib/knex/src/http/users.http +0 -34
- package/lib/knex/src/interfaces/routes.interface.ts +0 -6
- package/lib/knex/src/interfaces/users.interface.ts +0 -5
- package/lib/knex/src/middlewares/auth.middleware.ts +0 -40
- package/lib/knex/src/middlewares/error.middleware.ts +0 -15
- package/lib/knex/src/middlewares/validation.middleware.ts +0 -27
- package/lib/knex/src/models/users.model.ts +0 -13
- package/lib/knex/src/routes/auth.route.ts +0 -22
- package/lib/knex/src/routes/users.route.ts +0 -23
- package/lib/knex/src/server.ts +0 -10
- package/lib/knex/src/services/auth.service.ts +0 -60
- package/lib/knex/src/services/users.service.ts +0 -55
- package/lib/knex/src/test/auth.test.ts +0 -51
- package/lib/knex/src/test/users.test.ts +0 -65
- package/lib/knex/src/utils/logger.ts +0 -65
- package/lib/knex/src/utils/validateEnv.ts +0 -8
- package/lib/knex/swagger.yaml +0 -123
- package/lib/knex/tsconfig.json +0 -40
- package/lib/mikro-orm/.dockerignore +0 -18
- package/lib/mikro-orm/.editorconfig +0 -9
- package/lib/mikro-orm/.env.development.local +0 -18
- package/lib/mikro-orm/.env.production.local +0 -18
- package/lib/mikro-orm/.env.test.local +0 -18
- package/lib/mikro-orm/.eslintignore +0 -1
- package/lib/mikro-orm/.eslintrc +0 -18
- package/lib/mikro-orm/.huskyrc +0 -5
- package/lib/mikro-orm/.lintstagedrc.json +0 -5
- package/lib/mikro-orm/.prettierrc +0 -8
- package/lib/mikro-orm/.swcrc +0 -41
- package/lib/mikro-orm/.vscode/launch.json +0 -35
- package/lib/mikro-orm/.vscode/settings.json +0 -6
- package/lib/mikro-orm/Dockerfile.dev +0 -19
- package/lib/mikro-orm/Dockerfile.prod +0 -19
- package/lib/mikro-orm/Makefile +0 -46
- package/lib/mikro-orm/docker-compose.yml +0 -55
- package/lib/mikro-orm/ecosystem.config.js +0 -57
- package/lib/mikro-orm/jest.config.js +0 -12
- package/lib/mikro-orm/nginx.conf +0 -40
- package/lib/mikro-orm/nodemon.json +0 -12
- package/lib/mikro-orm/package.json +0 -79
- package/lib/mikro-orm/src/app.ts +0 -97
- package/lib/mikro-orm/src/config/index.ts +0 -6
- package/lib/mikro-orm/src/controllers/auth.controller.ts +0 -44
- package/lib/mikro-orm/src/controllers/users.controller.ts +0 -63
- package/lib/mikro-orm/src/database/index.ts +0 -19
- package/lib/mikro-orm/src/dtos/users.dto.ts +0 -20
- package/lib/mikro-orm/src/entities/base.entity.ts +0 -16
- package/lib/mikro-orm/src/entities/users.entity.ts +0 -17
- package/lib/mikro-orm/src/exceptions/HttpException.ts +0 -10
- package/lib/mikro-orm/src/http/auth.http +0 -32
- package/lib/mikro-orm/src/http/users.http +0 -34
- package/lib/mikro-orm/src/interfaces/auth.interface.ts +0 -15
- package/lib/mikro-orm/src/interfaces/routes.interface.ts +0 -6
- package/lib/mikro-orm/src/interfaces/users.interface.ts +0 -5
- package/lib/mikro-orm/src/middlewares/auth.middleware.ts +0 -39
- package/lib/mikro-orm/src/middlewares/error.middleware.ts +0 -15
- package/lib/mikro-orm/src/middlewares/validation.middleware.ts +0 -27
- package/lib/mikro-orm/src/routes/auth.route.ts +0 -22
- package/lib/mikro-orm/src/routes/users.route.ts +0 -23
- package/lib/mikro-orm/src/server.ts +0 -10
- package/lib/mikro-orm/src/services/auth.service.ts +0 -53
- package/lib/mikro-orm/src/services/users.service.ts +0 -60
- package/lib/mikro-orm/src/test/auth.test.ts +0 -65
- package/lib/mikro-orm/src/test/users.test.ts +0 -69
- package/lib/mikro-orm/src/utils/logger.ts +0 -65
- package/lib/mikro-orm/src/utils/validateEnv.ts +0 -8
- package/lib/mikro-orm/swagger.yaml +0 -122
- package/lib/mikro-orm/tsconfig.json +0 -41
- package/lib/mongoose/.dockerignore +0 -18
- package/lib/mongoose/.editorconfig +0 -9
- package/lib/mongoose/.env.development.local +0 -18
- package/lib/mongoose/.env.production.local +0 -18
- package/lib/mongoose/.env.test.local +0 -18
- package/lib/mongoose/.eslintignore +0 -1
- package/lib/mongoose/.eslintrc +0 -18
- package/lib/mongoose/.huskyrc +0 -5
- package/lib/mongoose/.lintstagedrc.json +0 -5
- package/lib/mongoose/.prettierrc +0 -8
- package/lib/mongoose/.swcrc +0 -40
- package/lib/mongoose/.vscode/launch.json +0 -35
- package/lib/mongoose/.vscode/settings.json +0 -6
- package/lib/mongoose/Dockerfile.dev +0 -19
- package/lib/mongoose/Dockerfile.prod +0 -19
- package/lib/mongoose/Makefile +0 -46
- package/lib/mongoose/docker-compose.yml +0 -55
- package/lib/mongoose/ecosystem.config.js +0 -57
- package/lib/mongoose/jest.config.js +0 -12
- package/lib/mongoose/nginx.conf +0 -40
- package/lib/mongoose/nodemon.json +0 -12
- package/lib/mongoose/package.json +0 -78
- package/lib/mongoose/src/app.ts +0 -87
- package/lib/mongoose/src/config/index.ts +0 -6
- package/lib/mongoose/src/controllers/auth.controller.ts +0 -44
- package/lib/mongoose/src/controllers/users.controller.ts +0 -63
- package/lib/mongoose/src/database/index.ts +0 -18
- package/lib/mongoose/src/dtos/users.dto.ts +0 -20
- package/lib/mongoose/src/exceptions/HttpException.ts +0 -10
- package/lib/mongoose/src/http/auth.http +0 -27
- package/lib/mongoose/src/http/users.http +0 -34
- package/lib/mongoose/src/interfaces/auth.interface.ts +0 -15
- package/lib/mongoose/src/interfaces/routes.interface.ts +0 -6
- package/lib/mongoose/src/interfaces/users.interface.ts +0 -5
- package/lib/mongoose/src/middlewares/auth.middleware.ts +0 -39
- package/lib/mongoose/src/middlewares/error.middleware.ts +0 -15
- package/lib/mongoose/src/middlewares/validation.middleware.ts +0 -27
- package/lib/mongoose/src/models/users.model.ts +0 -16
- package/lib/mongoose/src/routes/auth.route.ts +0 -22
- package/lib/mongoose/src/routes/users.route.ts +0 -23
- package/lib/mongoose/src/server.ts +0 -10
- package/lib/mongoose/src/services/auth.service.ts +0 -52
- package/lib/mongoose/src/services/users.service.ts +0 -54
- package/lib/mongoose/src/test/auth.test.ts +0 -83
- package/lib/mongoose/src/test/index.test.ts +0 -18
- package/lib/mongoose/src/test/users.test.ts +0 -133
- package/lib/mongoose/src/utils/logger.ts +0 -65
- package/lib/mongoose/src/utils/validateEnv.ts +0 -8
- package/lib/mongoose/swagger.yaml +0 -120
- package/lib/mongoose/tsconfig.json +0 -40
- package/lib/node-postgres/.dockerignore +0 -18
- package/lib/node-postgres/.editorconfig +0 -9
- package/lib/node-postgres/.env.development.local +0 -20
- package/lib/node-postgres/.env.production.local +0 -20
- package/lib/node-postgres/.env.test.local +0 -20
- package/lib/node-postgres/.eslintignore +0 -1
- package/lib/node-postgres/.eslintrc +0 -18
- package/lib/node-postgres/.huskyrc +0 -5
- package/lib/node-postgres/.lintstagedrc.json +0 -5
- package/lib/node-postgres/.prettierrc +0 -8
- package/lib/node-postgres/.swcrc +0 -38
- package/lib/node-postgres/.vscode/launch.json +0 -35
- package/lib/node-postgres/.vscode/settings.json +0 -6
- package/lib/node-postgres/Dockerfile.dev +0 -17
- package/lib/node-postgres/Dockerfile.prod +0 -17
- package/lib/node-postgres/Makefile +0 -46
- package/lib/node-postgres/docker-compose.yml +0 -61
- package/lib/node-postgres/ecosystem.config.js +0 -57
- package/lib/node-postgres/jest.config.js +0 -12
- package/lib/node-postgres/nginx.conf +0 -40
- package/lib/node-postgres/nodemon.json +0 -12
- package/lib/node-postgres/package.json +0 -78
- package/lib/node-postgres/src/app.ts +0 -81
- package/lib/node-postgres/src/config/index.ts +0 -6
- package/lib/node-postgres/src/controllers/auth.controller.ts +0 -44
- package/lib/node-postgres/src/controllers/users.controller.ts +0 -63
- package/lib/node-postgres/src/database/index.ts +0 -10
- package/lib/node-postgres/src/database/init.sql +0 -13
- package/lib/node-postgres/src/dtos/users.dto.ts +0 -20
- package/lib/node-postgres/src/exceptions/httpException.ts +0 -10
- package/lib/node-postgres/src/http/auth.http +0 -27
- package/lib/node-postgres/src/http/users.http +0 -34
- package/lib/node-postgres/src/interfaces/auth.interface.ts +0 -15
- package/lib/node-postgres/src/interfaces/routes.interface.ts +0 -6
- package/lib/node-postgres/src/interfaces/users.interface.ts +0 -5
- package/lib/node-postgres/src/middlewares/auth.middleware.ts +0 -46
- package/lib/node-postgres/src/middlewares/error.middleware.ts +0 -15
- package/lib/node-postgres/src/middlewares/validation.middleware.ts +0 -27
- package/lib/node-postgres/src/routes/auth.route.ts +0 -21
- package/lib/node-postgres/src/routes/users.route.ts +0 -23
- package/lib/node-postgres/src/server.ts +0 -10
- package/lib/node-postgres/src/services/auth.service.ts +0 -103
- package/lib/node-postgres/src/services/users.service.ts +0 -133
- package/lib/node-postgres/src/test/auth.test.ts +0 -57
- package/lib/node-postgres/src/test/users.test.ts +0 -72
- package/lib/node-postgres/src/utils/logger.ts +0 -65
- package/lib/node-postgres/src/utils/validateEnv.ts +0 -8
- package/lib/node-postgres/swagger.yaml +0 -123
- package/lib/node-postgres/tsconfig.json +0 -39
- package/lib/prisma/.dockerignore +0 -18
- package/lib/prisma/.editorconfig +0 -9
- package/lib/prisma/.env.development.local +0 -16
- package/lib/prisma/.env.production.local +0 -16
- package/lib/prisma/.env.test.local +0 -16
- package/lib/prisma/.eslintignore +0 -1
- package/lib/prisma/.eslintrc +0 -18
- package/lib/prisma/.huskyrc +0 -5
- package/lib/prisma/.lintstagedrc.json +0 -5
- package/lib/prisma/.prettierrc +0 -8
- package/lib/prisma/.vscode/launch.json +0 -35
- package/lib/prisma/.vscode/settings.json +0 -6
- package/lib/prisma/Dockerfile.dev +0 -19
- package/lib/prisma/Dockerfile.prod +0 -19
- package/lib/prisma/Makefile +0 -46
- package/lib/prisma/docker-compose.yml +0 -51
- package/lib/prisma/ecosystem.config.js +0 -57
- package/lib/prisma/jest.config.js +0 -12
- package/lib/prisma/nginx.conf +0 -40
- package/lib/prisma/nodemon.json +0 -12
- package/lib/prisma/package.json +0 -84
- package/lib/prisma/src/app.ts +0 -81
- package/lib/prisma/src/config/index.ts +0 -5
- package/lib/prisma/src/controllers/auth.controller.ts +0 -44
- package/lib/prisma/src/controllers/users.controller.ts +0 -63
- package/lib/prisma/src/dtos/users.dto.ts +0 -20
- package/lib/prisma/src/exceptions/HttpException.ts +0 -10
- package/lib/prisma/src/http/auth.http +0 -27
- package/lib/prisma/src/http/users.http +0 -34
- package/lib/prisma/src/interfaces/auth.interface.ts +0 -15
- package/lib/prisma/src/interfaces/routes.interface.ts +0 -6
- package/lib/prisma/src/interfaces/users.interface.ts +0 -5
- package/lib/prisma/src/middlewares/auth.middleware.ts +0 -39
- package/lib/prisma/src/middlewares/error.middleware.ts +0 -15
- package/lib/prisma/src/middlewares/validation.middleware.ts +0 -27
- package/lib/prisma/src/prisma/migrations/20210314081925_initial/migration.sql +0 -9
- package/lib/prisma/src/prisma/migrations/migration_lock.toml +0 -3
- package/lib/prisma/src/prisma/schema.prisma +0 -17
- package/lib/prisma/src/routes/auth.route.ts +0 -22
- package/lib/prisma/src/routes/users.route.ts +0 -23
- package/lib/prisma/src/server.ts +0 -10
- package/lib/prisma/src/services/auth.service.ts +0 -56
- package/lib/prisma/src/services/users.service.ts +0 -49
- package/lib/prisma/src/test/auth.test.ts +0 -81
- package/lib/prisma/src/test/index.test.ts +0 -18
- package/lib/prisma/src/test/users.test.ts +0 -134
- package/lib/prisma/src/utils/logger.ts +0 -65
- package/lib/prisma/src/utils/validateEnv.ts +0 -8
- package/lib/prisma/swagger.yaml +0 -123
- package/lib/prisma/tsconfig.json +0 -38
- package/lib/routing-controllers/.dockerignore +0 -18
- package/lib/routing-controllers/.editorconfig +0 -9
- package/lib/routing-controllers/.env.development.local +0 -13
- package/lib/routing-controllers/.env.production.local +0 -13
- package/lib/routing-controllers/.env.test.local +0 -13
- package/lib/routing-controllers/.eslintignore +0 -1
- package/lib/routing-controllers/.eslintrc +0 -18
- package/lib/routing-controllers/.huskyrc +0 -5
- package/lib/routing-controllers/.lintstagedrc.json +0 -5
- package/lib/routing-controllers/.prettierrc +0 -8
- package/lib/routing-controllers/.swcrc +0 -38
- package/lib/routing-controllers/.vscode/launch.json +0 -35
- package/lib/routing-controllers/.vscode/settings.json +0 -6
- package/lib/routing-controllers/Dockerfile.dev +0 -19
- package/lib/routing-controllers/Dockerfile.prod +0 -19
- package/lib/routing-controllers/Makefile +0 -42
- package/lib/routing-controllers/docker-compose.yml +0 -35
- package/lib/routing-controllers/ecosystem.config.js +0 -57
- package/lib/routing-controllers/jest.config.js +0 -12
- package/lib/routing-controllers/nginx.conf +0 -40
- package/lib/routing-controllers/nodemon.json +0 -12
- package/lib/routing-controllers/package.json +0 -77
- package/lib/routing-controllers/src/app.ts +0 -101
- package/lib/routing-controllers/src/config/index.ts +0 -5
- package/lib/routing-controllers/src/controllers/auth.controller.ts +0 -41
- package/lib/routing-controllers/src/controllers/users.controller.ts +0 -51
- package/lib/routing-controllers/src/dtos/users.dto.ts +0 -20
- package/lib/routing-controllers/src/exceptions/HttpException.ts +0 -12
- package/lib/routing-controllers/src/http/auth.http +0 -27
- package/lib/routing-controllers/src/http/users.http +0 -34
- package/lib/routing-controllers/src/interfaces/auth.interface.ts +0 -15
- package/lib/routing-controllers/src/interfaces/users.interface.ts +0 -5
- package/lib/routing-controllers/src/middlewares/auth.middleware.ts +0 -38
- package/lib/routing-controllers/src/middlewares/error.middleware.ts +0 -15
- package/lib/routing-controllers/src/middlewares/validation.middleware.ts +0 -27
- package/lib/routing-controllers/src/models/users.model.ts +0 -9
- package/lib/routing-controllers/src/server.ts +0 -9
- package/lib/routing-controllers/src/services/auth.service.ts +0 -53
- package/lib/routing-controllers/src/services/users.service.ts +0 -52
- package/lib/routing-controllers/src/test/auth.test.ts +0 -49
- package/lib/routing-controllers/src/test/users.test.ts +0 -65
- package/lib/routing-controllers/src/utils/logger.ts +0 -65
- package/lib/routing-controllers/src/utils/validateEnv.ts +0 -8
- package/lib/routing-controllers/tsconfig.json +0 -38
- package/lib/sequelize/.dockerignore +0 -18
- package/lib/sequelize/.editorconfig +0 -9
- package/lib/sequelize/.env.development.local +0 -20
- package/lib/sequelize/.env.production.local +0 -20
- package/lib/sequelize/.env.test.local +0 -20
- package/lib/sequelize/.eslintignore +0 -1
- package/lib/sequelize/.eslintrc +0 -18
- package/lib/sequelize/.huskyrc +0 -5
- package/lib/sequelize/.lintstagedrc.json +0 -5
- package/lib/sequelize/.prettierrc +0 -8
- package/lib/sequelize/.sequelizerc +0 -8
- package/lib/sequelize/.swcrc +0 -40
- package/lib/sequelize/.vscode/launch.json +0 -35
- package/lib/sequelize/.vscode/settings.json +0 -6
- package/lib/sequelize/Dockerfile.dev +0 -23
- package/lib/sequelize/Dockerfile.prod +0 -23
- package/lib/sequelize/Makefile +0 -46
- package/lib/sequelize/docker-compose.yml +0 -55
- package/lib/sequelize/docker-entrypoint.sh +0 -5
- package/lib/sequelize/ecosystem.config.js +0 -57
- package/lib/sequelize/jest.config.js +0 -12
- package/lib/sequelize/nginx.conf +0 -40
- package/lib/sequelize/nodemon.json +0 -12
- package/lib/sequelize/package.json +0 -82
- package/lib/sequelize/src/app.ts +0 -87
- package/lib/sequelize/src/config/index.ts +0 -6
- package/lib/sequelize/src/config/sequelize-cli.js +0 -15
- package/lib/sequelize/src/controllers/auth.controller.ts +0 -45
- package/lib/sequelize/src/controllers/users.controller.ts +0 -64
- package/lib/sequelize/src/database/index.ts +0 -34
- package/lib/sequelize/src/database/migrations/.gitkeep +0 -0
- package/lib/sequelize/src/database/seeders/.gitkeep +0 -0
- package/lib/sequelize/src/dtos/users.dto.ts +0 -20
- package/lib/sequelize/src/exceptions/HttpException.ts +0 -10
- package/lib/sequelize/src/http/auth.http +0 -27
- package/lib/sequelize/src/http/users.http +0 -34
- package/lib/sequelize/src/interfaces/auth.interface.ts +0 -15
- package/lib/sequelize/src/interfaces/routes.interface.ts +0 -6
- package/lib/sequelize/src/interfaces/users.interface.ts +0 -5
- package/lib/sequelize/src/middlewares/auth.middleware.ts +0 -38
- package/lib/sequelize/src/middlewares/error.middleware.ts +0 -15
- package/lib/sequelize/src/middlewares/validation.middleware.ts +0 -27
- package/lib/sequelize/src/models/users.model.ts +0 -39
- package/lib/sequelize/src/routes/auth.route.ts +0 -21
- package/lib/sequelize/src/routes/users.route.ts +0 -23
- package/lib/sequelize/src/server.ts +0 -10
- package/lib/sequelize/src/services/auth.service.ts +0 -52
- package/lib/sequelize/src/services/users.service.ts +0 -50
- package/lib/sequelize/src/test/auth.test.ts +0 -71
- package/lib/sequelize/src/test/users.test.ts +0 -131
- package/lib/sequelize/src/utils/logger.ts +0 -65
- package/lib/sequelize/src/utils/validateEnv.ts +0 -8
- package/lib/sequelize/swagger.yaml +0 -123
- package/lib/sequelize/tsconfig.json +0 -40
- package/lib/starter.js +0 -262
- package/lib/typegoose/.dockerignore +0 -18
- package/lib/typegoose/.editorconfig +0 -9
- package/lib/typegoose/.env.development.local +0 -18
- package/lib/typegoose/.env.production.local +0 -18
- package/lib/typegoose/.env.test.local +0 -18
- package/lib/typegoose/.eslintignore +0 -1
- package/lib/typegoose/.eslintrc +0 -18
- package/lib/typegoose/.huskyrc +0 -5
- package/lib/typegoose/.lintstagedrc.json +0 -5
- package/lib/typegoose/.prettierrc +0 -8
- package/lib/typegoose/.swcrc +0 -40
- package/lib/typegoose/.vscode/launch.json +0 -35
- package/lib/typegoose/.vscode/settings.json +0 -6
- package/lib/typegoose/Dockerfile.dev +0 -19
- package/lib/typegoose/Dockerfile.prod +0 -19
- package/lib/typegoose/Makefile +0 -46
- package/lib/typegoose/docker-compose.yml +0 -55
- package/lib/typegoose/ecosystem.config.js +0 -57
- package/lib/typegoose/jest.config.js +0 -12
- package/lib/typegoose/nginx.conf +0 -40
- package/lib/typegoose/nodemon.json +0 -12
- package/lib/typegoose/package.json +0 -79
- package/lib/typegoose/src/app.ts +0 -90
- package/lib/typegoose/src/config/index.ts +0 -6
- package/lib/typegoose/src/controllers/auth.controller.ts +0 -44
- package/lib/typegoose/src/controllers/users.controller.ts +0 -63
- package/lib/typegoose/src/database/index.ts +0 -18
- package/lib/typegoose/src/dtos/users.dto.ts +0 -20
- package/lib/typegoose/src/exceptions/HttpException.ts +0 -10
- package/lib/typegoose/src/http/auth.http +0 -27
- package/lib/typegoose/src/http/users.http +0 -34
- package/lib/typegoose/src/interfaces/auth.interface.ts +0 -15
- package/lib/typegoose/src/interfaces/routes.interface.ts +0 -6
- package/lib/typegoose/src/interfaces/users.interface.ts +0 -5
- package/lib/typegoose/src/middlewares/auth.middleware.ts +0 -38
- package/lib/typegoose/src/middlewares/error.middleware.ts +0 -15
- package/lib/typegoose/src/middlewares/validation.middleware.ts +0 -27
- package/lib/typegoose/src/models/users.model.ts +0 -16
- package/lib/typegoose/src/routes/auth.route.ts +0 -21
- package/lib/typegoose/src/routes/users.route.ts +0 -23
- package/lib/typegoose/src/server.ts +0 -10
- package/lib/typegoose/src/services/auth.service.ts +0 -52
- package/lib/typegoose/src/services/users.service.ts +0 -55
- package/lib/typegoose/src/test/auth.test.ts +0 -83
- package/lib/typegoose/src/test/users.test.ts +0 -133
- package/lib/typegoose/src/utils/logger.ts +0 -65
- package/lib/typegoose/src/utils/validateEnv.ts +0 -8
- package/lib/typegoose/swagger.yaml +0 -120
- package/lib/typegoose/tsconfig.json +0 -40
- package/lib/typeorm/.dockerignore +0 -18
- package/lib/typeorm/.editorconfig +0 -9
- package/lib/typeorm/.env.development.local +0 -20
- package/lib/typeorm/.env.production.local +0 -20
- package/lib/typeorm/.env.test.local +0 -20
- package/lib/typeorm/.eslintignore +0 -1
- package/lib/typeorm/.eslintrc +0 -18
- package/lib/typeorm/.huskyrc +0 -5
- package/lib/typeorm/.lintstagedrc.json +0 -5
- package/lib/typeorm/.prettierrc +0 -8
- package/lib/typeorm/.swcrc +0 -40
- package/lib/typeorm/.vscode/launch.json +0 -35
- package/lib/typeorm/.vscode/settings.json +0 -6
- package/lib/typeorm/Dockerfile.dev +0 -19
- package/lib/typeorm/Dockerfile.prod +0 -19
- package/lib/typeorm/Makefile +0 -46
- package/lib/typeorm/docker-compose.yml +0 -57
- package/lib/typeorm/ecosystem.config.js +0 -57
- package/lib/typeorm/jest.config.js +0 -12
- package/lib/typeorm/nginx.conf +0 -40
- package/lib/typeorm/nodemon.json +0 -12
- package/lib/typeorm/package.json +0 -78
- package/lib/typeorm/src/app.ts +0 -87
- package/lib/typeorm/src/config/index.ts +0 -6
- package/lib/typeorm/src/controllers/auth.controller.ts +0 -44
- package/lib/typeorm/src/controllers/users.controller.ts +0 -63
- package/lib/typeorm/src/database/index.ts +0 -26
- package/lib/typeorm/src/database/migrations/.gitkeep +0 -0
- package/lib/typeorm/src/dtos/users.dto.ts +0 -20
- package/lib/typeorm/src/entities/users.entity.ts +0 -26
- package/lib/typeorm/src/exceptions/HttpException.ts +0 -10
- package/lib/typeorm/src/http/auth.http +0 -27
- package/lib/typeorm/src/http/users.http +0 -34
- package/lib/typeorm/src/interfaces/auth.interface.ts +0 -15
- package/lib/typeorm/src/interfaces/routes.interface.ts +0 -6
- package/lib/typeorm/src/interfaces/users.interface.ts +0 -5
- package/lib/typeorm/src/middlewares/auth.middleware.ts +0 -38
- package/lib/typeorm/src/middlewares/error.middleware.ts +0 -15
- package/lib/typeorm/src/middlewares/validation.middleware.ts +0 -27
- package/lib/typeorm/src/routes/auth.route.ts +0 -21
- package/lib/typeorm/src/routes/users.route.ts +0 -23
- package/lib/typeorm/src/server.ts +0 -10
- package/lib/typeorm/src/services/auth.service.ts +0 -54
- package/lib/typeorm/src/services/users.service.ts +0 -51
- package/lib/typeorm/src/test/auth.test.ts +0 -75
- package/lib/typeorm/src/test/users.test.ts +0 -136
- package/lib/typeorm/src/utils/logger.ts +0 -65
- package/lib/typeorm/src/utils/validateEnv.ts +0 -8
- package/lib/typeorm/swagger.yaml +0 -123
- /package/{lib → templates}/default/src/interfaces/routes.interface.ts +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<h1 align="center">
|
|
2
2
|
<br>
|
|
3
|
-
<img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/
|
|
3
|
+
<img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/newLogo.png" alt="Project Logo" />
|
|
4
4
|
<br>
|
|
5
5
|
<br>
|
|
6
6
|
TypeScript Express Starter
|
|
@@ -52,279 +52,165 @@
|
|
|
52
52
|
|
|
53
53
|
<br />
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
---
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
## 📝 Introduction
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
**TypeScript Express Starter** is an interactive CLI tool that generates production-ready TypeScript Express projects with your preferred stack configuration.
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Instead of starting from scratch, this CLI provides a comprehensive project generator with multiple database integrations, development tools, and deployment configurations. Choose from 10+ templates and customize your development workflow in minutes.
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
- **Interactive Setup**: Choose database, ORM, linter, testing framework, and more
|
|
64
|
+
- **Production Ready**: Docker, PM2, NGINX configurations included
|
|
65
|
+
- **Developer Experience**: Hot reload, testing, linting, and formatting pre-configured
|
|
66
|
+
- **Multiple Stacks**: Support for 10+ database/ORM combinations
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
## 💎 CLI Features
|
|
66
69
|
|
|
67
|
-
|
|
70
|
+
- 🎯 **Interactive Setup** — Smart CLI with guided project configuration
|
|
68
71
|
|
|
69
|
-
|
|
72
|
+
- 🗄️ **Multiple Database Options** — Prisma, Sequelize, TypeORM, Mongoose, Knex, and more
|
|
70
73
|
|
|
71
|
-
|
|
74
|
+
- 🛠️ **Development Tools** — Choose from ESLint, Biome, Jest, Vitest, Docker, PM2
|
|
72
75
|
|
|
73
|
-
|
|
74
|
-
$ npm install -g typescript-express-starter
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Run npx to Install The Package
|
|
78
|
-
|
|
79
|
-
npx is a tool in the JavaScript package management module, npm.
|
|
80
|
-
|
|
81
|
-
This is a tool that allows you to run the npm package on a single run without installing the package.
|
|
82
|
-
|
|
83
|
-
If you do not enter a project name, it defaults to _typescript-express-starter_.
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
$ npx typescript-express-starter "project name"
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Select a Templates
|
|
90
|
-
|
|
91
|
-
<img src="https://github.com/ljlm0402/typescript-express-starter/raw/images/cli.gif" alt="Example Cli" />
|
|
92
|
-
|
|
93
|
-
Start your typescript-express-starter app in development mode at `http://localhost:3000/`
|
|
94
|
-
|
|
95
|
-
#### Template Type
|
|
96
|
-
|
|
97
|
-
| Name | Description |
|
|
98
|
-
| :---------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
99
|
-
| Default | Express Default |
|
|
100
|
-
| [Routing Controllers](https://github.com/typestack/routing-controllers) | Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage |
|
|
101
|
-
| [Sequelize](https://github.com/sequelize/sequelize) | Easy to use multi SQL dialect ORM for Node.js |
|
|
102
|
-
| [Mongoose](https://github.com/Automattic/mongoose) | MongoDB Object Modeling(ODM) designed to work in an asynchronous environment |
|
|
103
|
-
| [TypeORM](https://github.com/typeorm/typeorm) | An ORM that can run in Node.js and Others |
|
|
104
|
-
| [Prisma](https://github.com/prisma/prisma) | Modern Database Access for TypeScript & Node.js |
|
|
105
|
-
| [Knex](https://github.com/knex/knex) | SQL query builder for Postgres, MySQL, MariaDB, SQLite3 and Oracle |
|
|
106
|
-
| [GraphQL](https://github.com/graphql/graphql-js) | query language for APIs and a runtime for fulfilling those queries with your existing data |
|
|
107
|
-
| [Typegoose](https://github.com/typegoose/typegoose) | Define Mongoose models using TypeScript classes |
|
|
108
|
-
| [Mikro ORM](https://github.com/mikro-orm/mikro-orm) | TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases |
|
|
109
|
-
| [Node Postgres](https://node-postgres.com/) | node-postgres is a collection of node.js modules for interfacing with your PostgreSQL database |
|
|
110
|
-
|
|
111
|
-
#### Template to be developed
|
|
112
|
-
|
|
113
|
-
| Name | Description |
|
|
114
|
-
| :------------------------------------------------------------------------------ | :------------------------------------------------------------------------- |
|
|
115
|
-
| [Sequelize Typescript](https://github.com/RobinBuschmann/sequelize-typescript) | Decorators and some other features for sequelize |
|
|
116
|
-
| [TS SQL](https://github.com/codemix/ts-sql) | A SQL database implemented purely in TypeScript type annotations |
|
|
117
|
-
| [inversify-express-utils](https://github.com/inversify/inversify-express-utils) | Some utilities for the development of Express application with InversifyJS |
|
|
118
|
-
| [postgress typescript]() | |
|
|
119
|
-
| [graphql prisma]() | |
|
|
120
|
-
|
|
121
|
-
## 🛎 Available Commands for the Server
|
|
122
|
-
|
|
123
|
-
- Run the Server in production mode : `npm run start` or `Start typescript-express-starter` in VS Code
|
|
124
|
-
- Run the Server in development mode : `npm run dev` or `Dev typescript-express-starter` in VS Code
|
|
125
|
-
- Run all unit-tests : `npm test` or `Test typescript-express-starter` in VS Code
|
|
126
|
-
- Check for linting errors : `npm run lint` or `Lint typescript-express-starter` in VS Code
|
|
127
|
-
- Fix for linting : `npm run lint:fix` or `Lint:Fix typescript-express-starter` in VS Code
|
|
128
|
-
|
|
129
|
-
## 💎 The Package Features
|
|
130
|
-
|
|
131
|
-
<p>
|
|
132
|
-
<img src="https://img.shields.io/badge/-TypeScript-007ACC?style=for-the-badge&logo=TypeScript&logoColor=fff" />
|
|
133
|
-
<img src="https://img.shields.io/badge/-Node.js-339933?style=for-the-badge&logo=Node.js&logoColor=fff" />
|
|
134
|
-
<img src="https://img.shields.io/badge/-NPM-CB3837?style=for-the-badge&logo=NPM&logoColor=fff" />
|
|
135
|
-
</p>
|
|
136
|
-
<p>
|
|
137
|
-
<img src="https://img.shields.io/badge/-Docker-2496ED?style=for-the-badge&logo=Docker&logoColor=fff" />
|
|
138
|
-
<img src="https://img.shields.io/badge/-NGINX-269539?style=for-the-badge&logo=NGINX&logoColor=fff" />
|
|
139
|
-
<img src="https://img.shields.io/badge/-PM2-2B037A?style=for-the-badge&logo=PM2&logoColor=fff" />
|
|
140
|
-
<img src="https://img.shields.io/badge/-Nodemon-76D04B?style=for-the-badge&logo=Nodemon&logoColor=fff" />
|
|
141
|
-
<img src="https://img.shields.io/badge/-ESLint-4B32C3?style=for-the-badge&logo=ESLint&logoColor=fff" />
|
|
142
|
-
<img src="https://img.shields.io/badge/-Prettier-F7B93E?style=for-the-badge&logo=Prettier&logoColor=000" />
|
|
143
|
-
<img src="https://img.shields.io/badge/-Jest-C21325?style=for-the-badge&logo=Jest&logoColor=fff" />
|
|
144
|
-
<img src="https://img.shields.io/badge/-Swagger-85EA2D?style=for-the-badge&logo=Swagger&logoColor=000" />
|
|
145
|
-
<img src="https://img.shields.io/badge/-SWC-FFFFFF?style=for-the-badge&logo=swc&logoColor=FBE1A6" />
|
|
146
|
-
</p>
|
|
147
|
-
<p>
|
|
148
|
-
<img src="https://img.shields.io/badge/-MySQL-4479A1?style=for-the-badge&logo=MySQL&logoColor=fff" />
|
|
149
|
-
<img src="https://img.shields.io/badge/-MariaDB-003545?style=for-the-badge&logo=MariaDB&logoColor=fff" />
|
|
150
|
-
<img src="https://img.shields.io/badge/-PostgreSQL-336791?style=for-the-badge&logo=PostgreSQL&logoColor=fff" />
|
|
151
|
-
<img src="https://img.shields.io/badge/-MongoDB-47A248?style=for-the-badge&logo=MongoDB&logoColor=fff" />
|
|
152
|
-
</p>
|
|
153
|
-
|
|
154
|
-
### 🐳 Docker :: Container Platform
|
|
155
|
-
|
|
156
|
-
[Docker](https://docs.docker.com/) is a platform for developers and sysadmins to build, run, and share applications with containers.
|
|
157
|
-
|
|
158
|
-
[Docker](https://docs.docker.com/get-docker/) Install.
|
|
159
|
-
|
|
160
|
-
- starts the containers in the background and leaves them running : `docker-compose up -d`
|
|
161
|
-
- Stops containers and removes containers, networks, volumes, and images : `docker-compose down`
|
|
162
|
-
|
|
163
|
-
Modify `docker-compose.yml` and `Dockerfile` file to your source code.
|
|
164
|
-
|
|
165
|
-
### ♻️ NGINX :: Web Server
|
|
166
|
-
|
|
167
|
-
[NGINX](https://www.nginx.com/) is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.
|
|
168
|
-
|
|
169
|
-
Proxying is typically used to distribute the load among several servers, seamlessly show content from different websites, or pass requests for processing to application servers over protocols other than HTTP.
|
|
170
|
-
|
|
171
|
-
When NGINX proxies a request, it sends the request to a specified proxied server, fetches the response, and sends it back to the client.
|
|
172
|
-
|
|
173
|
-
Modify `nginx.conf` file to your source code.
|
|
76
|
+
- 📱 **Template Selection** — 10+ pre-configured project templates
|
|
174
77
|
|
|
175
|
-
|
|
78
|
+
- ⚡ **Auto Configuration** — Dependencies, scripts, and configs automatically setup
|
|
176
79
|
|
|
177
|
-
|
|
80
|
+
- 🔧 **Smart Dependencies** — Tool compatibility and requirement resolution
|
|
178
81
|
|
|
179
|
-
|
|
82
|
+
- 📦 **Package Manager Agnostic** — Works with npm, pnpm, or yarn
|
|
180
83
|
|
|
181
|
-
|
|
84
|
+
- 🚀 **Zero Config Start** — Generated projects work immediately
|
|
182
85
|
|
|
183
|
-
|
|
86
|
+
- 🎨 **Customizable** — Add your own templates and development tools
|
|
184
87
|
|
|
185
|
-
|
|
88
|
+
## ⚡️ Quick Start
|
|
186
89
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
5. Prettier - Code formatter
|
|
192
|
-
|
|
193
|
-
<img src="https://user-images.githubusercontent.com/42952358/126604937-4ef50b61-b7e4-4635-b3c9-3c94dd6b06fa.png" alt="Formatter Setting" />
|
|
194
|
-
|
|
195
|
-
> Palantir, the backers behind TSLint announced in 2019 that they would be deprecating TSLint in favor of supporting typescript-eslint in order to benefit the community.
|
|
196
|
-
> So, migration from TSLint to ESLint.
|
|
197
|
-
|
|
198
|
-
### 📗 Swagger :: API Document
|
|
199
|
-
|
|
200
|
-
[Swagger](https://swagger.io/) is Simplify API development for users, teams, and enterprises with the Swagger open source and professional toolset.
|
|
201
|
-
|
|
202
|
-
Easily used by Swagger to design and document APIs at scale.
|
|
203
|
-
|
|
204
|
-
Start your app in development mode at `http://localhost:3000/api-docs`
|
|
205
|
-
|
|
206
|
-
Modify `swagger.yaml` file to your source code.
|
|
207
|
-
|
|
208
|
-
### 🌐 REST Client :: HTTP Client Tools
|
|
209
|
-
|
|
210
|
-
REST Client allows you to send HTTP request and view the response in Visual Studio Code directly.
|
|
211
|
-
|
|
212
|
-
VSCode Extension [REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) Install.
|
|
213
|
-
|
|
214
|
-
Modify `*.http` file in src/http folder to your source code.
|
|
215
|
-
|
|
216
|
-
### 🔮 PM2 :: Advanced, Production process manager for Node.js
|
|
217
|
-
|
|
218
|
-
[PM2](https://pm2.keymetrics.io/) is a daemon process manager that will help you manage and keep your application online 24/7.
|
|
219
|
-
|
|
220
|
-
- production mode :: `npm run deploy:prod` or `pm2 start ecosystem.config.js --only prod`
|
|
221
|
-
- development mode :: `npm run deploy:dev` or `pm2 start ecosystem.config.js --only dev`
|
|
222
|
-
|
|
223
|
-
Modify `ecosystem.config.js` file to your source code.
|
|
224
|
-
|
|
225
|
-
### 🏎 SWC :: a super-fast JavaScript / TypeScript compiler
|
|
226
|
-
|
|
227
|
-
[SWC](https://swc.rs/) is an extensible Rust-based platform for the next generation of fast developer tools.
|
|
228
|
-
|
|
229
|
-
`SWC is 20x faster than Babel on a single thread and 70x faster on four cores.`
|
|
90
|
+
```bash
|
|
91
|
+
# Install globally
|
|
92
|
+
npm install -g typescript-express-starter
|
|
230
93
|
|
|
231
|
-
|
|
232
|
-
-
|
|
94
|
+
# Run the interactive CLI
|
|
95
|
+
typescript-express-starter
|
|
233
96
|
|
|
234
|
-
|
|
97
|
+
# Follow the prompts to:
|
|
98
|
+
# 1. Choose package manager (npm/pnpm/yarn)
|
|
99
|
+
# 2. Select project template (default/prisma/sequelize/etc.)
|
|
100
|
+
# 3. Enter project name
|
|
101
|
+
# 4. Pick development tools (linting/testing/docker/etc.)
|
|
235
102
|
|
|
236
|
-
|
|
103
|
+
# Navigate to your project
|
|
104
|
+
cd your-project-name
|
|
237
105
|
|
|
238
|
-
|
|
106
|
+
# Start development server
|
|
107
|
+
npm run dev
|
|
108
|
+
```
|
|
239
109
|
|
|
240
|
-
|
|
110
|
+
**Generated Project Features:**
|
|
111
|
+
- 🌐 Express server: `http://localhost:3000/`
|
|
112
|
+
- 📚 Auto-generated API docs: `http://localhost:3000/api-docs`
|
|
113
|
+
- 🔄 Hot reload with nodemon
|
|
114
|
+
- 🧪 Testing setup included
|
|
241
115
|
|
|
242
|
-
|
|
116
|
+
## 📂 Generated Project Structure
|
|
243
117
|
|
|
244
|
-
|
|
118
|
+
When you create a new project, the CLI generates this structure:
|
|
245
119
|
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
│
|
|
250
|
-
│
|
|
251
|
-
│
|
|
252
|
-
|
|
253
|
-
│
|
|
254
|
-
│
|
|
255
|
-
│
|
|
256
|
-
│
|
|
257
|
-
│
|
|
258
|
-
│
|
|
259
|
-
│
|
|
260
|
-
│
|
|
261
|
-
│
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
│ │ ├── auth.http
|
|
268
|
-
│ │ └── users.http
|
|
269
|
-
│ │
|
|
270
|
-
│ ├──📂 interfaces
|
|
271
|
-
│ │ ├── auth.interface.ts
|
|
272
|
-
│ │ ├── routes.interface.ts
|
|
273
|
-
│ │ └── users.interface.ts
|
|
274
|
-
│ │
|
|
275
|
-
│ ├──📂 middlewares
|
|
276
|
-
│ │ ├── auth.middleware.ts
|
|
277
|
-
│ │ ├── error.middleware.ts
|
|
278
|
-
│ │ └── validation.middleware.ts
|
|
279
|
-
│ │
|
|
280
|
-
│ ├──📂 models
|
|
281
|
-
│ │ └── users.model.ts
|
|
282
|
-
│ │
|
|
283
|
-
│ ├──📂 routes
|
|
284
|
-
│ │ ├── auth.route.ts
|
|
285
|
-
│ │ └── users.route.ts
|
|
286
|
-
│ │
|
|
287
|
-
│ ├──📂 services
|
|
288
|
-
│ │ ├── auth.service.ts
|
|
289
|
-
│ │ └── users.service.ts
|
|
290
|
-
│ │
|
|
291
|
-
│ ├──📂 test
|
|
292
|
-
│ │ ├── auth.test.ts
|
|
293
|
-
│ │ └── users.test.ts
|
|
294
|
-
│ │
|
|
295
|
-
│ ├──📂 utils
|
|
296
|
-
│ │ ├── logger.ts
|
|
297
|
-
│ │ └── vaildateEnv.ts
|
|
298
|
-
│ │
|
|
299
|
-
│ ├── app.ts
|
|
300
|
-
│ └── server.ts
|
|
301
|
-
│
|
|
302
|
-
├── .dockerignore
|
|
303
|
-
├── .editorconfig
|
|
304
|
-
├── .env.development.local
|
|
305
|
-
├── .env.production.local
|
|
306
|
-
├── .env.test.local
|
|
307
|
-
├── .eslintignore
|
|
308
|
-
├── .eslintrc
|
|
309
|
-
├── .gitignore
|
|
310
|
-
├── .huskyrc
|
|
311
|
-
├── .lintstagedrc.json
|
|
312
|
-
├── .prettierrc
|
|
313
|
-
├── .swcrc
|
|
314
|
-
├── docker-compose.yml
|
|
315
|
-
├── Dockerfile.dev
|
|
316
|
-
├── Dockerfile.prod
|
|
317
|
-
├── ecosystem.config.js
|
|
318
|
-
├── jest.config.js
|
|
319
|
-
├── Makefile
|
|
320
|
-
├── nginx.conf
|
|
321
|
-
├── nodemon.json
|
|
322
|
-
├── package-lock.json
|
|
323
|
-
├── package.json
|
|
324
|
-
├── swagger.yaml
|
|
325
|
-
└── tsconfig.json
|
|
120
|
+
```bash
|
|
121
|
+
your-project/
|
|
122
|
+
├── src/
|
|
123
|
+
│ ├── config/ # Configuration files, environment settings
|
|
124
|
+
│ ├── controllers/ # Request handling & response logic
|
|
125
|
+
│ ├── dtos/ # Data Transfer Objects for request/response
|
|
126
|
+
│ ├── entities/ # Database entities/models (if ORM selected)
|
|
127
|
+
│ ├── exceptions/ # Custom exception classes
|
|
128
|
+
│ ├── interfaces/ # TypeScript interfaces and type definitions
|
|
129
|
+
│ ├── middlewares/ # Middlewares (logging, auth, error handling)
|
|
130
|
+
│ ├── repositories/ # Database access logic
|
|
131
|
+
│ ├── routes/ # API route definitions
|
|
132
|
+
│ ├── services/ # Business logic
|
|
133
|
+
│ ├── utils/ # Utility/helper functions
|
|
134
|
+
│ ├── app.ts # Express app initialization
|
|
135
|
+
│ └── server.ts # Server entry point
|
|
136
|
+
├── .env* # Environment variables (multiple stages)
|
|
137
|
+
├── nodemon.json # Development server configuration
|
|
138
|
+
├── package.json # Dependencies and scripts
|
|
139
|
+
├── tsconfig.json # TypeScript configuration
|
|
140
|
+
└── docker-compose.yml # Docker setup (if selected)
|
|
326
141
|
```
|
|
327
142
|
|
|
143
|
+
## 🛠 Development Tools Available
|
|
144
|
+
|
|
145
|
+
Choose from these categories during project setup:
|
|
146
|
+
|
|
147
|
+
| Category | Available Tools | Description |
|
|
148
|
+
| ------------- | ------------------------ | ----------------------------------------------- |
|
|
149
|
+
| **Linter** | `biome`, `eslint` | Code formatting & linting (Biome is all-in-one) |
|
|
150
|
+
| **Bundler** | `swc`, `tsup` | Fast TypeScript compilation and bundling |
|
|
151
|
+
| **Testing** | `jest`, `vitest` | Unit & integration testing frameworks |
|
|
152
|
+
| **Process** | `pm2` | Production process management |
|
|
153
|
+
| **CI/CD** | `github` | GitHub Actions workflows |
|
|
154
|
+
| **Git Hooks** | `husky` | Pre-commit hooks for quality control |
|
|
155
|
+
| **Container** | `docker` | Docker & docker-compose configuration |
|
|
156
|
+
| **API Docs** | `swagger` | OpenAPI/Swagger documentation |
|
|
157
|
+
|
|
158
|
+
**Smart Selection**: The CLI automatically resolves tool dependencies and compatibility.
|
|
159
|
+
|
|
160
|
+
## 🧩 Available Templates
|
|
161
|
+
|
|
162
|
+
Current template status (more coming soon!):
|
|
163
|
+
|
|
164
|
+
### ✅ **Currently Available**
|
|
165
|
+
| Template | Description | Status |
|
|
166
|
+
| ---------- | ------------------------------ | ------ |
|
|
167
|
+
| `default` | Express + TypeScript starter | ✅ Active |
|
|
168
|
+
|
|
169
|
+
### 🚧 **Coming Soon**
|
|
170
|
+
|
|
171
|
+
#### **ORM/Database Integration**
|
|
172
|
+
| Template | Description | Priority |
|
|
173
|
+
| ------------------ | ------------------------------ | -------- |
|
|
174
|
+
| `prisma` | Type-safe database client with auto-generated types | 🔥 High |
|
|
175
|
+
| `drizzle` | TypeScript-first ORM with zero runtime overhead | 🔥 High |
|
|
176
|
+
| `mikro-orm` | Data Mapper ORM pattern for TypeScript | 🔥 High |
|
|
177
|
+
| `mongoose` | Elegant MongoDB ODM for Node.js | 🔥 High |
|
|
178
|
+
| `node-postgres` | High-performance PostgreSQL native driver | 🚧 In Dev |
|
|
179
|
+
| `knex` | Flexible SQL query builder & migrations | 🚧 In Dev |
|
|
180
|
+
| `typeorm` | Decorator-based Active Record ORM | 🚧 In Dev |
|
|
181
|
+
| `sequelize` | Mature Promise-based SQL ORM | 🚧 In Dev |
|
|
182
|
+
| `typegoose` | TypeScript-friendly Mongoose alternative | 🚧 In Dev |
|
|
183
|
+
|
|
184
|
+
#### **Architecture/Controller Style**
|
|
185
|
+
| Template | Description | Priority |
|
|
186
|
+
| ------------------ | ------------------------------ | -------- |
|
|
187
|
+
| `graphql` | GraphQL API schema with Apollo Server | 🚧 In Dev |
|
|
188
|
+
|
|
189
|
+
> **Note**: Currently focusing on the `default` template. Additional templates will be activated as they're completed and tested.
|
|
190
|
+
|
|
191
|
+
## 🤔 Why Use This CLI?
|
|
192
|
+
|
|
193
|
+
### vs. Manual Setup
|
|
194
|
+
| Aspect | Manual Setup | TypeScript Express Starter CLI |
|
|
195
|
+
| ---------------- | --------------------------------- | ------------------------------------- |
|
|
196
|
+
| **Time** | 🔴 Hours of configuration | ✅ 2-3 minutes interactive setup |
|
|
197
|
+
| **Configuration** | 🔴 Manual dependency management | ✅ Auto-resolved, compatible versions |
|
|
198
|
+
| **Best Practices** | 🔴 Research required | ✅ Pre-configured industry standards |
|
|
199
|
+
| **Consistency** | 🔴 Varies by developer | ✅ Standardized project structure |
|
|
200
|
+
| **Updates** | 🔴 Manual maintenance | ✅ CLI updates bring new features |
|
|
201
|
+
|
|
202
|
+
### vs. Other Generators
|
|
203
|
+
| Feature | TypeScript Express Starter | Other Generators |
|
|
204
|
+
| ---------------- | -------------------------- | ---------------- |
|
|
205
|
+
| **Database Choice** | ✅ 10+ options planned | Limited options |
|
|
206
|
+
| **Tool Selection** | ✅ Mix & match dev tools | Fixed stack |
|
|
207
|
+
| **TypeScript First** | ✅ Built for TypeScript | Often JS-first |
|
|
208
|
+
| **Production Ready** | ✅ Docker, PM2 included | Basic setup |
|
|
209
|
+
|
|
210
|
+
## 📄 License
|
|
211
|
+
|
|
212
|
+
MIT(LICENSE) © AGUMON (ljlm0402)
|
|
213
|
+
|
|
328
214
|
## ⭐️ Stargazers
|
|
329
215
|
|
|
330
216
|
[](https://github.com/ljlm0402/typescript-express-starter/stargazers)
|
|
@@ -336,29 +222,3 @@ Modify `Makefile` file to your source code.
|
|
|
336
222
|
## 🤝 Contributors
|
|
337
223
|
|
|
338
224
|
[](https://github.com/ljlm0402/typescript-express-starter/graphs/contributors)
|
|
339
|
-
|
|
340
|
-
## 💳 License
|
|
341
|
-
|
|
342
|
-
[MIT](LICENSE)
|
|
343
|
-
|
|
344
|
-
## 📑 Recommended Commit Message
|
|
345
|
-
|
|
346
|
-
| When | Commit Message |
|
|
347
|
-
| :--------------- | :----------------- |
|
|
348
|
-
| Add Feature | ✨ Add Feature |
|
|
349
|
-
| Fix Bug | 🐞 Fix Bug |
|
|
350
|
-
| Refactoring Code | 🛠 Refactoring Code |
|
|
351
|
-
| Install Package | 📦 Install Package |
|
|
352
|
-
| Fix Readme | 📚 Fix Readme |
|
|
353
|
-
| Update Version | 🌼 Update Version |
|
|
354
|
-
| New Template | 🎉 New Template |
|
|
355
|
-
|
|
356
|
-
## 📬 Please request an issue
|
|
357
|
-
|
|
358
|
-
Please leave a question or question as an issue.
|
|
359
|
-
|
|
360
|
-
I will do my best to answer and reflect.
|
|
361
|
-
|
|
362
|
-
Thank you for your interest.
|
|
363
|
-
|
|
364
|
-
# ദ്ദി*ˊᗜˋ*)
|