OpenHPS/openhps-rdf

View on GitHub
examples/nodejs/src/Person.ts

Summary

Maintainability
A
0 mins
Test Coverage
import '@openhps/rdf';
import { DataObject, SerializableArrayMember, SerializableMember, SerializableObject } from '@openhps/core';
import { foaf } from '@openhps/rdf';
import { Project } from './Project';

@SerializableObject({
    rdf: {
        type: foaf.Person,
        serializer: (object: Person, baseUri?: string) => {
            return {
                value: `${object.firstName}_${object.familyName}`.replace(/\s/g, "_")
            }
        }
    }
})
export class Person extends DataObject {
    @SerializableMember({
        rdf: {
            predicate: foaf.firstName
        }
    })
    firstName: string;

    @SerializableMember({
        rdf: {
            predicate: foaf.familyName
        }
    })
    familyName: string;

    @SerializableMember({
        rdf: {
            predicate: foaf.nick
        }
    })
    nick?: string;

    @SerializableArrayMember(Project, {
        rdf: {
            predicate: foaf.currentProject
        }
    })
    projects?: Project[];
}