import { Logger } from 'polar-shared/src/logger/Logger' ; import { forDict } from 'polar-shared/src/util/Functions' ; import { Hashcodes } from 'polar-shared/src/util/Hashcodes' ; import { Pagemarks } from './Pagemarks' ; import { isPresent } from 'polar-shared/src/Preconditions' ; import { IPageMeta } from "polar-shared/src/metadata/IPageMeta" ; const log = Logger . create ( ) ; export class PageMetas { public static upgrade ( pageMetas ) { pageMetas = Object . assign ( { } , pageMetas ) ; forDict ( pageMetas , ( key , pageMeta ) => { if ( ! isPresent ( pageMeta . textHighlights ) ) { pageMeta . textHighlights = { } ; } forDict ( pageMeta . textHighlights , ( _ , textHighlight ) => { if ( ! textHighlight . id ) { textHighlight . id = Hashcodes . createID ( textHighlight . rects ) ; } } ) ; if ( ! isPresent ( pageMeta . areaHighlights ) ) { pageMeta . areaHighlights = { } ; } if ( ! pageMeta . pagemarks ) { pageMeta . pagemarks = { } ; } if ( ! pageMeta . screenshots ) { pageMeta . screenshots = { } ; } if ( ! pageMeta . notes ) { pageMeta . notes = { } ; } if ( ! pageMeta . comments ) { pageMeta . comments = { } ; } if ( ! pageMeta . questions ) { pageMeta . questions = { } ; } if ( ! pageMeta . readingProgress ) { pageMeta . readingProgress = { } ; } if ( ! pageMeta . thumbnails ) { pageMeta . thumbnails = { } ; } if ( ! pageMeta . flashcards ) { pageMeta . flashcards = { } ; } pageMeta . pagemarks = Pagemarks . upgrade ( pageMeta . pagemarks ) ; } ) ; return pageMetas ; } }