GithubHelp home page GithubHelp logo

chnirt / nestjs-graphql-best-practice Goto Github PK

View Code? Open in Web Editor NEW
1.2K 29.0 242.0 4.24 MB

NestJS (Express + TypeORM + GraphQL + MongoDB) codebase containing real world examples (CRUD, auth, advanced patterns, etc).

Home Page: https://github.com/chnirt/nestjs-graphql-best-practice

License: MIT License

HTML 11.56% TypeScript 86.28% JavaScript 1.95% Dockerfile 0.21%
nestjs-best-practices nestjs apollo-graphql typescript typeorm mongodb

nestjs-graphql-best-practice's Introduction

Nestjs GraphQL Best Practice

NestJS (Express + Typeorm) codebase containing real world examples (CRUD, auth, advanced patterns, etc).

Build Status CircleCI Known Vulnerabilities Greenkeeper badge Coverage Status

Node.js Best Practices

Table of Contents

Structure

Node.js Best Practices

Function

  1. Dynamic import
  2. Authenticate
    • Config jwt like OAuth ( access-token, refresh-token )
    • OAuth Google
    • OAuth Facebook
  3. Dump database
    • Child process
  4. Logger
    • NestJs
    • Wiston
  5. Send mail
    • Nodemailer
  6. Payment
    • Stripe
  7. Task scheduler
    • Timeout
    • Interval
    • Cron
  8. Translate
    • Google translate
  9. Upload file
    • Cloudinary
    • Fs createWriteStream to folder static
  10. Test
    • Unit
    • E2e
    • Coverage

Usage

  1. Clone repository
  git clone https://github.com/chnirt/nestjs-graphql-best-practice.git
  1. Cd into directory
  cd nestjs-graphql-best-practice/
  1. Create .env
  touch .env
  1. Add to .env
  PORT=<yourport>
  1. Install dependencies using npm
  npm i

Starting the Server

  1. Generate graphql.schema.ts
  npm run gen

2.1 Start in development normal

  npm run start:dev

2.2 Start with webpack ( 2 terminal view )

  npm run webpack
  npm run start:hmr

Buy Me A Coffee

Node.js Best Practices

Node.js Best Practices

1. Project Structure Practices

[✔️] 1.1 Structure your solution by components

[✔️] 1.2 Layer your components, keep Express within its boundaries

[✔️] 1.3 Wrap common utilities as npm packages

[❌] No neccessary - 1.4 Separate Express 'app' and 'server'

[✔️] 1.5 Use environment aware, secure and hierarchical config

2. Error Handling Practices

[✔️] 2.1 Use Async-Await or promises for async error handling

[✔️] 2.2 Use only the built-in Error object

![❔] 2.3 Distinguish operational vs programmer errors

[✔️] 2.4 Handle errors centrally, not within an Express middleware

[✔️] 2.5 Document API errors using Swagger or GraphQL

[✔️] 2.6 Exit the process gracefully when a stranger comes to town

[✔️] 2.7 Use a mature logger to increase error visibility

[✔️️] use Jest - 2.8 Test error flows using your favorite test framework

![❔] 2.9 Discover errors and downtime using APM products

[✔️] 2.10 Catch unhandled promise rejections

[✔️] 2.11 Fail fast, validate arguments using a dedicated library

3. Code Style Practices

[❌] No neccessary - 3.1 Use ESLint

[❔] 3.2 Node.js specific plugins

[✔️] 3.3 Start a Codeblock's Curly Braces on the Same Line

[✔️] 3.4 Separate your statements properly

[✔️] 3.5 Name your functions

[✔️] 3.6 Use naming conventions for variables, constants, functions and classes

[✔️] 3.7 Prefer const over let. Ditch the var

[✔️] 3.8 Require modules first, not inside functions

[✔️] Nest must import files directly - 3.9 Require modules by folders, opposed to the files directly

[✔️] 3.10 Use the === operator

[✔️] 3.11 Use Async Await, avoid callbacks

[✔️] 3.12 Use arrow function expressions (=>)

4. Testing And Overall Quality Practices

