Skip to content

Commit 2185748

Browse files
committed
email and telephone objects added
1 parent 071b909 commit 2185748

6 files changed

Lines changed: 63 additions & 1 deletion

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
],
3838
"license": "MIT",
3939
"dependencies": {
40-
"rdfjs-wrapper": "^0.15.0"
40+
"rdfjs-wrapper": "^0.28.0"
4141
},
4242
"devDependencies": {
4343
"@rdfjs/types": "^2",

src/solid/Email.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { TermWrapper, ValueMapping, TermMapping } from 'rdfjs-wrapper';
2+
import { VCARD, RDF } from '../vocabulary/mod.js';
3+
4+
export class Email extends TermWrapper {
5+
get emailAddress(): string {
6+
return this.singular(VCARD.value, ValueMapping.literalToString);
7+
}
8+
9+
set emailAddress(value: string) {
10+
this.overwrite(VCARD.value, value, TermMapping.stringToLiteral);
11+
}
12+
13+
get emailType(): string | undefined {
14+
return this.singularNullable(RDF.type, ValueMapping.iriToString);
15+
}
16+
17+
set emailType(value: string | undefined) {
18+
this.overwriteNullable(RDF.type, value, TermMapping.stringToIri);
19+
}
20+
}

src/solid/EmailDataset.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { DatasetWrapper } from 'rdfjs-wrapper';
2+
import { VCARD } from '../vocabulary/mod.js';
3+
import { Email } from './Email.js';
4+
5+
export class EmailDataset extends DatasetWrapper {
6+
get email(): Iterable<Email> {
7+
return this.objectsOf(VCARD.hasEmail, Email);
8+
}
9+
}

src/solid/Telephone.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { TermWrapper, ValueMapping, TermMapping } from 'rdfjs-wrapper';
2+
import { VCARD } from '../vocabulary/mod.js';
3+
4+
export class Telephone extends TermWrapper {
5+
get phoneNumber(): string {
6+
return this.singular(VCARD.hasValue, ValueMapping.literalToString) || '';
7+
}
8+
9+
set phoneNumber(value: string) {
10+
this.overwrite(VCARD.hasValue, value, TermMapping.stringToLiteral);
11+
}
12+
13+
get phoneType(): string | undefined {
14+
return this.singularNullable(VCARD.telephoneType, ValueMapping.iriToString);
15+
}
16+
17+
set phoneType(value: string | undefined) {
18+
this.overwriteNullable(VCARD.telephoneType, value, TermMapping.stringToIri);
19+
}
20+
}

src/solid/TelephoneDataset.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { DatasetWrapper } from 'rdfjs-wrapper';
2+
import { VCARD } from '../vocabulary/vcard.js';
3+
import { Telephone } from './Telephone';
4+
5+
export class TelephoneDataset extends DatasetWrapper {
6+
get telephone(): Iterable<Telephone> {
7+
return this.objectsOf(VCARD.hasTelephone, Telephone);
8+
}
9+
}

src/solid/mod.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
export * from "./Container.js"
22
export * from "./ContainerDataset.js"
33
export * from "./Resource.js"
4+
export * from "./Email.js";
5+
export * from "./EmailDataset.js";
6+
export * from "./Telephone.js";
7+
export * from "./TelephoneDataset.js";

0 commit comments

Comments
 (0)