Skip to content

A custom GraphQL scalar types for validating Norwegian Social Security Number.

License

Notifications You must be signed in to change notification settings

simenandre/norwegian-ssn-graphql-scalar

Repository files navigation

npm version

A custom GraphQL scalar types for validating Norwegian Social Security Number.

Installation

yarn add norwegian-ssn-graphql-scalar

Usage

To use this scalar you'll need to add it in two places, your schema and your resolvers map.

In your schema:

scalar NorwegianSSN

In your resolver map, first import them:

import { norwegianSSNResolver } from 'norwegian-ssn-graphql-scalar';

Then make sure they're in the root resolver map like this:

const myResolverMap = {
  NorwegianSSN: norwegianSSNResolver,

  Query: {
    // more stuff here
  },

  Mutation: {
    // more stuff here
  },
};

Alternatively, use the resolver export and a spread operator syntax:

import { resolvers } from 'norwegian-ssn-graphql-scalar';

Then make sure they're in the root resolver map like this:

const myResolverMap = {
  ...resolvers,

  Query: {
    // more stuff here
  },

  Mutation: {
    // more stuff here
  },
};

That's it. Now you can use these scalar types in your schema definition like this:

type Person {
  socialSecurityNumber: NorwegianSSN
  ...
}

These scalars can be used just like the base, built-in ones.

Usage with Apollo Server

import { ApolloServer } from 'apollo-server';
import { makeExecutableSchema } from '@graphql-tools/schema';
import { typeDefs, resolvers } from 'norwegian-ssn-graphql-scalar';

const server = new ApolloServer({
  schema: makeExecutableSchema({
    typeDefs: [
      // use spread syntax to add scalar definitions to your schema
      ...typeDefs,
      // DateTimeTypeDefinition,
      // ...
      // ... other type definitions ...
    ],
    resolvers: {
      // use spread syntax to add scalar resolvers to your resolver map
      ...resolvers,
      // DateTimeResolver,
      // ...
      // ... remainder of resolver map ...
    },
  }),
});

server.listen().then(({ url }) => {
  console.log(`🚀 Server ready at ${url}`);
});

License

Released under the MIT license.

Contributing

Issues and Pull Requests are always welcome. ❤️

Thanks

This library are based on Urigo/graphql-scalars. We use https://github.com/mikaello/norwegian-national-id-validator for the actual validation.

About

A custom GraphQL scalar types for validating Norwegian Social Security Number.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •