Git Product home page Git Product logo

tsukhu / nxplorerjs-microservice-starter Goto Github PK

View Code? Open in Web Editor NEW
233.0 16.0 61.0 9.07 MB

Node JS , Typescript , Express based reactive microservice starter project for REST and GraphQL APIs

Home Page: https://nxplorer.herokuapp.com/

License: MIT License

JavaScript 1.24% HTML 0.83% TypeScript 96.95% Shell 0.34% Batchfile 0.04% Smarty 0.37% Dockerfile 0.24%
nodejs typescript express docker microservices reactive-extensions prometheus swagger coverage jest

nxplorerjs-microservice-starter's Introduction

nxplorerjs-microservice-starter

Greenkeeper badge FOSSA Status

Build Status tested with jest GitHub version Dependency Status DeepScan grade


nxplorer microservice starter

Cloud Native Node JS Express Reactive Microservice Starter Template (REST/GraphQL) This project provides complete Node JS / Typescript based microservices template with all that will be needed features for production deployment , monitoring , debugging , logging , security , CI/CD. Reactive extensions based samples are added as well to demonstrate how this can be used for building a microservice API edge-service , a backend for frontend or use it as a base for building any kind of microservice.

architecture vision

Table of contents

Design Principles

  • Use best of breed modules to create a production ready microservice framework
  • Based on the 12-factor app principles
  • No custom code or wrappers so that any developer can modify/replace any of the modules or implementation
  • Design patterns for implementation that can be used as a reference
  • Modular , replacable and plug and play code
  • Provide a starter for both the business APIs and microservice platform development.
  • DevOps ready with code quality, unit & integration tests, deployment automated.

Demo

  • nXplorer demo server is deployed on Heroku and can be accessed here

Mono Repo version

  • If you are interested in looking at the mono repo version of the project, it is currently being worked on and can be accessed here.
  • Since either of the versions are perfectly good solutions, we will be maintaining and enhancing both.

Features

  • Node JS, Express, Typescript , Dependency Injection base
  • Backpack (webpack) based - build , development , packaging
  • Swagger Enabled - Express swagger middleware / Swagger UI integration
  • GraphQL based on Apollo Server 2.0 with JWT security , data loader and REST data source samples
  • Support for GraphQL SDL via graphql-import
  • GraphQL mock resolvers (optional) during development - graphql-tools
  • GraphQL based client wrapper APIs - graphql-request
  • REST APIs - using Inversify Controller
  • Externalized Configuration - DotEnv (Settings, Env specific API URLs)
  • Tests - Jest , SuperTest , GraphQL Tester. Infrastructure for automated unit and integration tests
  • Code Coverage - Istanbul
  • Code Quality - tslint
  • Container support - Docker , Kubernetes Clusters
  • Helm Chart based deployment support
  • Prometheus integration
  • API Response Logging , Express Server Logging , UUID propogation - Pino
  • Reactive Extensions support - RxJS6
  • CORS, JSONObject Limit , Helmet , CSRF - Express Security
  • IOC / Dependency Injection / Express Annotation based APIs - Inversify
  • Documentation - TypeDocs
  • API Exception Handling Utilities
  • Standard HTTP Codes for cleaner code
  • Sample APIs, Patterns for reference
  • Sonar Qube integration
  • Hystrix Circuit Breaker Support (Using Brakes)
  • JWT Based API Security - jsonwebtoken, express-jwt
  • Now using the super fast pino logger for all logging needs
  • Additional performance time logging built in

See REST API /examples/{id}

{
  "pid": 3984,
  "hostname": "LP-507B9DA1D355",
  "level": 30,
  "time": 1515813665734,
  "0": {
    "socket": 5.656709999995655,
    "lookup": 186.8375229999947,
    "connect": 389.5646870000055,
    "response": 594.8022639999981,
    "end": 599.1270230000082
  },
  "v": 1
}

REST APIs

  • The API Spec can be downloaded using the following URLS
http://localhost:3000/api-docs/Api.yaml
http://localhost:3000/api-docs/
  • examples - Basic examples with a search by ID example from the jsonplaceholder API (/examples/:id)
  • shop - Example of how to use Reactive Extensions for API orchestration (FlatMap) (/shop/priceByOptionId/:id)
  • starwars - Example of how to use Reactive Extensions for API orchestration (ForkJoin) (/starwars/people/:id)
  • hystrix - Example of how to use the circuit break pattern for APIs (/hystrix)
  • scraper - Example of how to use scrape-it to scrape data from a website (/scraper)
  • Use swagger UI for the complete list of sample APIs
  • metrics - Prometheus based metrics added for all APIs (/metrics)
  • API Partial JSON response support
    curl http://localhost:3000/api/v1/starwars/people/1
  • Response
    {
        name: "Luke Skywalker",
        height: "172",
        mass: "77",
        hair_color: "blond",
        skin_color: "fair",
        eye_color: "blue",
        birth_year: "19BBY",
        gender: "male",
        homeworld: {
        name: "Tatooine",
        rotation_period: "23",
        orbital_period: "304",
        diameter: "10465",
        climate: "arid",
        gravity: "1 standard",
        terrain: "desert",
        surface_water: "1",
        population: "200000",
        residents: [
        "http://swapi.co/api/people/1/",
        "http://swapi.co/api/people/2/",
        "http://swapi.co/api/people/4/",
        "http://swapi.co/api/people/6/",
        "http://swapi.co/api/people/7/",
        "http://swapi.co/api/people/8/",
        "http://swapi.co/api/people/9/",
        "http://swapi.co/api/people/11/",
        "http://swapi.co/api/people/43/",
        "http://swapi.co/api/people/62/"
        ],
        films: [
        "http://swapi.co/api/films/5/",
        "http://swapi.co/api/films/4/",
        "http://swapi.co/api/films/6/",
        "http://swapi.co/api/films/3/",
        "http://swapi.co/api/films/1/"
        ],
        created: "2014-12-09T13:50:49.641000Z",
        edited: "2014-12-21T20:48:04.175778Z",
        url: "http://swapi.co/api/planets/1/"
        },
        films: [
        "http://swapi.co/api/films/2/",
        "http://swapi.co/api/films/6/",
        "http://swapi.co/api/films/3/",
        "http://swapi.co/api/films/1/",
        "http://swapi.co/api/films/7/"
        ],
        species: [
        "http://swapi.co/api/species/1/"
        ],
        vehicles: [
        "http://swapi.co/api/vehicles/14/",
        "http://swapi.co/api/vehicles/30/"
        ],
        starships: [
        "http://swapi.co/api/starships/12/",
        "http://swapi.co/api/starships/22/"
        ],
        created: "2014-12-09T13:50:51.644000Z",
        edited: "2014-12-20T21:17:56.891000Z",
        url: "http://swapi.co/api/people/1/"
        }

    curl http://localhost:3000/api/v1/starwars/people/1?data(name,gender,homeworld(gravity,population))
  • Response
    {
      "data": {
        "name": "Luke Skywalker",
        "gender": "male",
        "homeworld": {
          "gravity": "1 standard",
          "population": "200000"
        }
      }
    }

GraphQL

  • GraphQL support has been added based on the apollo framework and a reference implementation (including the starwars apis from swapi.co) GraphQL

  • Access the graphql playground from http://localhost:3000/playground

  • Access the graphiql tool from http://localhost:3000/graphiql

  • GraphQL API tracing (configurable)

  • Dataloader for caching and batching

  • Multiple samples added Dataloader Enabled

    • RxJS API call - peopleWithPlanets(id : )
    • Starwars APIs - people(id: ) , planet(id: ) , starship(id: ) - peopleList(keys: [number])
  • List of Queries (see schema details for complete list)

    • quoteOfTheDay: String

    • random: Float

    • examples: [ExampleType] <-- JWT Authentication. Please read the JWT Security section for details

    • example(id: Int): ExampleType

    • blog(id: Int) (Paginated query)

    • rollThreeDice: [Int]

    • peopleWithPlanet(id: Int): PeopleWithPlanetType (Uses RxJS to combine results from 2 APIs)

    • peopleDS(id: Int): PersonType (Based on REST DataSource)

    • people(id: Int): PersonType (Based on data loader)

    • planet(id: Int): PlanetType

    • starship(id: Int): StarshipType

    • peopleList(keys: [Int]): [PersonType]

    • movie: MovieType

    • Sample Query Execution

Sample Query

  • Mutations

    • addExample(name: String!): ExampleType

    • addComment(comment: CommentInput!): Comment

    • login(email: String!,password: String!): UserType

    • Sample Mutation Execution

    Sample Mutation

    • Subscriptions

      • exampleAdded (Will check whenever a new element is added via a mutation)
      • commentAdded (Will check whenever a new comment is added via a mutation)
    • Sample Subscription Execution

    Sample Subscription step 1 Sample Subscription step 2

  • VSCode Debug Launch Configuration (Preconfigured Debug Launcher added)

  • Node Dashboard view added for telemetry during development process

  • Added NodeJS cluster mode (load balanced workers)

    • When you start the server it adds workers based on the number of CPUs
Master cluster setting up 4 workers...
Worker 2828 is online
Worker 2816 is online
Worker 13956 is online
Worker 3756 is online
up and running in development @: LP-507B9DA1D355 on port: 3000
up and running in development @: LP-507B9DA1D355 on port: 3000
up and running in development @: LP-507B9DA1D355 on port: 3000
up and running in development @: LP-507B9DA1D355 on port: 3000

Graphql client apis

  • While we build GraphQL based servers, there might a need to get data from other downstream GraphQL based API servers.

  • As an example the graphqlcool/graphql-request module has been used to demonstrate this, using graphqlcool demo graphQL api https://api.graph.cool/simple/v1/movies

  • API spec

query {
  movie {
    releaseDate
    slug
    actors {
      name
    }
  }
}
  • API output
{
  "data": {
    "movie": {
      "releaseDate": "2010-08-28T20:00:00.000Z",
      "slug": "inception",
      "actors": [
        {
          "name": "Leonardo DiCaprio"
        },
        {
          "name": "Ellen Page"
        },
        {
          "name": "Tom Hardy"
        },
        {
          "name": "Joseph Gordon-Levitt"
        },
        {
          "name": "Marion Cotillard"
        }
      ]
    }
  }
}

Pre-requisites

Install npm and nodeJS

npm version >= 3.x node version >= 6.x

Install It

npm install

Setup external environment

  • Edit the .{PROFILE}.env file (where the PROFILE could be test, development , production)
Variable Description Default Value
PORT Server Port 3000
LOG_LEVEL Log Level (info,debug,error) info
SESSION_SECRET String used for signing cookies
API_TIME_OUT Default API Timeout (in milli secs) 10000
TEST_TIME_OUT Default Test Timeout (in milli secs) 10000
JWT_AUTH Enable/Disable JWT based API security true
RSA_PRIVATE_KEY_FILE Sample RSA private key path
RSA_PUBLIC_KEY_FILE Sample RSA public key path
TOKEN_EXPIRY_TIME JWT Token expiry (Generated from /login ) 1 hour (1h)
STREAM_HYSTRIX Enable/Disable Hystrix streaming server (true or false) false
CORS Enable/Disable CORS on the server (true or false). Will work only in production build false
CLUSTER_MODE Enable/Disable Node Clustering on the server (true or false) false
SWAGGER_API_DOCS_ROOT Serves your Swagger API file(s) so they can be used with front-end tools like like Swagger UI, PostMan. /api-docs/
GRAPHQL_SUBSCRIPTIONS Enable/Disable GraphQL subscriptions (true or false) true
GRAPHQL_PLAYGROUND Enable/Disable GraphQL Playground (true or false) true
GRAPHQL_TRACING Enable/Disable GraphQL tracing (true or false) true
GRAPHQL_MOCK Enable/Disable GraphQL Mock for unimplemented Interfaces(true or false) true
API_MOCK Enable/Disable REST API Mock unimplemented routes(true or false) true

Run It

Run in development mode

npm run dev

Run in production mode

npm run compile
npm start

Run in VS Code debug mode

npm run compile
Press F5

Runs tests with code coverage

Run Unit Tests

  • Unit Tests are located in the same directory as the module or class being tested
  • All Unit tests need to have an extension *.spec.ts
npm run test

Run Integration Tests

  • Integration tests are located in the same directory as the module or class being tested
  • All Unit tests need to have an extension *.itest.ts
  • First built the integration test . This will setup the integration test environment in the build
npm run itest:build
  • Run the node server and run the integration tests against it
  • This waits for the server to start , runs the test and then terminate all processes on completion
npm itest:run

Try It

  • Point you're browser to http://localhost:3000.
  • Invoke the example REST endpoints directly or via swagger http://localhost:3000/swagger
  • Invoke the prometheus metrics using the endpoint curl http://localhost:3000/metrics
  • Access in-browser IDE for graphQL http://localhost:3000/graphiql
  • Access the graphQL playground app http://localhost:3000/playground/
  • Access the health check api curl http://localhost:3000/healthcheck

File Structure

├───public                      * Landing page for nxplorer server
├───screenshots                 * Sample screenshots
└───server                      * Server configuration and apis
|   ├───api                     * REST APIs defined on the server
|   │   ├───controllers         * API controllers using RxJS, Inversify
|   │   │   ├───examples        * Examples controller
|   │   │   ├───hystrix-demo    * Hystrix demo controller
|   │   │   ├───security        * JWT login API controller
|   │   │   ├───shop            * Sample shop APIs with products, prices , inventory
|   │   │   └───starwars        * SWAPI controller
|   │   ├───interfaces          * Service interfaces
|   │   ├───models              * API data models
|   │   └───services            * Service API implementations
|   ├───common                  * Server setup and configuration
|   │   ├───config              * Server configuration
|   │   ├───constants           * Inversify and other common identifier constants
|   │   ├───interfaces          * Common service interfaces  
|   │   ├───middleware          * Custom middleware
|   │   ├───models              * Common API data models
|   │   ├───services            * Common service implementations
|   │   └───swagger             * Swagger API specification (YAML)
|   |   └───env.ts              * DotENV configuration
|   |   └───server.ts           * Express Server setup and configuration
|   └───graphql                 * GraphQL APIs defined on the server
|   |   ├───dataloader          * GraphQL data loader functions
|   |   ├───errors              * GraphQL error handler
|   |   ├───schema              * GraphQL Schema Types
|   |   ├───mocks               * GraphQL Mock Resolvers
|   |   └───resolvers           * GraphQL resolvers
|   |   └───setupSchema.ts      * GraphQL schema configuration
|   └───index.ts                * Main Server entry point
├───helm                        * Helm chart deployment scripts
│   ├───charts                  *
│   └───templates               *
└───backpack.config.js          * Backpack configuration
└───package.json                * npm dependencies
└───build.js                    * ShellJS utility build scripts
└───deploy-k8s.sh               * Kubernetes deployment script
└───Dockerfile                  * Docker build file
└───docker-compose.yml          * Docker build and run file
└───build-docker.bat|sh         * Docker build file
└───itest.config.json           * Jest integration test configuration
└───unit.config.json            * Jest unit test configuration
└───tsconfig.json               * typescript config
└───tslint.json                 * tslint config
└───.{profile}.env              * externalized environment files based on profiles (development,test,production)
└───sonar-properties.json       * sonarscanner|SonarQube configuration
└───jwtRS256.key|.key.pub       * Sample JWT private and public keys used by the server

Log with UUID

  • A sample implementation of UUID propogation has been added. This depends on a cookie 'UUID' to be set in the request object. The LogService will add the uuid to all logs it generates.

  • For example if 'UUID' is set to xxxx-dddd-ssss-wwww-ssss then calling the /shop/products API will produce

{
  "pid": 13492,
  "hostname": "LP-507B9DA1D355",
  "level": 30,
  "time": 1515859200496,
  "uuid": "xxxx-dddd-ssss-wwww-ssss",
  "fullUrl": "http://localhost:3000/api/v1/shop/products",
  "statusCode": 200,
  "responseTime": "1.187",
  "v": 1
}

GraphQL Mocks

  • As part of TDD we may need to mock the graphql responses till we are able to implement the resolvers
  • The infrastructure is setup to add mocks only for the resolvers that are currently not implemented. Hence once the implementation is available the actual resolvers take over. Also incase there is a resolvers execution failure , then this will fall back on the mocked response. This feature must be used only during development, hence a check has been added to disable this feature in 'production' builds.
  • To support that
    • Set the environemnt variable GRAPHQL_MOCK to true
    • Define the mock resolvers in the mocks/index.ts file
  • As a sample there are queries added examplesMock, peopleMock
  • Sample output is given below

Sample Mock output