[✔️] 4.1 At the very least, write API (component) testing

[✔️] use Jest - 4.2 Include 3 parts in each test name

[✔️] use Jest - 4.3 Structure tests by the AAA pattern

[✔️] 4.4 Detect code issues with a linter

[〽️] use Jest - 4.5 Avoid global test fixtures and seeds, add data per-test

[✔️] 4.6 Constantly inspect for vulnerable dependencies

![❔] 4.7 Tag your tests

[✔️] 4.8 Check your test coverage, it helps to identify wrong test patterns

[✔️] 4.9 Inspect for outdated packages

[✔️] 4.10 Use production-like env for e2e testing

[✔️] 4.11 Refactor regularly using static analysis tools

[✔️] 4.12 Carefully choose your CI platform (Jenkins vs CircleCI vs Travis vs Rest of the world)

5. Going To Production Practices

![❔] 5.1. Monitoring!

[✔️] 5.2. Increase transparency using smart logging

![❔] 5.3. Delegate anything possible (e.g. gzip, SSL) to a reverse proxy

[✔️] 5.4. Lock dependencies

![❔] 5.5. Guard process uptime using the right tool

[✔️] 5.6. Utilize all CPU cores

[✔️] 5.7. Create a ‘maintenance endpoint’

[✔️] 5.8. Discover errors and downtime using APM products

[✔️] 5.9. Make your code production-ready

![❔] 5.10. Measure and guard the memory usage

[✔️] 5.11. Get your frontend assets out of Node

![❔] 5.12. Be stateless, kill your servers almost every day

[✔️] 5.13. Use tools that automatically detect vulnerabilities

![❔] 5.14. Assign a transaction id to each log statement

[✔️] 5.15. Set NODE_ENV=production

![❔] 5.16. Design automated, atomic and zero-downtime deployments

![❔] 5.17. Use an LTS release of Node.js

![❔] 5.18. Don't route logs within the app

6. Security Best Practices

[✔️] 6.1. Embrace linter security rules

[✔️] 6.2. Limit concurrent requests using a middleware

[✔️] 6.3 Extract secrets from config files or use packages to encrypt them

[✔️] 6.4. Prevent query injection vulnerabilities with ORM/ODM libraries

![❔] 6.5. Collection of generic security best practices

[✔️] 6.6. Adjust the HTTP response headers for enhanced security

[✔️] 6.7. Constantly and automatically inspect for vulnerable dependencies

[✔️] 6.8. Avoid using the Node.js crypto library for handling passwords, use Bcrypt

![❔] 6.9. Escape HTML, JS and CSS output

[✔️] 6.10. Validate incoming JSON schemas

![❔] 6.11. Support blacklisting JWTs

![❔] 6.12. Prevent brute-force attacks against authorization

[✔️] 6.13. Run Node.js as non-root user

[✔️] 6.14. Limit payload size using a reverse-proxy or a middleware

![❔] 6.15. Avoid JavaScript eval statements

![❔] 6.16. Prevent evil RegEx from overloading your single thread execution

[✔️] 6.17. Avoid module loading using a variable

![❔] 6.18. Run unsafe code in a sandbox

![❔] 6.19. Take extra care when working with child processes

[✔️] 6.20. Hide error details from clients

[✔️] 6.21. Configure 2FA for npm or Yarn

[❌] No neccessary - 6.22. Modify session middleware settings

![❔] 6.23. Avoid DOS attacks by explicitly setting when a process should crash

[❌] No neccessary - 6.24. Prevent unsafe redirects

[✔️] 6.25. Avoid publishing secrets to the npm registry

7. Performance Best Practices

Our contributors are working on this section. Would you like to join?

[✔️] 7.1. Prefer native JS methods over user-land utils like Lodash

[❔] 7.2. Use Fastify in place of Express

nestjs-graphql-best-practice's People

Contributors

chnirt avatar greenkeeper[bot] avatar hieutran111 avatar j3bb9z avatar kaonashi164 avatar luuvinhhung avatar minhieutran avatar miticc06 avatar phongnguyenn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nestjs-graphql-best-practice's Issues

