1
0
Fork 0

Fix duplicated tags error

This commit is contained in:
Chocobozzz 2022-06-23 11:01:44 +02:00
parent b6898035bf
commit f2623febd8
No known key found for this signature in database
GPG key ID: 583A612D890159BE

View file

@ -45,8 +45,9 @@ export class TagModel extends Model<Partial<AttributesOnly<TagModel>>> {
static findOrCreateTags (tags: string[], transaction: Transaction): Promise<MTag[]> { static findOrCreateTags (tags: string[], transaction: Transaction): Promise<MTag[]> {
if (tags === null) return Promise.resolve([]) if (tags === null) return Promise.resolve([])
const tasks: Promise<MTag>[] = [] const uniqueTags = new Set(tags)
tags.forEach(tag => {
const tasks = Array.from(uniqueTags).map(tag => {
const query = { const query = {
where: { where: {
name: tag name: tag
@ -57,9 +58,8 @@ export class TagModel extends Model<Partial<AttributesOnly<TagModel>>> {
transaction transaction
} }
const promise = TagModel.findOrCreate<MTag>(query) return TagModel.findOrCreate<MTag>(query)
.then(([ tagInstance ]) => tagInstance) .then(([ tagInstance ]) => tagInstance)
tasks.push(promise)
}) })
return Promise.all(tasks) return Promise.all(tasks)