1
1
import { Plugin , File } from 'metalsmith' ;
2
2
3
3
export default defaultValues ;
4
- export interface DefaultsSet {
5
- /** 1 or more glob patterns to match files. Defaults to `'**'` (all). */
6
- pattern ?: string ;
4
+
5
+ export type DefaultSetter < FileMeta , GlobalMeta > = ( data : FileMeta , metadata : GlobalMeta ) => any
6
+ export interface DefaultsSet < FileMeta = File , GlobalMeta = { [ key : string ] : any } > {
7
7
/** an object whose keys will be set as file metadata keys */
8
8
defaults : {
9
- [ key :string ] : ( ( data : File , metadata : { [ key : string ] : any } ) => any ) | string | boolean | number | Object ;
9
+ [ key :string ] : DefaultSetter < FileMeta , GlobalMeta > | string | boolean | number | Object ;
10
10
}
11
- /** Strategy to handle setting defaults to keys that are aleady defined. */
12
- strategy : 'keep' | 'overwrite'
11
+ /**
12
+ * 1 or more glob patterns to match files.
13
+ * @default '**'
14
+ **/
15
+ pattern ?: string ;
16
+ /**
17
+ * Strategy to handle setting defaults to keys that are aleady defined.
18
+ * @default 'keep'
19
+ */
20
+ strategy ?: 'keep' | 'overwrite'
13
21
}
14
- export type Options = DefaultsSet | DefaultsSet [ ]
22
+ export type Options < FileMeta , GlobalMeta > = DefaultsSet < FileMeta , GlobalMeta > | DefaultsSet < FileMeta , GlobalMeta > [ ]
15
23
/**
16
24
* Set `defaults` to file metadata matching `pattern`'s.
17
25
*
@@ -27,4 +35,4 @@ export type Options = DefaultsSet|DefaultsSet[]
27
35
}
28
36
}))
29
37
**/
30
- declare function defaultValues ( options : Options ) : Plugin ;
38
+ declare function defaultValues < FileMeta = File , GlobalMeta = { [ key : string ] : any } > ( options : Options < FileMeta , GlobalMeta > ) : Plugin ;
0 commit comments