RestAPI Mocks

  • Enable API_MOCK=true in the .<Profile>.env file . Note: For security this will not work in production mode even if API_MOCK is set to true
  • The swagger-express-middleware module provides out of the box support for automated mock generation
  • Steps
    • Define the API swagger specification in Api.yaml file
    • If there is no implementation available in the express routes, the middleware creates mocks for those apis
  • Access the swagger ui provided by nXplorer (/swagger) and refer to the apis tagged Mock API and with prefix /mock.The sample has two main entities - cars and drivers. You can search , perform CRUD operations as well as upload and download images.

Build Docker image

./build-docker.sh

k8s deployment

  • Helm chart based deployment
./deploy-k8s.sh
  • A sample output
release "nxplorerjs-microservice" deleted
NAME:   nxplorerjs-microservice
LAST DEPLOYED: Fri Sep 22 22:10:58 2017
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME                          DATA  AGE
nxplorerjs-microservice-starter  5     1s

==> v1/Service
NAME                          CLUSTER-IP  EXTERNAL-IP  PORT(S)       AGE
nxplorerjs-microservice-starter  10.0.0.196  <nodes>      80:30316/TCP  1s

==> v1beta1/Deployment
NAME                          DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
nxplorerjs-microservice-starter  1        1        1           0          1s


NOTES:
1. Get the application URL by running these commands:
  export NODE_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services nxplorerjs-microservice-nxplorerjs-microservice-starter)
  export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}")
  echo http://$NODE_IP:$NODE_PORT

Express Microservice is deployed at  http://192.168.99.100:30316/

Using node dashboard view (Development Only)

  • To use the node dashboard view
npm run compile
npm run dash
  • This will start up the application with the node dashboard attached providing details of the memory , cpu and logs

Security

  • JWT based security has been implemented using sample JWT private and public keys
  • Both the REST APIs and GraphQL have sample implementations added.
  • The authentication middleware code can be viewed here

JWT Security GraphQL

  • A demo implementation of JWT based security has enabled for one query "examples". Given below are the steps to test it out.
  • If the JWT Security is enabled (environment variable JWT_AUTH is true) , we need to use the login mutation API to get the sample JWT Token (currently set at an expiry of 1 hour)
  • Step 1 - use the login mutation to get the jwt token for a valid user. For demo purposes any email and password string can be provided. The role is optional. If not provided is defaults to the role 'USER'
mutation {
  login(email: "[email protected]",
  password:"admin",role:"ADMIN") {
    id
    role
    email
    jwt
  }
}

Login Mutation

  • Step 2 - Verify if "examples" works without Authentication. It will give an error (Note: error handling needs to be improved but here we are only looking at the concept)

UnSecure Query

  • Step 3 - Set the Authorization Header with the Bearer Token before executiong the "examples" query.
{
  "Authorization": "Bearer xxx.xxx.xxx"
}

Secure Query

JWT Security REST APIs

  • If the JWT Security is enabled , we need to use the /login API to get the sample JWT Token (currently set at an expiry of 1 hour)