MongoDB to PostgreSQL

hi I would like to know is it possible to have the project with postgresql? otherwise great structure thank you very much

npm run start error

Cannot find module '../generator/graphql.schema'.

11 } from '../generator/graphql.schema'

Using postgres

Hi, what if.. i want to use postgres instead of mongo? there is a lot of MONGO_ stuff everywhere, should i replace it or..
thnks.

Error run start project

step 0: config PORT=3000
step 1: npm install
step 2: run gen
step 3: npm run start:dev
got error
Debugger attached.
(node:7791) DeprecationWarning: Deep requiring like const uuidv4 = require('uuid/v4'); is deprecated as of [email protected]. Please require the top-level module when using the Node.js CommonJS module or use ECMAScript Modules when bundling for the browser. See https://github.com/uuidjs/uuid/blob/master/README.md#upgrading-from-v3x-of-this-module for more information.

Validation isn't working

I see validation rules in /src/validations/users and directive for createUser mutation. So why I'm able to create a user with empty fields?

Снимок экрана 2021-02-10 в 00 39 57

An in-range update of @types/bull is breaking the build 🚨


🚨 Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! 💜 🚚💨 💚

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @types/bull was updated from 3.12.3 to 3.13.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

@types/bull is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • ci/circleci: deploy: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Error run build or start:prod project

I can't build the project using the "build" command nor is it possible to run the "start:prod" command successfully.

> [email protected] build /Users/rafaeldamataneri/Downloads/nestjs-graphql-best-practice-87843f95eebc7900a21997fbb9a45944e567fe03
> tsc -p tsconfig.build.json

node_modules/@nestjs/graphql/node_modules/@apollo/gateway/dist/index.d.ts:61:5 - error TS2416: Property 'load' in type 'ApolloGateway' is not assignable to the same property in base type 'GraphQLService'.
  Type '(options?: { apollo?: ApolloConfigFromAS2Or3; engine?: GraphQLServiceEngineConfig; }) => Promise<{ schema: GraphQLSchema; executor: <TContext>(requestContext: GraphQLRequestContextExecutionDidStart<...>) => Promise<...>; }>' is not assignable to type '(options: { apollo?: ApolloConfig; engine?: GraphQLServiceEngineConfig; }) => Promise<GraphQLServiceConfig>'.
    Type 'Promise<{ schema: GraphQLSchema; executor: <TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => Promise<...>; }>' is not assignable to type 'Promise<GraphQLServiceConfig>'.
      Type '{ schema: GraphQLSchema; executor: <TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => Promise<GraphQLExecutionResult>; }' is not assignable to type 'GraphQLServiceConfig'.
        Types of property 'executor' are incompatible.
          Type '<TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => Promise<GraphQLExecutionResult>' is not assignable to type 'GraphQLExecutor<Record<string, any>>'.
            Types of parameters 'requestContext' and 'requestContext' are incompatible.
              Type 'import("/Users/rafaeldamataneri/Downloads/nestjs-graphql-best-practice-87843f95eebc7900a21997fbb9a45944e567fe03/node_modules/apollo-server-core/node_modules/apollo-server-types/dist/index").GraphQLRequestContextExecutionDidStart<Record<string, any>>' is not assignable to type 'import("/Users/rafaeldamataneri/Downloads/nestjs-graphql-best-practice-87843f95eebc7900a21997fbb9a45944e567fe03/node_modules/@nestjs/graphql/node_modules/apollo-server-types/dist/index").GraphQLRequestContextExecutionDidStart<Record<string, any>>'.
                Property 'overallCachePolicy' is missing in type 'GraphQLRequestContext<Record<string, any>> & Required<Pick<GraphQLRequestContext<Record<string, any>>, "metrics" | "source" | "queryHash">> & Required<...>' but required in type 'GraphQLRequestContext<Record<string, any>>'.

