🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

chimp-datasources-generator

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chimp-datasources-generator

Helper that autogenerates DataSource-compatible APIs per controller for a given microservice, based on OpenAPI/Swagger specification

3.0.0
latest
Source
npm
Version published
Weekly downloads
32
113.33%
Maintainers
1
Weekly downloads
 
Created
Source

Chimp DataSources Generator

What

Helper that autogenerates DataSource-compatible APIs per controller for a given microservice, based on OpenAPI/Swagger specification.

You can see a real-life usage (article with a video) here: https://www.xolv.io/blog/generate-your-apollo-datasources-2/.

Why

It's error-prone, slow and boring to create all those connectors manually. Most people either skip typing them, or type them manually (which is again error-prone, slow and boring). Having them generated makes the Developer Experience much nicer and the whole system significantly more maintainable.

Usage

Usage: chimp-datasources-generator [options] 
[command]

Commands:
  create <directory> <api-location> [custom-data-source-import]  Create the datasources for api, pass either a URL or a yaml/json file. 
   Use http/https when pointing to a URL and relative location when pointing to a file 
     Examples: 
       chimp-datasources-generator create ./generated/external-apis https://domain.com/v3/api-docs.yaml
       chimp-datasources-generator create ./generated/external-apis ./api-docs.yaml
   You can also specify your own custom data source import:
  chimp-datasources-generator create ./generated/external-apis ./api-docs.yaml "@app/apis/DataSource#DataSource"   "@app/apis/DataSource#DataSource" will use an import of:
       import { DataSource } from "@app/apis/DataSource"
     For a default import just use the path:
       "@app/apis/BaseDataSource"

In your code create dataSources.ts file like this one:

import { Controllers } from "@generated/external-apis";

export const dataSources = () => ({
  todoListsApi: new Controllers("http://localhost:8090/"),
});

export type DataSources = ReturnType<typeof dataSources>;

Add the dataSources to your ApolloServer configuration

new ApolloServer({
    schema,
    dataSources,
  });

Make sure to add the DataSources to the GqlContext type in ./src/context.ts

import { DataSources } from "@app/dataSources";

export type GqlContext = { dataSources: DataSources };

How

We are using the swagger-codegen-cli with custom templates and a bit of extra scripting.

FAQs

Package last updated on 08 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts