Skip to content

oscardmg/nodejs-cleancode-typescript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

link tutorial: https://www.youtube.com/playlist?list=PLAZUzPw7MqPSWbqXibVBfon4Y5HgQT9EU

Instalacion inicial

npm i express aws-sdk dotenv uuid

npm i -D typescript ts-node nodemon eslint eslint-config-standard-with-typescript @types/node @types/express @types/aws-sdk @types/uuid 

npx tsc --init

tsconfig.json

{
  "compilerOptions": {
    "target": "es2016",
    "module": "commonjs",
    "rootDir": "./src",
    "baseUrl": "./src",
    "outDir": "./dist",
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "skipLibCheck": true
  }
}
tsc

crear archivo .eslintrc.json intalar extension eslint

{
  "extends": "standard-with-typescript",
  "parserOptions": {
    "project": "./tsconfig.json"
  },
  "rules": {},
  "ignorePatterns": [
    "dist",
    "node_modules",
    "src/**/*.js"
  ]
}

nuestro dominio no puede conocer nada de la capa de infraestructura, la comunicacion se va hacer a traves de interfaces

application/usecases: tener toda la logica de nuestra aplicacion, el obtener un usuario, actualizar un usuario, obtener por id, etc

En el caso de uso tenemos el constructor, en este vamos a inyectar todas las dependencias que necesitamos para poder crear un usuario, estas dependencias son interfaces que estan en el dominio

Capas en orden desde la mas externala a la mas interna

  • Framework
  • Infrastructure
  • Application
  • Domain

La capa de dominio no se puede comunicar con la capa de aplicaion La capa de application no se puede comunicar con la capa de infraesctructura

La comunicacion siempre va ser desde afuera hacia adentro La infraestructura siempre va a conocer de aplicacion o de dominio La capa de aplicacion siempre va a conocer del dominio

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published