Socket
Socket
Sign inDemoInstall

@alpaca-travel/graph-sdk-graphql-request

Package Overview
Dependencies
20
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @alpaca-travel/graph-sdk-graphql-request

> This package assist with a basic SDK for developing applications on top of > Alpaca Travel GraphQL API via graphql-request.


Version published
Weekly downloads
1
Maintainers
1
Created
Weekly downloads
 

Readme

Source

Alpaca Travel GraphQL SDK for graphql-request

This package assist with a basic SDK for developing applications on top of Alpaca Travel GraphQL API via graphql-request.

  • SDK API Documentation
  • Alpaca Travel GraphQL Documentation
  • Alternative SDK Versions

Installation

Via NPM:

npm install graphql-request graphql graphql-tag @alpaca-travel/graph-sdk-graphql-request --save

Via Yarn:

yarn add graphql-request graphql graphql-tag @alpaca-travel/graph-sdk-graphql-request

Typescript Types

The SDK includes typescript types to assist you in working with data responses.

Getting Started

The below shows a way to create a SDK instance with a configured graphql-request client.

import { GraphQLClient } from 'graphql-request';
import { getSdk } from '@alpaca-travel/graph-sdk-graphql-request';

// Create a graphql-client
// Note: Substitute your API Access Token
const client = new GraphQLClient(`https://withalpaca.com/api/graphql?accessToken=xxx`);

// Initialise the SDK
const sdk = getSdk(client);

Example call

// Call in an itinerary
const data = await sdk.getItinerary({ id: 'itinerary/123' });

// Console log the total count
console.log(data.itinerary.locations.totalCount);

API Documentation

See API Docs

Extending Functionality

The SDK is driven by a number of GraphQL documents. You can fork this project if you wish to extend your own queries and mutations as documented on the GraphQL Documentation and consider self-hosting for your use case or submitting a pull-request.

GraphQL Calls via graphql-request

You can craft your own GraphQL queries following the documentation available for Alpaca GraphQL.

Using graphql-request, you can make your requests as needed;

/**
 * Make a GraphQL request using the graphql-request client outside of the SDK
 * capabilities. Needed if you want to extend the SDK capabilities or perform
 * a specific GraphQL call.
 */

const query = gql`
  # My custom Alpaca GraphQL call
  query getAuthorizedProfiles {
    query
    authorizedProfiles(first: 1) {
      nodes {
        id
        name
      }
    }
  }
`;
// Perform a query
client.request(query).then((data) => console.log(data));
Using graphql-codegen

You can leverage the tool graphql-codegen in order to generate additional hooks and capability for your application.

Install graphql-codegen and the related libraries to your project

npm install -D @graphql-codegen/cli @graphql-codegen/fragment-matcher @graphql-codegen/introspection @graphql-codegen/jsdoc @graphql-codegen/typescript @graphql-codegen/typescript-operations @graphql-codegen/typescript-graphql-request

See the graphql-codegen configuration for an example of the configuration used for generating out the SDK.

  1. Copy the codegen-typescript-example.yml file as codegen.yml in your workspace
  2. Create the folder in src/graphql and place in your graphql operations
  3. Add the script "graphql-codegen": "graphql-codegen --config codegen.yml" to your package.json "scripts" section
  4. Run npm run graphql-codegen to generate your own src/graphql/index.ts file

The benefit of using graphql-codegen is that your Typescript types will be created, as well as providing the API surface for you to call without embedding your GraphQL queries/mutations within the component.

Further Reading

FAQs

Last updated on 31 Jan 2023

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc