@@ -6,7 +6,7 @@ import spacetime from 'spacetime';
6
6
import * as YAML from 'yaml' ;
7
7
8
8
import { DEFAULT_SETTINGS , FRONTMATTER_TO_ESCAPE , YAML_TOSTRING_OPTIONS } from 'constants/index' ;
9
- import { Export , Highlight , Library , Tag } from 'models/readwise' ;
9
+ import { Export , Highlight , Library , Tag , ReadwiseMetadata } from 'models/readwise' ;
10
10
import { PluginSettings } from 'models/settings' ;
11
11
import { YamlStringState } from 'models/yaml' ;
12
12
import ReadwiseApi from 'services/readwise-api' ;
@@ -32,12 +32,19 @@ export default class ReadwiseMirror extends Plugin {
32
32
}
33
33
34
34
// Before metadata is used
35
- public escapeFrontmatter ( metadata : any , fieldsToProcess : Array < string > ) : any {
35
+ public escapeFrontmatter ( metadata : ReadwiseMetadata , fieldsToProcess : Array < string > ) : ReadwiseMetadata {
36
36
// Copy the metadata object to avoid modifying the original
37
- const processedMetadata = { ...metadata } ;
37
+ const processedMetadata = { ...metadata } as ReadwiseMetadata ;
38
38
fieldsToProcess . forEach ( ( field ) => {
39
- if ( field in processedMetadata && processedMetadata [ field ] && typeof processedMetadata [ field ] === 'string' ) {
40
- processedMetadata [ field ] = this . escapeYamlValue ( processedMetadata [ field ] ) ;
39
+ if (
40
+ field in processedMetadata &&
41
+ processedMetadata [ field as keyof ReadwiseMetadata ] &&
42
+ typeof processedMetadata [ field as keyof ReadwiseMetadata ] === 'string'
43
+ ) {
44
+ const key = field as keyof ReadwiseMetadata ;
45
+ if ( typeof processedMetadata [ key ] === 'string' ) {
46
+ ( processedMetadata [ key ] as unknown ) = this . escapeYamlValue ( processedMetadata [ key ] as string ) ;
47
+ }
41
48
}
42
49
} ) ;
43
50
@@ -236,14 +243,14 @@ export default class ReadwiseMirror extends Plugin {
236
243
* - Protection is configured in plugin settings
237
244
* - Example protected fields: status, tags, categories
238
245
*/
239
- private async writeUpdatedFrontmatter ( file : TFile , updates : Record < string , any > ) : Promise < void > {
246
+ private async writeUpdatedFrontmatter ( file : TFile , updates : Record < string , unknown > ) : Promise < void > {
240
247
const { frontmatter, body } = await this . updateFrontmatter ( file , updates ) ;
241
248
242
249
// Combine and write back
243
250
await this . app . vault . modify ( file , `${ frontmatter } \n${ body } ` ) ;
244
251
}
245
252
246
- private async updateFrontmatter ( file : TFile , updates : Record < string , any > ) {
253
+ private async updateFrontmatter ( file : TFile , updates : Record < string , unknown > ) {
247
254
const content = await this . app . vault . read ( file ) ;
248
255
const frontmatterRegex = / ^ ( - - - \n [ \s \S ] * ?\n - - - ) / ;
249
256
const match = content . match ( frontmatterRegex ) ;
@@ -417,7 +424,7 @@ export default class ReadwiseMirror extends Plugin {
417
424
? `[[${ author } ]]`
418
425
: `` ;
419
426
420
- const metadata = {
427
+ const metadata : ReadwiseMetadata = {
421
428
id : user_book_id ,
422
429
title : title ,
423
430
sanitized_title : sanitizedTitle ,
0 commit comments