curl -X POST "http://localhost:3000/api/v1/login" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"email\": \"[email protected]\", \"password\": \"pwd\", \"role\": \"admin\"}"
  • The sample output . Note the JWT token is the value of the property idToken
{
  "idToken":
    "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYWRtaW4iLCJpYXQiOjE1MTQ4NjQ3ODMsImV4cCI6MTUxNDg2ODM4Mywic3ViIjoidGVzdEBnbWFpbC5jb20ifQ.hAEa6AL1Kxxxxxxx",
  "expiresIn": "1h"
}
  • The api/v1/examples APIs a valid JWT token must be passed in all the queries in the ‘Authorization’ header. Note this is done just as an example. You can easily enable addition endpoints similarly.
    • Please see the examples controller
      @controller('/examples', authMiddleware(<User>{ role: 'admin'}))
    • The function authMiddleware takes care of validating the JWT token passed in the header.
    • This can be extended to support role based access as well and the provision for that is added.
    • Note: as a demo sample public and private keys have been provided. Ideally these are maintained externally in a real world scenario JWKS (JSON Web Key Set) endpoints
  • The following syntax must be used in the ‘Authorization’ header : Bearer xxxxxx.yyyyyyy.zzzzzz
  • Testing using the [swagger ui]/(http://localhost:3000/swagger)
    • Click on the ‘Authorize’ button and set the Bearer token as mentioned above
    • Now all the /examples related APIs will work
RBAC Test
  • If the JWT Security is enabled and we use the /login API to get the sample JWT Token but with role as "guest" instead of "admin"
curl -X POST "http://localhost:3000/api/v1/login" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"email\": \"[email protected]\", \"password\": \"pwd\", \"role\": \"guest\"}"
  • On setting the Bearer token in the ‘Authorization’ header for subsequent calls to any of the /examples APIs will result in a role based authorization failure

RBAC

GraphQL Directives

  • This is work in progress.
  • Currently added a sample for using the @date directive (as explained in the graphql-tools documentation)
  • Query ({ today(format: "mmm-dd-yy") }) - Here the format is based on the @date scheme Directive , that takes the output of the resolver and formats the date before sending it out to the client
  • Query ( { examplesWithAuth { id name } } - This is a variation to the examples query mentioned in the section JWT GraphQL APIs. The difference here is that we use a @auth directive to handle the authentication based on the role instead of hardcoding the implementation in the resolver. This is a much cleaner and decoupled from the resolver.
  • The query schema examplesWithAuth: [ExampleType] @auth(requires: ADMIN) uses the @auth directive which will intercept the call check for an authenticated user with appropriate role. (Note: You need to run the login mutation before and then set the HTTP Header with the Authorization token )

schema directive

CSRF Security

  • CSRF Security has been enabled in the production mode
  • All POST APIs will require to read the cookie 'XSRF-TOKEN' set in the browser and then pass it in the response head with either of the following keys
    • req.headers['csrf-token'] - the CSRF-Token HTTP request header.
    • req.headers['xsrf-token'] - the XSRF-Token HTTP request header.
    • req.headers['x-csrf-token'] - the X-CSRF-Token HTTP request header.
    • req.headers['x-xsrf-token'] - the X-XSRF-Token HTTP request header.

Compression

  • Compression is enabled by default on the server and is based on the compression module
  • The configuration details are present in the compression.ts file
  • In case there is a need to get responses without compression pass the key x-no-compression in the request header

Hystrix Circuit Breaker Support

  • Circuit breaker support has been added to the project and uses the hystrix compliant module brakes
  • Streaming support has been disabled by default for Hystrix.
  • Enable it by setting the STREAM_HYSTRIX property to "STREAM_HYSTRIX=true" in the .env file
  • For convienence a docker version of the Hystrix server has been provided and setup in the docker-compose.yml file
Steps to execute on Docker
npm run compile
docker-compose build
docker-compose up
  • On Docker set up the port forwarding for 3000 and 8080

port forwarding

  • Access the Hystrix dashboard at localhost:8080/hystrix and set the stream location to localhost:3001/hystrix.stream
  • Execute the samples under /api/v1/hystrix and view the hystrix stream results on the dashboard

hystrix stream

integrate with SonarQube (for continous code quality)

Assuming you have SonarQube 5.5.6 (LTS) installed

npm run test
  • The test results collected in the results folder in the sonar compatible format
  • Push results to SonarQube
npm run sonar-scanner

Modify the package.json to set the appropriate version of the sonarQube

jestSonar": {
    "reportPath": "reports",
    "reportFile": "test-reporter.xml",
    "indent": 4,
    "sonar56x": true
}

Note: for Sonar 6.x turn sonar56x to “false” and that will generate the test report that is using the sonar 6 schema.

Load Testing

  • loadtest is an excellent tool for loadtesting
  • Steps to use it
  • Install it as a global npm module
npm install -g loadtest
  • Start the nxplorerjs-microservice
npm run start
  • Run the load test against the production build. Given below is one example
loadtest http://localhost:3000/api/v1/examples/1 -t 20 -c 20

Deploying to Heroku

heroku create
git push heroku master
heroku open

or

Deploy to Heroku

Future RoadMap

  • Add additional health checks

FAQ

  • tslint error appearing in VSCode IDE for node_modules
// Configure glob patterns of file paths to exclude from linting
"tslint.exclude": "**/node_modules/**/*.ts"

Disclaimer

  • This is not an official HCL ERS product.

Thank you

  • Special thanks to the JetBrains team for supporting the open source community and this project.
  • This is simply the best IDE for developers.

JetBrains image

License

MIT

FOSSA Status

nxplorerjs-microservice-starter's People

Contributors

fossabot avatar greenkeeper[bot] avatar tsukhu 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

nxplorerjs-microservice-starter's Issues

An in-range update of express-partial-response is breaking the build 🚨

The dependency express-partial-response was updated from 1.0.0 to 1.0.2.

🚨 View failing branch.

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

express-partial-response 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 5 commits.

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 @types/jest is breaking the build 🚨

The devDependency @types/jest was updated from 23.3.9 to 23.3.10.

🚨 View failing branch.

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

@types/jest 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (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 🌴

npm package installation fails in ubuntu

  • I'm submitting a ...
    [ * ] bug report
    [ ] feature request
    [ ] question about the decisions made in the repository

  • Do you want to request a feature or report a bug?
    bug

  • What is the current behavior?

npm install command fails to install all the dependencies .

2656 silly saveTree +-- [email protected]
2656 silly saveTree `-- [email protected]
2657 verbose stack ZlibError: zlib: unexpected end of file
2657 verbose stack at Zlib.(anonymous function).onerror (/usr/lib/node_modules/npm/node_modules/minizlib/index.js:131:21)
2657 verbose stack at Unzip.write (/usr/lib/node_modules/npm/node_modules/minizlib/index.js:255:31)
2657 verbose stack at Unzip.flush (/usr/lib/node_modules/npm/node_modules/minizlib/index.js:222:10)
2657 verbose stack at Unzip.end (/usr/lib/node_modules/npm/node_modules/minizlib/index.js:229:10)
2657 verbose stack at Object.end (/usr/lib/node_modules/npm/node_modules/tar/lib/parse.js:415:21)
2657 verbose stack at PassThrough.onend (_stream_readable.js:595:10)
2657 verbose stack at Object.onceWrapper (events.js:313:30)
2657 verbose stack at emitNone (events.js:111:20)
2657 verbose stack at PassThrough.emit (events.js:208:7)
2657 verbose stack at endReadableNT (_stream_readable.js:1064:12)
2657 verbose stack at _combinedTickCallback (internal/process/next_tick.js:139:11)
2657 verbose stack at process._tickCallback (internal/process/next_tick.js:181:9)
2658 verbose cwd /home/manikandan/mani/nxplorerjs-microservice-starter
2659 verbose Linux 4.15.0-38-generic
2660 verbose argv "/usr/bin/node" "/usr/bin/npm" "install"
2661 verbose node v8.12.0
2662 verbose npm v6.4.1
2663 error code Z_BUF_ERROR
2664 error errno -5
2665 error zlib: unexpected end of file
2666 verbose exit [ -5, true ]

  • If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

Just clone the repo in ubuntu env and try to install the dep.

  • What is the expected behavior?

After cloning the repo , npm install should install all the pkgs and it should allow us to run the app.

  • Please tell us about your environment:
  • nxplorer version: 1.5.6
  • other environment details
    -node -8.12.0
    npm -6.4.1
    ubuntu 16
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. npm , github, stackoverflow etc)

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

The devDependency @types/lodash was updated from 4.14.121 to 4.14.122.

🚨 View failing branch.

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

@types/lodash 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (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 🌴

An in-range update of wait-port is breaking the build 🚨

The devDependency wait-port was updated from 0.2.3 to 0.2.4.

🚨 View failing branch.

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

wait-port 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 4 commits.

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 cross-env is breaking the build 🚨

The dependency cross-env was updated from 5.2.0 to 5.2.1.

🚨 View failing branch.

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

cross-env 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for v5.2.1

5.2.1 (2019-08-31)

Bug Fixes

Commits

The new version differs by 6 commits.

  • a75fd0e fix: remove is-windows dependency (#207)
  • 4889923 docs: add note for windows issues
  • 2b36bb3 docs: add Jason-Cooke as a contributor (#201)
  • 41ab3b0 docs: Fix typo (#200)
  • 553705c docs(README): list @naholyr/cross-env in Other Solutions section (#189)
  • 5d0f19f docs: remove codesponsor (#186)

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 bluebird is breaking the build 🚨

The dependency bluebird was updated from 3.5.3 to 3.5.4.

🚨 View failing branch.

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

bluebird 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v3.5.4
  • Proper version check supporting VSCode(#1576)
Commits

The new version differs by 6 commits.

  • e0222e3 Release v3.5.4
  • 4b9fa33 missing --expose-gc flag (#1586)
  • 63b15da docs: improve and compare Promise.each and Promise.mapSeries (#1565)
  • 9dcefe2 .md syntax fix for coming-from-other-languages.md (#1584)
  • b97c0d2 added proper version check supporting VSCode (#1576)
  • 499cf8e Update jsdelivr url in docs (#1571)

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 🌴

Explore moving to graphql yoga for all the graphql setup needs

There is a lot of setup code added for getting all the graphql pieces to work. Graphql yoga helps in wrapping all of that in a module. The code will be cleaner if we integrate with that. However before that we need to see if it is flexible enough for fitting it into the current microservice setup with all the other custom middleware we require for making the server production ready,

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

The devDependency typedoc was updated from 0.15.1 to 0.15.2.

🚨 View failing branch.

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

typedoc 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for TypeScript 3.7 Recovery

Fixed 🐛

  • Fix broken JSON output when predicate types reference a type argument (#1131 )
  • Fix local file paths showing up in docs (#800, #642)

Feature ✨

  • Strip nodes annotated with @internal if the --stripInternal TypeScript option is provided (#1114)
Commits

The new version differs by 5 commits.

  • fe2363c Version 0.15.2
  • e41fb74 Merge branch 'add-internal-as-hidden-synonym'
  • 7d0ce87 Fix path trimming in tests
  • 6cdc62a Fix #1131
  • 149f3bd Add @internal as a synonym for @hidden

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 apollo-server is breaking the build 🚨

The dependency apollo-server was updated from 2.2.3 to 2.2.4.

🚨 View failing branch.

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

apollo-server 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (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 🌴

Add Support for Hystrix

Hystrix and Circuit Break support is required for making the express microservice resilient to failure. Add the framework support for the same.

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

The devDependency prettier was updated from 1.14.3 to 1.15.0.

🚨 View failing branch.

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

prettier 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for Prettier 1.15: HTML, Vue, Angular and MDX Support

🔗 Release Notes

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 ts-jest is breaking the build 🚨

The devDependency ts-jest was updated from 24.0.0 to 24.0.1.

🚨 View failing branch.

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

ts-jest 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 23 commits.

  • b43b3c1 chore(release): 24.0.1
  • 2d91a37 chore: update package-lock
  • 485d3f7 build(deps): bump semver from 5.6.0 to 5.7.0 (#1043)
  • 2bd2534 build(deps-dev): bump @types/node from 10.14.3 to 10.14.4 (#1041)
  • bdba560 build(deps-dev): bump @types/node from 10.14.2 to 10.14.3 (#1038)
  • 08766bf build(deps-dev): bump @types/node from 10.14.1 to 10.14.2 (#1036)
  • 5f92fd2 build(deps-dev): bump js-yaml from 3.12.2 to 3.13.0 (#1034)
  • a9c79e9 build(deps-dev): bump @types/yargs from 12.0.9 to 12.0.10 (#1032)
  • 245ab29 build(deps-dev): bump eslint from 5.15.2 to 5.15.3 (#1031)
  • 4e72e59 build(deps-dev): bump eslint from 5.15.1 to 5.15.2 (#1030)
  • fb7dd55 feat(config): specify package.json location (#823) (#1013)
  • 279edcd build(deps-dev): bump tslint from 5.13.1 to 5.14.0 (#1028)
  • 8b93228 build(deps-dev): bump @types/node from 10.12.30 to 10.14.1 (#1027)
  • b825c7f build(deps-dev): bump @types/lodash.memoize from 4.1.4 to 4.1.6 (#1014)
  • 6f0ab80 build(deps-dev): bump @types/lodash.merge from 4.6.5 to 4.6.6 (#1015)

There are 23 commits in total.

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 🌴

Add load testing support

Add development time load testing support , so that the developer can have an early check on the performance of the microservice

Cannot find name 'AsyncIterator' error while generating typedocs

typedoc using different version of typescript than the dependencies defined in the package.json.
Also the doc generation is throwing the following error

Using TypeScript 2.4.1 from E:\workspace\express-microservice-starter\node_modules\typedoc\node_modules\typescript\lib
Error: E:/workspace/express-microservice-starter/node_modules/graphql-subscriptions/dist/pubsub-engine.d.ts(4)
Cannot find name 'AsyncIterator'.
Error: E:/workspace/express-microservice-starter/node_modules/graphql-subscriptions/dist/pubsub.d.ts(11)
Cannot find name 'AsyncIterator'.

Add more tests

  • I'm submitting a ...
    [ ] bug report
    [x] feature request
    [ ] question about the decisions made in the repository

  • Do you want to request a feature or report a bug?
    A lot of functionality has been added lately and there is a need to add more tests. In future we will focus on TDD , but for now lets catch up with the missing set of tests.

  • What is the current behavior?

  • If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

  • What is the expected behavior?

  • What is the motivation / use case for changing the behavior?

  • Please tell us about your environment:

  • nxplorer version: 1.5.6
  • other environment details
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. npm , github, stackoverflow etc)

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

The dependency csurf was updated from 1.9.0 to 1.10.0.

🚨 View failing branch.

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

csurf 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for 1.10.0
Commits

The new version differs by 94 commits.

There are 94 commits in total.

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 apollo-server-express is breaking the build 🚨

The dependency apollo-server-express was updated from 2.2.3 to 2.2.4.

🚨 View failing branch.

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

apollo-server-express 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (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 🌴

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

The dependency pino was updated from 5.11.3 to 5.12.0.

🚨 View failing branch.

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

pino 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v5.12.0
  • Fix bug Global serializer not invoked for strings when base: null (#597)
  • Add cls-proxify to ecosystem.md (#604)
  • Fix wildcard redacting with a custom censor function (#617)
Commits

The new version differs by 5 commits.

  • 89230e7 Bumped v5.12.0
  • cf070af Fixes after landing
  • e386651 Fix bug Global serializer not invoked for strings when base: null (#597)
  • 818e95d [Closes #601] Add cls-proxify to ecosystem.md (#604)
  • 8551286 Fix wildcard redacting with a custom censor function (#617)

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 graphql is breaking the build 🚨

The dependency graphql was updated from 14.2.0 to 14.2.1.

🚨 View failing branch.

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

graphql 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v14.2.1

14.2.1 (2019-03-31)

Bug Fix 🐞

Commits

The new version differs by 4 commits.

  • d2ffd7c v14.2.1
  • 3c79bed buildClientSchema: Revert breaking change introduced in #1677 (#1808)
  • f289555 Update to ESLint 5.16 (#1807)
  • c1376e3 Enable Flow on more test files (#1806)

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 @types/request is breaking the build 🚨

The devDependency @types/request was updated from 2.48.3 to 2.48.4.

🚨 View failing branch.

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

@types/request 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (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 🌴

An in-range update of apollo-server-express is breaking the build 🚨

The dependency apollo-server-express was updated from 2.1.0 to 2.2.0.

🚨 View failing branch.

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

apollo-server-express 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (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 🌴

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

The devDependency supertest was updated from 3.4.0 to 3.4.1.

🚨 View failing branch.

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

supertest 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 9 commits.

  • 8ef3840 3.4.1
  • cea9ff5 Merge pull request #535 from visionmedia/v3.4.1
  • 013caf0 doc(History.md) changelog updated
  • 0d4a6dc Merge pull request #533 from rimiti/publish-only-necessary
  • 9ed4909 chore(package-lock.json) file updated
  • c1a1c37 fix(test/supertest.js) test fixed, message has been updated
  • 87756fb Revert "chore(test/supertest.js) obscure test removed"
  • 9e6851b Revert "chore(test/supertest.js) obscure test removed"
  • ad882c2 chore(.npmignore) only publish necessary files

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 🌴

Upgrade to latest version of graphql-tools

Currently using the older version of graphql tools . There was an issue initially using the newer version so version 1.0.0 was being used . Investigate and fix this.

Add a GraphQL pagination based example

  • I'm submitting a ...
    [ ] bug report
    [x ] feature request
    [ ] question about the decisions made in the repository

  • Do you want to request a feature or report a bug?
    This is a feature addition

  • What is the current behavior?
    N/A

  • If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
    N/A

  • What is the expected behavior?
    One example with pagination based graphql APIs will help in provide a complete set of capabilities we can support.

  • What is the motivation / use case for changing the behavior?

  • Please tell us about your environment:

  • nxplorer version: 1.6.0
  • other environment details
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. npm , github, stackoverflow etc)

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

The dependency helmet was updated from 3.17.0 to 3.18.0.

🚨 View failing branch.

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

helmet 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 3 commits.

  • 238d3a4 3.18.0
  • 65a5d23 Update expect-ct, feature-policy, frameguard, and nocache
  • 6ac5e84 Minor: remove line breaks from CHANGELOG markdown

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 ts-node is breaking the build 🚨

The devDependency ts-node was updated from 8.3.0 to 8.4.0.

🚨 View failing branch.

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

ts-node 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for Program Transformers

Added

  • Introduce transformers program support (#879) 12ff53d

Fixed

Commits

The new version differs by 4 commits.

  • 3efdea4 8.4.0
  • b01b629 Fix prefer TS exts via env variables (#867)
  • ebbcf39 Add note about ntypescript to README (#877)
  • 12ff53d Introduce transformers program support (#879)

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 🌴

Swagger validation not working

  • I'm submitting a ...
    [* ] bug report

  • Do you want to request a feature or report a bug?
    want to report a bug

  • What is the current behavior?
    when I want to validate a request, for example by max size. I added the condition to Yaml file and invalid request still working

  • If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

  • What is the expected behavior?

  • What is the motivation / use case for changing the behavior?

  • Please tell us about your environment:

  • nxplorer version: 1.5.6
  • other environment details
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. npm , github, stackoverflow etc)

Add GraphQL Support

Add GraphQL support so that the node JS microservice/backend for frontend can provide the client the flexibility of defining the data structure that it needs to access.
image

An in-range update of source-map-support is breaking the build 🚨

The dependency source-map-support was updated from 0.5.14 to 0.5.15.

🚨 View failing branch.

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

source-map-support 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for 🚢 0.5.15
  • 🐛 Adapt to node's removal of the module header
Commits

The new version differs by 5 commits.

  • e2fcc4c 0.5.15
  • 3315173 Update built files
  • a64d497 Merge pull request #255 from tapjs/node-header-length-change
  • b2e96dd test: SyntaxError may quote unexpected token
  • 27606c1 fix: Adapt to node's removal of the module header

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 @types/express is breaking the build 🚨

The devDependency @types/express was updated from 4.17.1 to 4.17.2.

🚨 View failing branch.

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

@types/express 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (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 🌴

An in-range update of apollo-server is breaking the build 🚨

The dependency apollo-server was updated from 2.1.0 to 2.2.0.

🚨 View failing branch.

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

apollo-server 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (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 🌴

graphql-tools 3 upgrade and schema stitching and transformation sample addition

  • I'm submitting a ...
    [ ] bug report
    [x] feature request
    [ ] question about the decisions made in the repository

  • Do you want to request a feature or report a bug?
    graphql-tools v3 is out. While this is backward compatible , we should enhance the existing samples to demonstrate the new features like schema stitching and transformation as well

  • What is the current behavior?

  • If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

  • What is the expected behavior?

  • What is the motivation / use case for changing the behavior?

  • Please tell us about your environment:

  • nxplorer version: 1.5.6
  • other environment details
  • Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. npm , github, stackoverflow etc)

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


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 ts-jest is breaking the build 🚨

The devDependency ts-jest was updated from 23.1.4 to 23.10.0.

🚨 View failing branch.

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

ts-jest 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for 23.10.0

ts-jest, reloaded!

  • lots of new features including full type-checking and internal cache (see changelog)
  • improved performances
  • Babel not required anymore
  • improved (and growing) documentation
  • a ts-jest Slack community where you can find some instant help
  • end-to-end isolated testing over multiple jest, typescript and babel versions
Commits

The new version differs by 293 commits.

  • 0e5ffed chore(release): 23.10.0
  • 3665609 Merge pull request #734 from huafu/appveyor-optimizations
  • 45d44d1 Merge branch 'master' into appveyor-optimizations
  • 76e2fe5 ci(appveyor): cache npm versions as well
  • 191c464 ci(appveyor): try to improve appveyor's config
  • 0f31b42 Merge pull request #733 from huafu/fix-test-snap
  • 661853a Merge branch 'master' into fix-test-snap
  • aa7458a Merge pull request #731 from kulshekhar/dependabot/npm_and_yarn/tslint-plugin-prettier-2.0.0
  • 70775f1 ci(lint): run lint scripts in series instead of parallel
  • a18e919 style(fix): exclude package.json from tslint rules
  • 011b580 test(config): stop using snapshots for pkg versions
  • 7e5a3a1 build(deps-dev): bump tslint-plugin-prettier from 1.3.0 to 2.0.0
  • fbe90a9 Merge pull request #730 from kulshekhar/dependabot/npm_and_yarn/@types/node-10.10.1
  • a88456e build(deps-dev): bump @types/node from 10.9.4 to 10.10.1
  • 54fd239 Merge pull request #729 from kulshekhar/dependabot/npm_and_yarn/prettier-1.14.3

There are 250 commits in total.

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 apollo-datasource-rest is breaking the build 🚨

The dependency apollo-datasource-rest was updated from 0.3.1 to 0.3.2.

🚨 View failing branch.

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

apollo-datasource-rest 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (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 🌴

An in-range update of tslint-config-prettier is breaking the build 🚨

The devDependency tslint-config-prettier 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.

tslint-config-prettier 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
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Release Notes for v1.17.0

1.17.0 (2018-11-27)

Features

  • Switch to Yarn instead of npm (537a7ad)
Commits

The new version differs by 19 commits.

  • d336552 Merge pull request #238 from lipis/yarn
  • 537a7ad feat: Switch to Yarn instead of npm
  • 6c38ddc chore(deps-dev): bump semantic-release from 15.12.0 to 15.12.2
  • 9c13ec5 chore(deps-dev): bump vrsource-tslint-rules from 5.8.2 to 5.8.3 (#237)
  • 2e1fd17 chore(deps-dev): bump tslint-immutable from 4.9.1 to 5.0.0 (#235)
  • 7540e0b chore(deps-dev): bump ts-jest from 23.10.4 to 23.10.5 (#233)
  • d285f6a Merge pull request #218 from prettier/readme
  • c77472a Merge pull request #220 from prettier/dependabot/npm_and_yarn/semantic-release-15.12.0
  • 0dc80a1 chore(deps-dev): bump typescript from 3.0.3 to 3.1.6 (#231)
  • 168588a chore(deps-dev): bump tslint-misc-rules from 3.5.0 to 3.5.1 (#229)
  • c53a625 chore(deps-dev): bump @types/prettier from 1.13.2 to 1.15.1 (#230)
  • 4bb4e9b docs(readme): add link to conflicting rules list to README (#228)
  • 9d573c6 chore(deps-dev): bump codelyzer from 4.1.0 to 4.5.0 (#225)
  • 983bc18 chore: npm audit fix (#224)
  • 9bda093 chore(deps-dev): bump semantic-release from 15.1.7 to 15.12.0

There are 19 commits in total.

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 prettier is breaking the build 🚨

The devDependency prettier was updated from 1.18.2 to 1.19.0.

🚨 View failing branch.

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

prettier 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
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Release Notes for Prettier 1.19: Long awaited Vue option, TypeScript 3.7 and new JavaScript features

diff

🔗 Release Notes

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.