Skip to content

Commit

Permalink
fix: folder structure
Browse files Browse the repository at this point in the history
  • Loading branch information
saisilinus committed Apr 6, 2022
1 parent 50e6ffa commit ffd27a4
Show file tree
Hide file tree
Showing 23 changed files with 73 additions and 30 deletions.
9 changes: 4 additions & 5 deletions src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@ import passport from 'passport';
import cookieParser from 'cookie-parser';
import httpStatus from 'http-status';
import config from './config/config';
import morgan from './config/morgan';
import jwtStrategy from './config/passport';
import authLimiter from './modules/utils/rateLimiter';
import ApiError from './modules/errors/ApiError';
import { errorConverter, errorHandler } from './modules/errors/error';
import { morgan } from './modules/logger';
import { jwtStrategy } from './modules/auth';
import { authLimiter } from './modules/utils';
import { ApiError, errorConverter, errorHandler } from './modules/errors';
import routes from './routes/v1';

const app: Express = express();
Expand Down
2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import mongoose from 'mongoose';
import app from './app';
import config from './config/config';
import logger from './config/logger';
import logger from './modules/logger/logger';

let server: any;
mongoose.connect(config.mongoose.url).then(() => {
Expand Down
8 changes: 4 additions & 4 deletions src/modules/auth/auth.controller.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import httpStatus from 'http-status';
import { Request, Response } from 'express';
import catchAsync from '../utils/catchAsync';
import * as tokenService from '@/modules/token/token.service';
import * as userService from '@/modules/user/user.service';
import * as authService from '@/modules/auth/auth.service';
import * as emailService from '@/modules/email/email.service';
import { tokenService } from '../token';
import { userService } from '../user';
import { authService } from '.';
import { emailService } from '../email';

export const register = catchAsync(async (req: Request, res: Response) => {
const user = await userService.registerUser(req.body);
Expand Down
7 changes: 7 additions & 0 deletions src/modules/auth/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import * as authController from './auth.controller';
import auth from './auth.middleware';
import * as authService from './auth.service';
import * as authValidation from './auth.validation';
import jwtStrategy from './passport';

export { authController, auth, authService, authValidation, jwtStrategy };
8 changes: 4 additions & 4 deletions src/config/passport.ts → src/modules/auth/passport.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { ExtractJwt, Strategy as JwtStrategy } from 'passport-jwt';
import tokenTypes from '../modules/token/token.types';
import config from './config';
import User from '../modules/user/user.model';
import { IPayload } from '../modules/token/token.interfaces';
import tokenTypes from '../token/token.types';
import config from '../../config/config';
import User from '../user/user.model';
import { IPayload } from '../token/token.interfaces';

const jwtStrategy = new JwtStrategy(
{
Expand Down
2 changes: 1 addition & 1 deletion src/modules/email/email.service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import nodemailer from 'nodemailer';
import config from '../../config/config';
import logger from '../../config/logger';
import logger from '../logger/logger';
import { Message } from './email.interfaces';

export const transport = nodemailer.createTransport(config.email.smtp);
Expand Down
4 changes: 4 additions & 0 deletions src/modules/email/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import * as emailInterfaces from './email.interfaces';
import * as emailService from './email.service';

export { emailInterfaces, emailService };
2 changes: 1 addition & 1 deletion src/modules/errors/error.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import winston from 'winston';
import { errorConverter, errorHandler } from './error';
import ApiError from './ApiError';
import config from '../../config/config';
import logger from '../../config/logger';
import logger from '../logger/logger';

describe('Error middlewares', () => {
describe('Error converter', () => {
Expand Down
2 changes: 1 addition & 1 deletion src/modules/errors/error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Request, Response, NextFunction } from 'express';
import mongoose from 'mongoose';
import httpStatus from 'http-status';
import config from '../../config/config';
import logger from '../../config/logger';
import { logger } from '../logger';
import ApiError from './ApiError';

export const errorConverter = (err: any, _req: Request, _res: Response, next: NextFunction) => {
Expand Down
4 changes: 4 additions & 0 deletions src/modules/errors/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import ApiError from './ApiError';
import { errorConverter, errorHandler } from './error';

export { ApiError, errorHandler, errorConverter };
4 changes: 4 additions & 0 deletions src/modules/logger/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import logger from './logger';
import morgan from './morgan';

export { logger, morgan };
2 changes: 1 addition & 1 deletion src/config/logger.ts → src/modules/logger/logger.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import winston from 'winston';
import config from './config';
import config from '../../config/config';

interface LoggingInfo {
level: string;
Expand Down
2 changes: 1 addition & 1 deletion src/config/morgan.ts → src/modules/logger/morgan.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import morgan from 'morgan';
import { Request, Response } from 'express';
import config from './config';
import config from '../../config/config';
import logger from './logger';

morgan.token('message', (_req: Request, res: Response) => res.locals['errorMessage'] || '');
Expand Down
4 changes: 4 additions & 0 deletions src/modules/toJSON/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import toJSON from './toJSON.plugin';
import hideToJSON from './hideToJSON.plugin';

export { toJSON, hideToJSON };
7 changes: 7 additions & 0 deletions src/modules/token/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import * as tokenFixture from './token.fixture';
import * as tokenService from './token.service';
import Token from './token.model';
import * as tokenInterfaces from './token.interfaces';
import tokenTypes from './token.types';

export { tokenFixture, tokenService, Token, tokenInterfaces, tokenTypes };
2 changes: 1 addition & 1 deletion src/modules/token/token.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import ApiError from '../errors/ApiError';
import tokenTypes from './token.types';
import { AccessAndRefreshTokens, ITokenDoc } from './token.interfaces';
import { IUserDoc } from '../user/user.interfaces';
import * as userService from '@/modules/user/user.service';
import { userService } from '../user';

/**
* Generate token
Expand Down
8 changes: 8 additions & 0 deletions src/modules/user/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import * as userController from './user.controller';
import * as userFixture from './user.fixture';
import * as userInterfaces from './user.interfaces';
import User from './user.model';
import * as userService from './user.service';
import * as userValidation from './user.validation';

export { userController, userFixture, userInterfaces, User, userService, userValidation };
2 changes: 1 addition & 1 deletion src/modules/user/user.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import catchAsync from '../utils/catchAsync';
import ApiError from '../errors/ApiError';
import pick from '../utils/pick';
import { IOptions } from '../paginate/paginate.plugin';
import * as userService from '@/modules/user/user.service';
import { userService } from '.';

export const createUser = catchAsync(async (req: Request, res: Response) => {
const user = await userService.createUser(req.body);
Expand Down
5 changes: 5 additions & 0 deletions src/modules/utils/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import catchAsync from './catchAsync';
import pick from './pick';
import authLimiter from './rateLimiter';

export { catchAsync, pick, authLimiter };
4 changes: 4 additions & 0 deletions src/modules/validate/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { objectId, password } from './custom.validation';
import validate from './validate.middleware';

export { objectId, password, validate };
6 changes: 2 additions & 4 deletions src/routes/v1/auth.route.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import express, { Router } from 'express';
import validate from '@/modules/validate/validate.middleware';
import auth from '@/modules/auth/auth.middleware';
import * as authValidation from '@/modules/auth/auth.validation';
import * as authController from '@/modules/auth/auth.controller';
import { validate } from '../../modules/validate';
import { authValidation, authController, auth } from '../../modules/auth';

const router: Router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion src/routes/v1/swagger.route.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import express from 'express';
import swaggerJsdoc from 'swagger-jsdoc';
import swaggerUi from 'swagger-ui-express';
import swaggerDefinition from '@/modules/swagger/swagger.definition';
import swaggerDefinition from '../../modules/swagger/swagger.definition';

const router = express.Router();

Expand Down
7 changes: 3 additions & 4 deletions src/routes/v1/user.route.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import express, { Router } from 'express';
import validate from '@/modules/validate/validate.middleware';
import auth from '@/modules/auth/auth.middleware';
import * as userValidation from '@/modules/user/user.validation';
import * as userController from '@/modules/user/user.controller';
import { validate } from '../../modules/validate';
import { auth } from '../../modules/auth';
import { userController, userValidation } from '../../modules/user';

const router: Router = express.Router();

Expand Down

0 comments on commit ffd27a4

Please sign in to comment.