@@ -26,15 +26,23 @@ type MigratablePages = Omit<Pages, "pages" | "folders"> & {
2626} ;
2727
2828const toMap = < Item extends { id : string } > (
29- items : Item [ ] | Record < Item [ "id" ] , Item > | Map < Item [ "id" ] , Item >
29+ items : Item [ ] | Record < Item [ "id" ] , Item > | Map < Item [ "id" ] , Item > ,
30+ normalizeItem : ( item : Item ) => Item = ( item ) => item
3031) => {
3132 if ( items instanceof Map ) {
32- return items ;
33+ return new Map (
34+ Array . from ( items , ( [ id , item ] ) => [ id , normalizeItem ( item ) ] )
35+ ) ;
3336 }
3437 const list : Item [ ] = Array . isArray ( items ) ? items : Object . values ( items ) ;
35- return new Map ( list . map ( ( item ) => [ item . id , item ] ) ) ;
38+ return new Map ( list . map ( ( item ) => [ item . id , normalizeItem ( item ) ] ) ) ;
3639} ;
3740
41+ const normalizePage = ( page : Page ) : Page => ( {
42+ ...page ,
43+ meta : page . meta ?? { } ,
44+ } ) ;
45+
3846const isLegacyPages = ( pages : unknown ) : pages is LegacyPages => {
3947 if ( typeof pages !== "object" || pages === null ) {
4048 return false ;
@@ -86,7 +94,7 @@ export const migratePages = (pages: unknown): Pages => {
8694 redirects : pages . redirects ,
8795 homePageId : pages . homePageId ,
8896 rootFolderId : pages . rootFolderId ,
89- pages : toMap < Page > ( pages . pages ) ,
97+ pages : toMap < Page > ( pages . pages , normalizePage ) ,
9098 folders : toMap < Folder > ( pages . folders ) ,
9199 } ;
92100 }
@@ -96,15 +104,15 @@ export const migratePages = (pages: unknown): Pages => {
96104 }
97105
98106 const homePage : Page = {
99- ...pages . homePage ,
107+ ...normalizePage ( pages . homePage ) ,
100108 path : "" ,
101109 } ;
102110 const nextPages : Pages [ "pages" ] = new Map ( [ [ homePage . id , homePage ] ] ) ;
103111 for ( const page of pages . pages ) {
104112 if ( page . id === homePage . id ) {
105113 continue ;
106114 }
107- nextPages . set ( page . id , page ) ;
115+ nextPages . set ( page . id , normalizePage ( page ) ) ;
108116 }
109117
110118 const nextFolders : Pages [ "folders" ] = new Map ( ) ;
0 commit comments