From e523ce446836384e52ba152547f399288c2e266e Mon Sep 17 00:00:00 2001 From: KoloMl Date: Mon, 2 Dec 2024 03:12:09 +0400 Subject: [PATCH] Added initial version of tag group entity with tags & prefixes --- src/app.d.ts | 2 ++ src/lib/extension/entities/TagGroup.ts | 19 +++++++++++++++++++ src/lib/extension/transporting/exporters.ts | 9 +++++++++ 3 files changed, 30 insertions(+) create mode 100644 src/lib/extension/entities/TagGroup.ts diff --git a/src/app.d.ts b/src/app.d.ts index 3735081..4462d62 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,6 +1,7 @@ // See https://kit.svelte.dev/docs/types#app // for information about these interfaces import MaintenanceProfile from "$entities/MaintenanceProfile.ts"; +import type TagGroup from "$entities/TagGroup.ts"; declare global { namespace App { @@ -24,6 +25,7 @@ declare global { interface EntityNamesMap { profiles: MaintenanceProfile; + groups: TagGroup; } } } diff --git a/src/lib/extension/entities/TagGroup.ts b/src/lib/extension/entities/TagGroup.ts new file mode 100644 index 0000000..63bcbdf --- /dev/null +++ b/src/lib/extension/entities/TagGroup.ts @@ -0,0 +1,19 @@ +import StorageEntity from "$lib/extension/base/StorageEntity.ts"; + +export interface TagGroupSettings { + name: string; + tags: string[]; + prefixes: string[]; +} + +export default class TagGroup extends StorageEntity { + constructor(id: string, settings: Partial) { + super(id, { + name: settings.name || '', + tags: settings.tags || [], + prefixes: settings.prefixes || [], + }); + } + + static _entityName = 'groups'; +} diff --git a/src/lib/extension/transporting/exporters.ts b/src/lib/extension/transporting/exporters.ts index c2386c4..468df8e 100644 --- a/src/lib/extension/transporting/exporters.ts +++ b/src/lib/extension/transporting/exporters.ts @@ -13,6 +13,15 @@ const entitiesExporters: ExportersMap = { tags: entity.settings.tags, } }, + groups: entity => { + return { + v: 1, + id: entity.id, + name: entity.settings.name, + tags: entity.settings.tags, + prefixes: entity.settings.prefixes, + } + } }; export function exportEntityToObject(entityInstance: StorageEntity, entityName: string): Record {