data
data copied to clipboard
Typing issue when returning relation properties
So, we have the following database:
const db = factory({
article: {
id: primaryKey(() => _articleId++),
title: () => title,
slug: () => faker.helpers.slugify(title),
author: nullable(manyOf("author")),
thumbnail: oneOf("image"),
category: oneOf("category"),
createdDate: () => faker.date.anytime(),
publishedDate: () => faker.date.anytime(),
introduction: () => faker.lorem.text(),
content: {
// TODO: https://github.com/mswjs/data/issues/299
root: () => mockRichText(),
},
hero: {
url: () => faker.image.url({ width, height }),
alt: () => faker.lorem.text(),
width: () => width,
height: () => height,
caption: {
source: () => faker.lorem.word(),
description: () => faker.lorem.text(),
},
},
// content: () => ({ root: () => mockRichText() }),
source: nullable(() => faker.lorem.word()),
tags: () => mockArray(6, () => faker.lorem.word()),
continue: oneOf("relatedArticle"),
related: nullable(manyOf("relatedArticle")),
},
...
category: {
id: primaryKey(() => _categoryId++),
title: () => categoryTitle,
slug: () => faker.helpers.slugify(categoryTitle),
},
...
});
And we want to implement a function to return all articles' slug and their categories' slugs as well:
export const articlePaths = () =>
db.article.findMany({}).map((a) => ({
category: a.category.slug,
slug: a.slug,
}));
Unfortunately, it fails on typing:
Why is this?
When assigning only the category
, it does not give any issue.
It should not give any issue when getting relation properties.