From 4881de86679875cc9cd3e06e4f7af16f7ca014f0 Mon Sep 17 00:00:00 2001 From: Alejandro Lembke Barrientos Date: Mon, 6 Mar 2023 22:19:22 +0000 Subject: [PATCH] PR-780243: adding only one source of truth. --- jest.config.js | 9 +++++++++ package-lock.json | 13 +++++++++++++ package.json | 1 + src/GraphQL/resolvers/index.ts | 2 +- src/GraphQL/schema/index.ts | 2 +- src/GraphQL/server.ts | 4 ++-- src/controllers/controllerGraphQL/index.ts | 2 +- src/index.ts | 8 ++++---- src/tests/server/index.test.ts | 2 +- tsconfig.json | 17 +++++++++++++++++ webpack.config.dev.ts | 10 +++------- webpack.config.ts | 10 +++------- 12 files changed, 56 insertions(+), 24 deletions(-) diff --git a/jest.config.js b/jest.config.js index 65fa0e8..6698117 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,15 @@ +const { pathsToModuleNameMapper } = require('ts-jest'); +const { compilerOptions } = require('./tsconfig'); + +const aliases = pathsToModuleNameMapper(compilerOptions.paths, { + prefix: '' +}); + module.exports = { testEnvironment: 'node', transform: { "^.+\\.ts$": "ts-jest" + },moduleNameMapper: { + ...aliases, }, }; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a44fee5..3256926 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,6 +45,7 @@ "eslint-webpack-plugin": "^4.0.0", "jest": "^29.5.0", "nodemon": "^2.0.21", + "resolve-ts-aliases": "^1.0.1", "supertest": "^6.3.3", "ts-jest": "^29.0.5", "ts-loader": "^9.4.2", @@ -9425,6 +9426,12 @@ "node": ">=4" } }, + "node_modules/resolve-ts-aliases": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-ts-aliases/-/resolve-ts-aliases-1.0.1.tgz", + "integrity": "sha512-BEFJ2lO9FhuJ+QVK8ZJxuDaFM2/oXt0YJJU9bS2R4zoWfMQOmrT0fLeSClXo7PMAD/kEbRfcGUHqhYKn/ZFPOg==", + "dev": true + }, "node_modules/resolve.exports": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.0.tgz", @@ -17885,6 +17892,12 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-ts-aliases": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-ts-aliases/-/resolve-ts-aliases-1.0.1.tgz", + "integrity": "sha512-BEFJ2lO9FhuJ+QVK8ZJxuDaFM2/oXt0YJJU9bS2R4zoWfMQOmrT0fLeSClXo7PMAD/kEbRfcGUHqhYKn/ZFPOg==", + "dev": true + }, "resolve.exports": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.0.tgz", diff --git a/package.json b/package.json index 0caac67..29fb58a 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "eslint-webpack-plugin": "^4.0.0", "jest": "^29.5.0", "nodemon": "^2.0.21", + "resolve-ts-aliases": "^1.0.1", "supertest": "^6.3.3", "ts-jest": "^29.0.5", "ts-loader": "^9.4.2", diff --git a/src/GraphQL/resolvers/index.ts b/src/GraphQL/resolvers/index.ts index c662741..f298795 100644 --- a/src/GraphQL/resolvers/index.ts +++ b/src/GraphQL/resolvers/index.ts @@ -1,6 +1,6 @@ 'use strict'; -import { getTest, addText } from '../../controllers/controllerGraphQL'; +import { getTest, addText } from '@controllerGraphQL'; // A map of functions which return data for the schema. const resolvers = { diff --git a/src/GraphQL/schema/index.ts b/src/GraphQL/schema/index.ts index 40fe79f..6189687 100644 --- a/src/GraphQL/schema/index.ts +++ b/src/GraphQL/schema/index.ts @@ -1,5 +1,5 @@ import { makeExecutableSchema } from '@graphql-tools/schema'; -import resolvers from'../resolvers'; +import resolvers from'@GraphQL/resolvers'; import Test from './Test.gql'; // The GraphQL schema diff --git a/src/GraphQL/server.ts b/src/GraphQL/server.ts index 5e1d38d..2aa604d 100644 --- a/src/GraphQL/server.ts +++ b/src/GraphQL/server.ts @@ -1,8 +1,8 @@ 'use strict'; import express from 'express'; //express import { graphqlHTTP } from 'express-graphql'; -import { config } from '../../config'; -import schema from './schema'; +import { config } from '@config'; +import schema from '@GraphQL/schema'; const server = express.Router();//Router de Express diff --git a/src/controllers/controllerGraphQL/index.ts b/src/controllers/controllerGraphQL/index.ts index ce41902..a0d11d4 100644 --- a/src/controllers/controllerGraphQL/index.ts +++ b/src/controllers/controllerGraphQL/index.ts @@ -1,6 +1,6 @@ 'use strict'; -import { getTestModel, addTextModel } from '../../models'; +import { getTestModel, addTextModel } from '@models'; // eslint-disable-next-line export const getTest = async ({rootValue, args, context}) => { diff --git a/src/index.ts b/src/index.ts index 037b2e0..1052054 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,11 +6,11 @@ import cors from 'cors'; import cookieParser from 'cookie-parser'; import { useServer } from 'graphql-ws/lib/use/ws'; import { execute, subscribe } from 'graphql'; -import GraphQLserver from './GraphQL/server';// Server of GraphQL, +import GraphQLserver from '@GraphQL/server';// Server of GraphQL, import expressPlayground from 'graphql-playground-middleware-express'; -import schema from './GraphQL/schema'; -import { config } from '../config'; -import apiRouter from './routes'; +import schema from '@GraphQL/schema'; +import { config } from '@config'; +import apiRouter from '@routes'; const app = express(), //creating app whitelist = config.WHITELIST_URLS, diff --git a/src/tests/server/index.test.ts b/src/tests/server/index.test.ts index 045872d..dd72e18 100644 --- a/src/tests/server/index.test.ts +++ b/src/tests/server/index.test.ts @@ -1,4 +1,4 @@ -import server from '../../index'; +import server from '@src'; import supertest from 'supertest'; describe('global server tests', () => { let request; diff --git a/tsconfig.json b/tsconfig.json index 58aa9f6..414c425 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,23 @@ "moduleResolution": "node", "sourceMap": true, "typeRoots" : ["./src/@types", "./node_modules/@types"], + "baseUrl": ".", + "paths": { + "@src/*": ["src/*"], + "@src": ["src"], + "@routes*": ["src/routes/*"], + "@routes": ["src/routes"], + "@controllers/*": ["src/controllers/*"], + "@controllers": ["src/controllers"], + "@models/*": ["src/models/*"], + "@models": ["src/models"], + "@controllerGraphQL/*": ["src/controllers/controllerGraphQL/*"], + "@controllerGraphQL": ["src/controllers/controllerGraphQL"], + "@GraphQL/*": ["src/GraphQL/*"], + "@GraphQL": ["src/GraphQL"], + "@config/*": ["config/*"], + "@config": ["config"] + } }, "lib": ["es2015"] } \ No newline at end of file diff --git a/webpack.config.dev.ts b/webpack.config.dev.ts index bf09e57..2f60f95 100644 --- a/webpack.config.dev.ts +++ b/webpack.config.dev.ts @@ -4,11 +4,13 @@ import { CleanWebpackPlugin } from 'clean-webpack-plugin'; import ESLintPlugin from 'eslint-webpack-plugin'; import nodeExternals from 'webpack-node-externals'; import WebpackShellPluginNext from 'webpack-shell-plugin-next'; +import { resolveTsAliases } from 'resolve-ts-aliases'; import { deFaultValues } from './config'; const ROOT_DIR = path.resolve(__dirname); const resolvePath = (...args) => path.resolve(ROOT_DIR, ...args); const BUILD_DIR = resolvePath('build'); +const alias = resolveTsAliases(path.resolve('tsconfig.json')); const config = { entry: './src/index.ts', @@ -21,13 +23,7 @@ const config = { }, resolve: { extensions: ['.js', '.ts', '.json', '.gql'], - alias: { - '@controllers': path.resolve(__dirname, 'controllers/'), - '@models': path.resolve(__dirname, 'models/'), - '@controllerGraphQL': path.resolve(__dirname, 'controllers/controllerGraphQL/'), - '@GraphQL': path.resolve(__dirname, 'GraphQL/'), - '@config': path.resolve(__dirname, 'config/'), - } + alias, }, mode: 'development', module: { diff --git a/webpack.config.ts b/webpack.config.ts index eae73b6..c048458 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -4,11 +4,13 @@ import TerserPlugin from 'terser-webpack-plugin'; import { CleanWebpackPlugin } from 'clean-webpack-plugin'; import ESLintPlugin from 'eslint-webpack-plugin'; import nodeExternals from 'webpack-node-externals'; +import { resolveTsAliases } from 'resolve-ts-aliases'; import { deFaultValues } from './config'; const ROOT_DIR = path.resolve(__dirname); const resolvePath = (...args) => path.resolve(ROOT_DIR, ...args); const BUILD_DIR = resolvePath('build'); +const alias = resolveTsAliases(path.resolve('tsconfig.json')); const config = { entry: './src/index.ts', @@ -20,13 +22,7 @@ const config = { }, resolve: { extensions: ['.js', '.ts', '.json', '.gql'], - alias: { - '@controllers': path.resolve(__dirname, 'controllers/'), - '@models': path.resolve(__dirname, 'models/'), - '@controllerGraphQL': path.resolve(__dirname, 'controllers/controllerGraphQL/'), - '@GraphQL': path.resolve(__dirname, 'GraphQL/'), - '@config': path.resolve(__dirname, 'config/'), - } + alias, }, mode: 'production', module: {