Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simenandre/norwegian-ssn-graphql-scalar
A custom GraphQL scalar types for validating Norwegian Social Security Number.
https://github.com/simenandre/norwegian-ssn-graphql-scalar
graphql nodejs scalar typescript
Last synced: 17 days ago
JSON representation
A custom GraphQL scalar types for validating Norwegian Social Security Number.
- Host: GitHub
- URL: https://github.com/simenandre/norwegian-ssn-graphql-scalar
- Owner: simenandre
- License: mit
- Created: 2020-05-29T08:59:52.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-11-29T11:11:14.000Z (24 days ago)
- Last Synced: 2024-12-05T08:44:43.469Z (18 days ago)
- Topics: graphql, nodejs, scalar, typescript
- Language: TypeScript
- Homepage:
- Size: 403 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![npm version](https://badge.fury.io/js/norwegian-ssn-graphql-scalar.svg)](https://badge.fury.io/js/norwegian-ssn-graphql-scalar)
> A custom GraphQL [scalar types](http://graphql.org/learn/schema/#scalar-types) for validating Norwegian Social Security Number.
## Installation
```shell
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:
```graphql
scalar NorwegianSSN
```In your resolver map, first import them:
```javascript
import { norwegianSSNResolver } from 'norwegian-ssn-graphql-scalar';
```Then make sure they're in the root resolver map like this:
```javascript
const myResolverMap = {
NorwegianSSN: norwegianSSNResolver,Query: {
// more stuff here
},Mutation: {
// more stuff here
},
};
```Alternatively, use the `resolver` export and a spread operator syntax:
```javascript
import { resolvers } from 'norwegian-ssn-graphql-scalar';
```Then make sure they're in the root resolver map like this:
```javascript
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:
```graphql
type Person {
socialSecurityNumber: NorwegianSSN
...
}
```These scalars can be used just like the base, built-in ones.
### Usage with Apollo Server
```javascript
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](./LICENSE).
## Contributing
Issues and Pull Requests are always welcome. ❤️
## Thanks
This library are based on [Urigo/graphql-scalars](https://github.com/Urigo/graphql-scalars). We use [https://github.com/mikaello/norwegian-national-id-validator](mikaello/norwegian-national-id-validator) for the actual validation.