@@ -10,7 +10,7 @@ import {
1010
1111const MIGRATION_PROP_NAME = "relation-migration" ;
1212
13- const migrateRelations = async ( ) : Promise < number > => {
13+ const migrateRelations = async ( dryRun = false ) : Promise < number > => {
1414 const authorized = getSetting ( "use-reified-relations" ) ;
1515 if ( ! authorized ) return 0 ;
1616 const processed = new Set < string > ( ) ;
@@ -20,40 +20,42 @@ const migrateRelations = async (): Promise<number> => {
2020 const key = `${ rel . source } :${ rel . relUid } :${ rel . target } ` ;
2121 if ( processed . has ( key ) ) continue ;
2222 processed . add ( key ) ;
23- const uid = ( await createReifiedRelation ( {
24- sourceUid : rel . source ,
25- destinationUid : rel . target ,
26- relationBlockUid : rel . relUid ,
27- } ) ) ! ;
28- const sourceProps = getBlockProps ( rel . source ) ;
29- const dgDataOrig = sourceProps [ DISCOURSE_GRAPH_PROP_NAME ] ;
30- const dgData : Record < string , json > =
31- dgDataOrig !== null &&
32- typeof dgDataOrig === "object" &&
33- ! Array . isArray ( dgDataOrig )
34- ? dgDataOrig
35- : { } ;
36- const migrationDataOrig = dgData [ MIGRATION_PROP_NAME ] ;
37- let migrationData : Record < string , json > =
38- migrationDataOrig !== null &&
39- typeof migrationDataOrig === "object" &&
40- ! Array . isArray ( migrationDataOrig )
41- ? migrationDataOrig
42- : { } ;
43- if ( migrationData [ uid ] !== undefined ) {
44- console . debug ( `reprocessed ${ key } ` ) ;
23+ if ( ! dryRun ) {
24+ const uid = ( await createReifiedRelation ( {
25+ sourceUid : rel . source ,
26+ destinationUid : rel . target ,
27+ relationBlockUid : rel . relUid ,
28+ } ) ) ! ;
29+ const sourceProps = getBlockProps ( rel . source ) ;
30+ const dgDataOrig = sourceProps [ DISCOURSE_GRAPH_PROP_NAME ] ;
31+ const dgData : Record < string , json > =
32+ dgDataOrig !== null &&
33+ typeof dgDataOrig === "object" &&
34+ ! Array . isArray ( dgDataOrig )
35+ ? dgDataOrig
36+ : { } ;
37+ const migrationDataOrig = dgData [ MIGRATION_PROP_NAME ] ;
38+ let migrationData : Record < string , json > =
39+ migrationDataOrig !== null &&
40+ typeof migrationDataOrig === "object" &&
41+ ! Array . isArray ( migrationDataOrig )
42+ ? migrationDataOrig
43+ : { } ;
44+ if ( migrationData [ uid ] !== undefined ) {
45+ console . debug ( `reprocessed ${ key } ` ) ;
46+ }
47+ // clean up old migration entries
48+ migrationData = Object . fromEntries (
49+ Object . entries ( migrationData ) . filter (
50+ ( [ uid ] ) =>
51+ window . roamAlphaAPI . q ( `[:find ?p :where [?p :block/uid "${ uid } "]]` )
52+ . length > 0 ,
53+ ) ,
54+ ) ;
55+ migrationData [ uid ] = new Date ( ) . valueOf ( ) ;
56+ dgData [ MIGRATION_PROP_NAME ] = migrationData ;
57+ setBlockProps ( rel . source , { [ DISCOURSE_GRAPH_PROP_NAME ] : dgData } ) ;
4558 }
46- // clean up old migration entries
47- migrationData = Object . fromEntries (
48- Object . entries ( migrationData ) . filter (
49- ( [ uid ] ) =>
50- window . roamAlphaAPI . q ( `[:find ?p :where [?p :block/uid "${ uid } "]]` )
51- . length > 0 ,
52- ) ,
53- ) ;
54- migrationData [ uid ] = new Date ( ) . valueOf ( ) ;
55- dgData [ MIGRATION_PROP_NAME ] = migrationData ;
56- setBlockProps ( rel . source , { [ DISCOURSE_GRAPH_PROP_NAME ] : dgData } ) ;
5759 numProcessed ++ ;
5860 }
5961 return numProcessed ;
0 commit comments