chore: fix ContentType usage (#2353)
* chore: fix ContentType usage * chore: fix specs
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { ContentType } from '@standardnotes/common'
|
||||
import { ContentType } from '@standardnotes/domain-core'
|
||||
import { AlertService, InternalEventBusInterface, ItemRelationshipDirection } from '@standardnotes/services'
|
||||
import { ItemManager } from './ItemManager'
|
||||
import { PayloadManager } from '../Payloads/PayloadManager'
|
||||
@@ -65,7 +65,7 @@ describe('itemManager', () => {
|
||||
return new Models.SNTag(
|
||||
new Models.DecryptedPayload({
|
||||
uuid: String(Math.random()),
|
||||
content_type: ContentType.Tag,
|
||||
content_type: ContentType.TYPES.Tag,
|
||||
content: Models.FillItemContent<Models.TagContent>({
|
||||
title: title,
|
||||
}),
|
||||
@@ -78,7 +78,7 @@ describe('itemManager', () => {
|
||||
return new Models.FileItem(
|
||||
new Models.DecryptedPayload({
|
||||
uuid: String(Math.random()),
|
||||
content_type: ContentType.File,
|
||||
content_type: ContentType.TYPES.File,
|
||||
content: Models.FillItemContent<Models.FileContent>({
|
||||
name: name,
|
||||
}),
|
||||
@@ -91,7 +91,7 @@ describe('itemManager', () => {
|
||||
it('deleted payloads should map to removed items', async () => {
|
||||
const payload = new DeletedPayload({
|
||||
uuid: String(Math.random()),
|
||||
content_type: ContentType.Note,
|
||||
content_type: ContentType.TYPES.Note,
|
||||
content: undefined,
|
||||
deleted: true,
|
||||
dirty: true,
|
||||
@@ -110,7 +110,7 @@ describe('itemManager', () => {
|
||||
it('decrypted items who become encrypted should be removed from ui', async () => {
|
||||
const decrypted = new DecryptedPayload({
|
||||
uuid: String(Math.random()),
|
||||
content_type: ContentType.Note,
|
||||
content_type: ContentType.TYPES.Note,
|
||||
content: FillItemContent<NoteContent>({
|
||||
title: 'foo',
|
||||
}),
|
||||
@@ -372,7 +372,7 @@ describe('itemManager', () => {
|
||||
it('create template item', async () => {
|
||||
setupRandomUuid()
|
||||
|
||||
const item = await itemManager.createTemplateItem(ContentType.Note, {
|
||||
const item = await itemManager.createTemplateItem(ContentType.TYPES.Note, {
|
||||
title: 'hello',
|
||||
references: [],
|
||||
})
|
||||
@@ -386,7 +386,7 @@ describe('itemManager', () => {
|
||||
it('isTemplateItem return the correct value', async () => {
|
||||
setupRandomUuid()
|
||||
|
||||
const item = await itemManager.createTemplateItem(ContentType.Note, {
|
||||
const item = await itemManager.createTemplateItem(ContentType.TYPES.Note, {
|
||||
title: 'hello',
|
||||
references: [],
|
||||
})
|
||||
@@ -511,9 +511,9 @@ describe('itemManager', () => {
|
||||
expect(view2).toBeTruthy()
|
||||
expect(view3).toBeTruthy()
|
||||
|
||||
expect(view1.content_type).toEqual(ContentType.SmartView)
|
||||
expect(view2.content_type).toEqual(ContentType.SmartView)
|
||||
expect(view3.content_type).toEqual(ContentType.SmartView)
|
||||
expect(view1.content_type).toEqual(ContentType.TYPES.SmartView)
|
||||
expect(view2.content_type).toEqual(ContentType.TYPES.SmartView)
|
||||
expect(view3.content_type).toEqual(ContentType.TYPES.SmartView)
|
||||
})
|
||||
|
||||
it('lets me use a smart view', async () => {
|
||||
@@ -550,9 +550,9 @@ describe('itemManager', () => {
|
||||
expect(tag2).toBeTruthy()
|
||||
expect(tag3).toBeTruthy()
|
||||
|
||||
expect(tag1.content_type).toEqual(ContentType.SmartView)
|
||||
expect(tag2.content_type).toEqual(ContentType.SmartView)
|
||||
expect(tag3.content_type).toEqual(ContentType.SmartView)
|
||||
expect(tag1.content_type).toEqual(ContentType.TYPES.SmartView)
|
||||
expect(tag2.content_type).toEqual(ContentType.TYPES.SmartView)
|
||||
expect(tag3.content_type).toEqual(ContentType.TYPES.SmartView)
|
||||
})
|
||||
|
||||
it('will create smart view or tags from the generic method', async () => {
|
||||
@@ -561,8 +561,8 @@ describe('itemManager', () => {
|
||||
const someTag = await mutator.createTagOrSmartView('some-tag')
|
||||
const someView = await mutator.createTagOrSmartView(VIEW_LONG)
|
||||
|
||||
expect(someTag.content_type).toEqual(ContentType.Tag)
|
||||
expect(someView.content_type).toEqual(ContentType.SmartView)
|
||||
expect(someTag.content_type).toEqual(ContentType.TYPES.Tag)
|
||||
expect(someView.content_type).toEqual(ContentType.TYPES.SmartView)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { ContentType } from '@standardnotes/common'
|
||||
import { assert, naturalSort, removeFromArray, UuidGenerator, Uuids } from '@standardnotes/utils'
|
||||
import { SNItemsKey } from '@standardnotes/encryption'
|
||||
import { PayloadManager } from '../Payloads/PayloadManager'
|
||||
@@ -8,9 +7,10 @@ import * as Models from '@standardnotes/models'
|
||||
import * as Services from '@standardnotes/services'
|
||||
import { PayloadManagerChangeData } from '../Payloads'
|
||||
import { ItemRelationshipDirection } from '@standardnotes/services'
|
||||
import { ContentType } from '@standardnotes/domain-core'
|
||||
|
||||
type ItemsChangeObserver<I extends Models.DecryptedItemInterface = Models.DecryptedItemInterface> = {
|
||||
contentType: ContentType[]
|
||||
contentType: string[]
|
||||
callback: Services.ItemManagerChangeObserverCallback<I>
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
this.payloadManager = payloadManager
|
||||
this.systemSmartViews = this.rebuildSystemSmartViews({})
|
||||
this.createCollection()
|
||||
this.unsubChangeObserver = this.payloadManager.addObserver(ContentType.Any, this.setPayloads.bind(this))
|
||||
this.unsubChangeObserver = this.payloadManager.addObserver(ContentType.TYPES.Any, this.setPayloads.bind(this))
|
||||
}
|
||||
|
||||
private rebuildSystemSmartViews(criteria: Models.NotesAndFilesDisplayOptions): Models.SmartView[] {
|
||||
@@ -65,34 +65,34 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
|
||||
this.navigationDisplayController = new Models.ItemDisplayController(
|
||||
this.collection,
|
||||
[ContentType.Note, ContentType.File],
|
||||
[ContentType.TYPES.Note, ContentType.TYPES.File],
|
||||
{
|
||||
sortBy: 'created_at',
|
||||
sortDirection: 'dsc',
|
||||
hiddenContentTypes: [],
|
||||
},
|
||||
)
|
||||
this.tagDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.Tag], {
|
||||
this.tagDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.TYPES.Tag], {
|
||||
sortBy: 'title',
|
||||
sortDirection: 'asc',
|
||||
})
|
||||
this.itemsKeyDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.ItemsKey], {
|
||||
this.itemsKeyDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.TYPES.ItemsKey], {
|
||||
sortBy: 'created_at',
|
||||
sortDirection: 'asc',
|
||||
})
|
||||
this.componentDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.Component], {
|
||||
this.componentDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.TYPES.Component], {
|
||||
sortBy: 'created_at',
|
||||
sortDirection: 'asc',
|
||||
})
|
||||
this.themeDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.Theme], {
|
||||
this.themeDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.TYPES.Theme], {
|
||||
sortBy: 'title',
|
||||
sortDirection: 'asc',
|
||||
})
|
||||
this.smartViewDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.SmartView], {
|
||||
this.smartViewDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.TYPES.SmartView], {
|
||||
sortBy: 'title',
|
||||
sortDirection: 'asc',
|
||||
})
|
||||
this.fileDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.File], {
|
||||
this.fileDisplayController = new Models.ItemDisplayController(this.collection, [ContentType.TYPES.File], {
|
||||
sortBy: 'title',
|
||||
sortDirection: 'asc',
|
||||
})
|
||||
@@ -177,7 +177,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
...{
|
||||
tags: mostRecentVersionOfTags,
|
||||
views: mostRecentVersionOfViews,
|
||||
hiddenContentTypes: [ContentType.Tag],
|
||||
hiddenContentTypes: [ContentType.TYPES.Tag],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
}
|
||||
|
||||
public addObserver<I extends Models.DecryptedItemInterface = Models.DecryptedItemInterface>(
|
||||
contentType: ContentType | ContentType[],
|
||||
contentType: string | string[],
|
||||
callback: Services.ItemManagerChangeObserverCallback<I>,
|
||||
): () => void {
|
||||
if (!Array.isArray(contentType)) {
|
||||
@@ -349,7 +349,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
*/
|
||||
public itemsReferencingItem<I extends Models.DecryptedItemInterface = Models.DecryptedItemInterface>(
|
||||
itemToLookupUuidFor: { uuid: UuidString },
|
||||
contentType?: ContentType,
|
||||
contentType?: string,
|
||||
): I[] {
|
||||
const uuids = this.collection.uuidsThatReferenceUuid(itemToLookupUuidFor.uuid)
|
||||
let referencing = this.findItems<I>(uuids)
|
||||
@@ -366,7 +366,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
*/
|
||||
public referencesForItem<I extends Models.DecryptedItemInterface = Models.DecryptedItemInterface>(
|
||||
itemToLookupUuidFor: Models.DecryptedItemInterface,
|
||||
contentType?: ContentType,
|
||||
contentType?: string,
|
||||
): I[] {
|
||||
const item = this.findSureItem<I>(itemToLookupUuidFor.uuid)
|
||||
const uuids = item.references.map((ref) => ref.uuid)
|
||||
@@ -386,7 +386,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
return Models.CreateItemFromPayload(payload)
|
||||
}
|
||||
|
||||
const affectedContentTypes = new Set<ContentType>()
|
||||
const affectedContentTypes = new Set<string>()
|
||||
|
||||
const changedItems = changed.map((p) => {
|
||||
affectedContentTypes.add(p.content_type)
|
||||
@@ -490,9 +490,9 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
source: Models.PayloadEmitSource,
|
||||
sourceKey?: string,
|
||||
) {
|
||||
const filter = <I extends Models.ItemInterface>(items: I[], types: ContentType[]) => {
|
||||
const filter = <I extends Models.ItemInterface>(items: I[], types: string[]) => {
|
||||
return items.filter((item) => {
|
||||
return types.includes(ContentType.Any) || types.includes(item.content_type)
|
||||
return types.includes(ContentType.TYPES.Any) || types.includes(item.content_type)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -536,7 +536,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
public createTemplateItem<
|
||||
C extends Models.ItemContent = Models.ItemContent,
|
||||
I extends Models.DecryptedItemInterface<C> = Models.DecryptedItemInterface<C>,
|
||||
>(contentType: ContentType, content?: C, override?: Partial<Models.DecryptedPayload<C>>): I {
|
||||
>(contentType: string, content?: C, override?: Partial<Models.DecryptedPayload<C>>): I {
|
||||
const payload = new Models.DecryptedPayload<C>({
|
||||
uuid: UuidGenerator.GenerateUuid(),
|
||||
content_type: contentType,
|
||||
@@ -556,23 +556,23 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
return !this.findItem(item.uuid)
|
||||
}
|
||||
|
||||
public getItems<T extends Models.DecryptedItemInterface>(contentType: ContentType | ContentType[]): T[] {
|
||||
public getItems<T extends Models.DecryptedItemInterface>(contentType: string | string[]): T[] {
|
||||
return this.collection.allDecrypted<T>(contentType)
|
||||
}
|
||||
|
||||
getAnyItems(contentType: ContentType | ContentType[]): Models.ItemInterface[] {
|
||||
getAnyItems(contentType: string | string[]): Models.ItemInterface[] {
|
||||
return this.collection.all(contentType)
|
||||
}
|
||||
|
||||
public itemsMatchingPredicate<T extends Models.DecryptedItemInterface>(
|
||||
contentType: ContentType,
|
||||
contentType: string,
|
||||
predicate: Models.PredicateInterface<T>,
|
||||
): T[] {
|
||||
return this.itemsMatchingPredicates(contentType, [predicate])
|
||||
}
|
||||
|
||||
public itemsMatchingPredicates<T extends Models.DecryptedItemInterface>(
|
||||
contentType: ContentType,
|
||||
contentType: string,
|
||||
predicates: Models.PredicateInterface<T>[],
|
||||
): T[] {
|
||||
const subItems = this.getItems<T>(contentType)
|
||||
@@ -687,7 +687,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
return []
|
||||
}
|
||||
|
||||
const tags = this.collection.elementsReferencingElement(tag, ContentType.Tag) as Models.SNTag[]
|
||||
const tags = this.collection.elementsReferencingElement(tag, ContentType.TYPES.Tag) as Models.SNTag[]
|
||||
|
||||
return tags.filter((tag) => tag.parentId === itemToLookupUuidFor.uuid)
|
||||
}
|
||||
@@ -736,7 +736,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
public getSortedTagsForItem(item: Models.DecryptedItemInterface<Models.ItemContent>): Models.SNTag[] {
|
||||
return naturalSort(
|
||||
this.itemsReferencingItem(item).filter((ref) => {
|
||||
return ref?.content_type === ContentType.Tag
|
||||
return ref?.content_type === ContentType.TYPES.Tag
|
||||
}) as Models.SNTag[],
|
||||
'title',
|
||||
)
|
||||
@@ -753,7 +753,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
|
||||
return Models.notesAndFilesMatchingOptions(
|
||||
criteria,
|
||||
this.collection.allDecrypted(ContentType.Note),
|
||||
this.collection.allDecrypted(ContentType.TYPES.Note),
|
||||
this.collection,
|
||||
) as Models.SNNote[]
|
||||
}
|
||||
@@ -790,7 +790,7 @@ export class ItemManager extends Services.AbstractService implements Services.It
|
||||
* The number of notes currently managed
|
||||
*/
|
||||
public get noteCount(): number {
|
||||
return this.collection.all(ContentType.Note).length
|
||||
return this.collection.all(ContentType.TYPES.Note).length
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user