61     load(options?: {
       ~~~~

  node_modules/@nestjs/graphql/node_modules/apollo-server-types/dist/index.d.ts:86:14
    86     readonly overallCachePolicy: CachePolicy;
                    ~~~~~~~~~~~~~~~~~~
    'overallCachePolicy' is declared here.

node_modules/@nestjs/graphql/node_modules/@apollo/gateway/dist/index.d.ts:90:5 - error TS2416: Property 'executor' in type 'ApolloGateway' is not assignable to the same property in base type 'GraphQLService'.
  Type '<TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => Promise<GraphQLExecutionResult>' is not assignable to type '<TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => ValueOrPromise<GraphQLExecutionResult>'.
    Types of parameters 'requestContext' and 'requestContext' are incompatible.
      Type 'import("/Users/rafaeldamataneri/Downloads/nestjs-graphql-best-practice-87843f95eebc7900a21997fbb9a45944e567fe03/node_modules/apollo-server-core/node_modules/apollo-server-types/dist/index").GraphQLRequestContextExecutionDidStart<TContext>' is not assignable to type 'import("/Users/rafaeldamataneri/Downloads/nestjs-graphql-best-practice-87843f95eebc7900a21997fbb9a45944e567fe03/node_modules/@nestjs/graphql/node_modules/apollo-server-types/dist/index").GraphQLRequestContextExecutionDidStart<TContext>'.
        Property 'overallCachePolicy' is missing in type 'GraphQLRequestContext<TContext> & Required<Pick<GraphQLRequestContext<TContext>, "metrics" | "source" | "queryHash">> & Required<...>' but required in type 'GraphQLRequestContext<TContext>'.

90     executor: <TContext>(requestContext: GraphQLRequestContextExecutionDidStart<TContext>) => Promise<GraphQLExecutionResult>;
       ~~~~~~~~

  node_modules/@nestjs/graphql/node_modules/apollo-server-types/dist/index.d.ts:86:14
    86     readonly overallCachePolicy: CachePolicy;
                    ~~~~~~~~~~~~~~~~~~
    'overallCachePolicy' is declared here.

node_modules/@nestjs/graphql/node_modules/apollo-server-types/dist/index.d.ts:140:9 - error TS2717: Subsequent property declarations must have the same type.  Property 'cacheControl' must be of type '{ setCacheHint: (hint: CacheHint) => void; cacheHint: CacheHint; }', but here has type 'ResolveInfoCacheControl'.

140         cacheControl: ResolveInfoCacheControl;
            ~~~~~~~~~~~~

  node_modules/apollo-cache-control/dist/index.d.ts:24:9
    24         cacheControl: {
               ~~~~~~~~~~~~
    'cacheControl' was also declared here.

src/auth/jwt/index.ts:6:31 - error TS2307: Cannot find module '../../generator/graphql.schema' or its corresponding type declarations.

6 import { LoginResponse } from '../../generator/graphql.schema'
                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/config/graphql/index.ts:92:5 - error TS2322: Type 'false' is not assignable to type 'ValidatorBehavior'.

92  			requireResolversForResolveType: false
    			~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  node_modules/@graphql-tools/utils/Interfaces.d.ts:54:5
    54     requireResolversForResolveType?: ValidatorBehavior;
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The expected type comes from property 'requireResolversForResolveType' which is declared here on type 'IResolverValidationOptions'

src/config/graphql/plugins/complexity.plugin.ts:11:8 - error TS2307: Cannot find module 'graphql-query-complexity' or its corresponding type declarations.

11 } from 'graphql-query-complexity'
          ~~~~~~~~~~~~~~~~~~~~~~~~~~

src/config/graphql/scalars/upload.scalar.ts:2:43 - error TS2307: Cannot find module 'graphql-upload' or its corresponding type declarations.

2 import { GraphQLUpload, FileUpload } from 'graphql-upload'
                                            ~~~~~~~~~~~~~~~~

src/config/graphql/schemaDirectives/validate.ts:13:32 - error TS2307: Cannot find module '../../../generator/graphql.schema' or its corresponding type declarations.

13 import * as GraphqlSchema from '../../../generator/graphql.schema'
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/entities/message.entity.ts:5:22 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

5 import { User } from '../generator/graphql.schema'
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/entities/node.entity.ts:10:8 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

10 } from '../generator/graphql.schema'
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/entities/user.entity.ts:11:8 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

11 } from '../generator/graphql.schema'
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/auth.resolver.ts:5:39 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

5 import { LoginResponse, Gender } from '../generator/graphql.schema'
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/city.resolver.ts:6:33 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateCityInput } from '../generator/graphql.schema'
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/company.resolver.ts:6:36 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateCompanyInput } from '../generator/graphql.schema'
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/department.resolver.ts:6:39 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateDepartmentInput } from '../generator/graphql.schema'
                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/email.resolver.ts:6:34 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateEmailInput } from '../generator/graphql.schema'
                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/form.resolver.ts:6:33 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateFormInput } from '../generator/graphql.schema'
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/message.resolver.ts:13:36 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

13 import { CreateMessageInput } from '../generator/graphql.schema'
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/node.resolver.ts:12:8 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

12 } from '../generator/graphql.schema'
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/permission.resolver.ts:6:33 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { PermissionInput } from '../generator/graphql.schema'
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/position.resolver.ts:6:37 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreatePositionInput } from '../generator/graphql.schema'
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/role.resolver.ts:6:33 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateRoleInput } from '../generator/graphql.schema'
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/room.resolver.ts:6:33 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateRoomInput } from '../generator/graphql.schema'
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/store.resolver.ts:6:34 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateStoreInput } from '../generator/graphql.schema'
                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/tree.resolver.ts:5:34 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

5 import { Tree as TreeType } from '../generator/graphql.schema'
                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/user.resolver.ts:35:8 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

35 } from '../generator/graphql.schema'
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/resolvers/userRole.resolver.ts:6:37 - error TS2307: Cannot find module '../generator/graphql.schema' or its corresponding type declarations.

6 import { CreateUserRoleInput } from '../generator/graphql.schema'
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/shared/mail/index.ts:151:47 - error TS2345: Argument of type 'SentMessageInfo' is not assignable to parameter of type 'string'.

151  			console.log('Message sent: ' + JSON.parse(info))
     			                                          ~~~~


Found 28 errors.

npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! [email protected] build: `tsc -p tsconfig.build.json`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

Is this a typo?

See this path:
src/common/wiston/

Wouldn't it be the word winston instead of the word wiston?

cloning on windows

what's the equivalent of "touch .env" on windows ? or should I just create .env file right?

documentation & projects

Greetings team, firstly, i am some what new to NesJs framework. I explored the best practice code but trying to find if there is a deep-dive documentation of the current example/models that are provided in the project.

Secondly, can someone share some of the open source projects that were developed using the best-practice. Appreciate your help. Thank you

can not build nest app

I couldn't build nest app on the cicd branch. I think you just need to update a few things.

  1. bcrypt version upgrade
  2. update some files

src/config/graphql/index.ts

// before
requireResolversForResolveType: false

// after
requireResolversForResolveType: 'error' or 'warn'

src/shared/mail/index.ts

// before
console.log('Message sent: ' + JSON.parse(info))

// after
console.log('Message sent: ' + JSON.stringify(info))

Dockerfile

# before
CMD "npm run start:prod" 
# after
CMD ["npm", "run", "start:prod"]

docker-compose.yml

# before
    command: npm run start:prod

# after
    command: sh -c "npm rebuild && npm run start:dev"

An in-range update of cloudinary is breaking the build 🚨

The dependency cloudinary was updated from 1.16.0 to 1.17.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

cloudinary is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: deploy: Your tests failed on CircleCI (Details).

Release Notes for Version 1.17.0
  • Update ejs dependency in photo album
  • Add Type Script declaration file
Commits

The new version differs by 3 commits.

  • f8a0b7f Version 1.17.0
  • 4dd26e1 update ejs dependency in photo album
  • 83b3344 Add Type Script declaration file

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of nestjs is breaking the build 🚨

There have been updates to the nestjs monorepo:

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

This monorepo update includes releases of one or more dependencies which all belong to the nestjs group definition.

nestjs is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: deploy: Your tests failed on CircleCI (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.