# rdf-validate-datatype

> Validate literal value of an RDF term based on its datatype.

Latest version **0.2.2** (published 2025-04-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install rdf-validate-datatype
pnpm add rdf-validate-datatype
yarn add rdf-validate-datatype
bun add rdf-validate-datatype
```

## Health

**Score 50/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 0.2.2 |
| Published | 2025-04-24 |
| First published | 2020-03-31 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 35.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Martin Maillard |
| Maintainers | tpluscode, ludovicm67, zazuko-bot |
| Keywords | rdf, validation, datatype |

## Links

- npm: https://www.npmjs.com/package/rdf-validate-datatype
- Repository: https://github.com/zazuko/rdf-validate-datatype
- Homepage: https://github.com/zazuko/rdf-validate-datatype#readme
- Issues: https://github.com/zazuko/rdf-validate-datatype/issues
- npm.io page: https://npm.io/package/rdf-validate-datatype

## Dependencies (2)

- [@rdfjs/term-map](https://npm.io/package/@rdfjs/term-map.md) ^2.0.0
- [@tpluscode/rdf-ns-builders](https://npm.io/package/@tpluscode/rdf-ns-builders.md) 3 - 5

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 0.2.2 (latest) — 2025-04-24
- 0.2.1 — 2023-12-18
- 0.2.0 — 2023-09-11
- 0.1.5 — 2022-10-05
- 0.1.4 — 2021-08-02
- 0.1.3 — 2021-01-19
- 0.1.2 — 2021-01-19
- 0.1.1 — 2020-03-31

## README

# rdf-validate-datatype

Validate literal value of an RDF term based on its declared datatype.

[![npm version](https://badge.fury.io/js/rdf-validate-datatype.svg)](https://badge.fury.io/js/rdf-validate-datatype)


## Install

`$ npm install rdf-validate-datatype`


## Usage

### `validateTerm`

```javascript
import { validateTerm } from 'rdf-validate-datatype'
import rdf from '@rdfjs/data-model'
import { xsd } from '@tpluscode/rdf-ns-builders'

const term = rdf.literal('test')
const isValid = validateTerm(term) // -> true

const term = rdf.literal('2019-01-01', xsd.date)
const isValid = validateTerm(term) // -> true

const term = rdf.literal('invalid date', xsd.date)
const isValid = validateTerm(term) // -> false
```

### `validateQuad`

`validateQuad` validates that the `.object` of a given quad is valid in regards
to its declared datatype.

```javascript
import { validateQuad } from 'rdf-validate-datatype'
import rdf from '@rdfjs/data-model'
import { schema, xsd } from '@tpluscode/rdf-ns-builders'

const quad = rdf.quad(
  rdf.namedNode('bob'),
  schema.birthDate,
  rdf.literal('2019-01-01', xsd.date)
)
const isValid = validateQuad(term) // -> true

const quad = rdf.quad(
  rdf.namedNode('bob'),
  schema.birthDate,
  rdf.literal('invalid date', xsd.date)
)
const isValid = validateQuad(term) // -> false
```

### Configuring validators

Datatype validators are stored in a registry. They can be changed at runtime.

```javascript
import { validators, validateTerm } from 'rdf-validate-datatype'
import rdf from '@rdfjs/data-model'
import { xsd } from '@tpluscode/rdf-ns-builders'

// Register a new datatype
const myDatatype = rdf.namedNode('my-datatype')
validators.register(myDatatype, value => value.startsWith('X-'))
validateTerm(rdf.literal('X-test', myDatatype)) // -> true
validateTerm(rdf.literal('test', myDatatype)) // -> false

// Override an existing datatype
validators.register(xsd.date, value => true)
validateTerm(rdf.literal('banana', xsd.date)) // -> true
```

---
_Source: https://npm.io/package/rdf-validate-datatype · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
