import { dataBuilder } from "@helpers/datas/dataBuilder"; import { lorem } from "@helpers/ui/lipsum"; import type { User } from "@src/tems"; export const user: User = { "@id": "_:b1", first_name: "John", last_name: "Doe", username: "johndoe42", email: "john@doe.com", account: { "@id": "_:b2", picture: "https://placehold.co/30x30", user: { "@id": "_b:1", "@type": "foaf:user", "@context": { get_full_name: "rdfs:label" }, }, }, name: "John Doe", inbox: { "@id": "_:b3" }, "@type": "foaf:user", "@context": [ "https://cdn.startinblox.com/owl/context.jsonld", { get_full_name: "rdfs:label" }, ], permissions: ["view", "add", "control", "delete", "change"], }; export const userWithoutPicture = dataBuilder(user, ["account.picture"]); export const userWithoutEmail = dataBuilder(user, ["email"]); export const minimalUser = dataBuilder(user, [ "first_name", "last_name", "email", "account.picture", "name", ]); export const get_random_user = (): User => { const removables: string[] = []; const replacements: User = { "@id": `store://local.sample-object/${Math.floor(Math.random() * 1000)}/`, first_name: lorem.generateWords(1), last_name: lorem.generateWords(1), username: lorem.generateWords(1).toLocaleLowerCase(), email: `${lorem.generateWords(1).toLocaleLowerCase()}@example.com`, name: "", }; replacements.name = `${replacements.first_name} ${replacements.last_name}`; const removableGenerator = (key: string) => { // Between 0 and 25% chance if (Math.random() < Math.random() * 0.25) { removables.push(key); } }; removableGenerator("account"); removableGenerator("first_name"); removableGenerator("last_name"); removableGenerator("name"); removableGenerator("email"); removableGenerator("username"); return dataBuilder(user, removables, replacements, true) as User; };