UNPKG

@nidomiro/relation-tuple-parser

Version:

[![npm version](https://badge.fury.io/js/@nidomiro%2Frelation-tuple-parser.svg)](https://www.npmjs.com/package/@nidomiro/relation-tuple-parser)

21 lines (20 loc) 899 B
import { Result } from 'defekt'; import { RelationTuple } from './relation-tuple'; import { RelationTupleSyntaxError } from './errors/relation-tuple-syntax.error'; import { UnknownError } from './errors/unknown.error'; /** * Parses the given string to a {@link RelationTuple}. * str syntax: * ``` * <relation-tuple> ::= <object>'#'relation'@'<subject> | <object>'#'relation'@('<subject>')' * <object> ::= namespace':'object_id * <subject> ::= subject_id | <subject_set> * <subject_set> ::= <object>'#'relation * ``` * example: `object#relation@subject` * The characters `:@#()` are reserved for syntax use only (=> forbidden in values) * * @param str * @return The parsed {@link RelationTuple} or {@link RelationTupleSyntaxError} in case of an invalid string. */ export declare const parseRelationTuple: (str: string) => Result<RelationTuple, RelationTupleSyntaxError | UnknownError>;