0.1.3 • Published 4 years ago

ontotext-platform-custom-scalars v0.1.3

Weekly downloads
17
License
Apache-2.0
Repository
github
Last release
4 years ago

Ontotext Platform Custom GraphQL Scalars

A library providing customized scalars used in Ontotext Platform, written in JavaScript

CI

Purpose

The main purpose of the library is to provide JavaScript implementation of the custom GraphQL scalars used in the Ontotext Platform. This will allow our clients to create compliant schemas, which could be used in the Platform services without the need of implementing and supporting their own scalar types. As the Platform provides federation, the package will be particularly useful for implementations of custom services via Apollo Federation, where the base schema defined in the Platform could be extended with additional types or properties.

Installation

Prerequisites

  • Node >= 14.2
  • NPM (npm)
npm install ontotext-platform-custom-scalars

Usage

To use the scalars after installing the package, you will need to import them in your schema definition and then provide resolvers for them.

import { ApolloServer, gql } from 'apollo-server';
import GraphQLDecimal from 'ontotext-platform-custom-scalars';

// For ES5 projects
// const { GraphQLDecimal } = require("ontotext-platform-custom-scalars");

const schema = gql`
  scalar Decimal

  type CustomType {
    fieldName: Decimal
  }

  type Query {
    customType: CustomType
  }
`;

const resolversFunc = {
  Decimal: GraphQLDecimal
};

new ApolloServer({ typeDefs: schema, resolvers: resolversFunc }).listen().then(({ url }) => {
  console.log(`🚀 Server ready at ${url}`);
});

Package content

The package contains scalar types for various kinds of numbers and time. The number scalars either extend the standard scalars provided by GraphQL or define completely new one. Some of the scalars like GraphQLDecimal, GraphQLInteger and GraphQLUnsignedLong support bigger than standard JavaScrip numbers, which is useful in some specific cases.

Important notes

Although the package is free for the general public, it is intended to be used within the services that Ontotext Platform provides. If any functionality requires it, the code could be changed to suite the needs of that functionality.

License

LICENSE

Contributing

CONTRIBUTING