Skip to content

Commit 5b4aad1

Browse files
committed
Style
1 parent 7ffdd0e commit 5b4aad1

File tree

11 files changed

+271
-270
lines changed

11 files changed

+271
-270
lines changed

src/TermMapping.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Wrapper } from "./Wrapper.js"
2-
import type { DatasetCore, DataFactory } from "@rdfjs/types"
2+
import type { DataFactory, DatasetCore } from "@rdfjs/types"
33

44
export interface TermMapping<T> {
5-
(v: T, d: DatasetCore, f: DataFactory): Wrapper | undefined
5+
(v: T, d: DatasetCore, f: DataFactory): Wrapper | undefined
66
}

src/TermMappings.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { Wrapper } from "./Wrapper.js"
2-
import type { DatasetCore, DataFactory } from "@rdfjs/types"
2+
import type { DataFactory, DatasetCore } from "@rdfjs/types"
33

44
export namespace TermMappings {
5-
export function stringToLiteral(v: string | undefined, d: DatasetCore, f: DataFactory): Wrapper | undefined {
6-
if (v === undefined) {
7-
return undefined
8-
}
5+
export function stringToLiteral(v: string | undefined, d: DatasetCore, f: DataFactory): Wrapper | undefined {
6+
if (v === undefined) {
7+
return undefined
8+
}
99

10-
return new Wrapper(f.literal(v), d, f)
11-
}
10+
return new Wrapper(f.literal(v), d, f)
11+
}
1212

1313
export function dateToLiteral(v: Date | undefined, d: DatasetCore, f: DataFactory): Wrapper | undefined {
1414
if (v === undefined) {

src/ValueMapping.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Wrapper } from "./Wrapper.js"
1+
import type { Wrapper } from "./Wrapper.js"
22

33
export interface ValueMapping<T> {
4-
(n: Wrapper): T
4+
(n: Wrapper): T
55
}

src/ValueMappings.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { Wrapper } from "./Wrapper.js"
1+
import type { Wrapper } from "./Wrapper.js"
22

33
export namespace ValueMappings {
4-
export function literalToString(n: Wrapper): string {
5-
return n.term.value
6-
}
4+
export function literalToString(n: Wrapper): string {
5+
return n.term.value
6+
}
77

88
export function literalToDate(n: Wrapper): Date {
99
return new Date(n.term.value)

src/Wrapper.ts

Lines changed: 87 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,93 @@
11
import type { ValueMapping } from "./ValueMapping.js"
22
import type { TermMapping } from "./TermMapping.js"
33
import { WrappingSet } from "./WrappingSet.js"
4-
import type { Term, DatasetCore, Quad_Subject, Quad_Predicate, Quad_Object, DataFactory } from "@rdfjs/types"
4+
import type { DataFactory, DatasetCore, Quad_Object, Quad_Predicate, Quad_Subject, Term } from "@rdfjs/types"
55

66
export class Wrapper {
7-
#term: Term
8-
#dataset: DatasetCore
9-
#factory: DataFactory
10-
11-
public constructor(term: Term, dataset: DatasetCore, factory: DataFactory) {
12-
this.#term = term
13-
this.#dataset = dataset
14-
this.#factory = factory
15-
}
16-
17-
get dataset(): DatasetCore {
18-
return this.#dataset
19-
}
20-
21-
get term(): Term {
22-
return this.#term
23-
}
24-
25-
get factory(): DataFactory {
26-
return this.#factory
27-
}
28-
29-
protected singular<T>(p: Quad_Predicate, valueMapping: ValueMapping<T>): T {
30-
return valueMapping(
31-
new Wrapper(
32-
[...this.dataset.match(this.term, p)][0]!.object,
33-
this.dataset,
34-
this.factory
35-
)
36-
)
37-
}
38-
39-
protected singularNullable<T>(p: Quad_Predicate, valueMapping: ValueMapping<T>): T | undefined {
40-
for (const q of this.dataset.match(this.term, p)) {
41-
return valueMapping(new Wrapper(q.object, this.dataset, this.factory))
42-
}
43-
44-
return
45-
}
46-
47-
protected objects<T>(p: Quad_Predicate, valueMapping: ValueMapping<T>, termMapping: TermMapping<T>): Set<T> {
48-
return new WrappingSet(this, p, valueMapping, termMapping)
49-
}
50-
protected overwriteNullable<T>(p: Quad_Predicate, value: T | undefined, termMapping: TermMapping<T>): void {
51-
for (const q of this.dataset.match(this.term, p)) {
52-
this.dataset.delete(q)
53-
}
54-
55-
if (value === undefined) {
56-
return
57-
}
58-
59-
if (!Wrapper.isQuadSubject(this.term)) {
60-
return // TODO: throw error?
61-
}
62-
63-
const o = termMapping(value, this.dataset, this.factory)
64-
65-
if (o === undefined) {
66-
return // TODO: throw error?
67-
}
68-
69-
if (!Wrapper.isQuadObject(o.term)) {
70-
return // TODO: throw error?
71-
}
72-
73-
const q = this.factory.quad(this.term, p, o.term)
74-
this.dataset.add(q)
75-
}
76-
77-
protected overwrite<T>(p: Quad_Predicate, value: T, nodeMapping: TermMapping<T>): void {
78-
if (value === undefined) {
79-
throw new Error("value cannot be undefined")
80-
}
81-
82-
this.overwriteNullable(p, value, nodeMapping)
83-
}
84-
85-
private static isQuadSubject(term: Term): term is Quad_Subject {
86-
return ["NamedNode", "BlankNode", "Quad", "Variable"].includes(term.termType)
87-
}
88-
89-
private static isQuadObject(term: Term): term is Quad_Object {
90-
return ["NamedNode", "Literal", "BlankNode", "Quad", "Variable"].includes(term.termType)
91-
}
7+
readonly #term: Term
8+
readonly #dataset: DatasetCore
9+
readonly #factory: DataFactory
10+
11+
public constructor(term: Term, dataset: DatasetCore, factory: DataFactory) {
12+
this.#term = term
13+
this.#dataset = dataset
14+
this.#factory = factory
15+
}
16+
17+
get dataset(): DatasetCore {
18+
return this.#dataset
19+
}
20+
21+
get term(): Term {
22+
return this.#term
23+
}
24+
25+
get factory(): DataFactory {
26+
return this.#factory
27+
}
28+
29+
protected singular<T>(p: Quad_Predicate, valueMapping: ValueMapping<T>): T {
30+
return valueMapping(
31+
new Wrapper(
32+
[...this.dataset.match(this.term, p)][0]!.object,
33+
this.dataset,
34+
this.factory
35+
)
36+
)
37+
}
38+
39+
protected singularNullable<T>(p: Quad_Predicate, valueMapping: ValueMapping<T>): T | undefined {
40+
for (const q of this.dataset.match(this.term, p)) {
41+
return valueMapping(new Wrapper(q.object, this.dataset, this.factory))
42+
}
43+
44+
return
45+
}
46+
47+
protected objects<T>(p: Quad_Predicate, valueMapping: ValueMapping<T>, termMapping: TermMapping<T>): Set<T> {
48+
return new WrappingSet(this, p, valueMapping, termMapping)
49+
}
50+
51+
protected overwriteNullable<T>(p: Quad_Predicate, value: T | undefined, termMapping: TermMapping<T>): void {
52+
for (const q of this.dataset.match(this.term, p)) {
53+
this.dataset.delete(q)
54+
}
55+
56+
if (value === undefined) {
57+
return
58+
}
59+
60+
if (!Wrapper.isQuadSubject(this.term)) {
61+
return // TODO: throw error?
62+
}
63+
64+
const o = termMapping(value, this.dataset, this.factory)
65+
66+
if (o === undefined) {
67+
return // TODO: throw error?
68+
}
69+
70+
if (!Wrapper.isQuadObject(o.term)) {
71+
return // TODO: throw error?
72+
}
73+
74+
const q = this.factory.quad(this.term, p, o.term)
75+
this.dataset.add(q)
76+
}
77+
78+
protected overwrite<T>(p: Quad_Predicate, value: T, nodeMapping: TermMapping<T>): void {
79+
if (value === undefined) {
80+
throw new Error("value cannot be undefined")
81+
}
82+
83+
this.overwriteNullable(p, value, nodeMapping)
84+
}
85+
86+
private static isQuadSubject(term: Term): term is Quad_Subject {
87+
return ["NamedNode", "BlankNode", "Quad", "Variable"].includes(term.termType)
88+
}
89+
90+
private static isQuadObject(term: Term): term is Quad_Object {
91+
return ["NamedNode", "Literal", "BlankNode", "Quad", "Variable"].includes(term.termType)
92+
}
9293
}

0 commit comments

Comments
 (0)