New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
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
  • Socket score

Version published
Weekly downloads
45
increased by164.71%
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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc