File tree Expand file tree Collapse file tree 2 files changed +43
-7
lines changed
Expand file tree Collapse file tree 2 files changed +43
-7
lines changed Original file line number Diff line number Diff line change @@ -19,8 +19,8 @@ declare namespace Instafeed {
1919 apiLimit ?: number ;
2020 before ?: ( ) => void ;
2121 debug ?: boolean ;
22- error ?: ( err : unknown ) => any ;
23- filter ?: ( item : InstagramDataItem ) => boolean ;
22+ error ?: ( err : Error ) => any ;
23+ filter ?: ( item : T ) => boolean ;
2424 limit ?: number ;
2525 mock ?: boolean ;
2626 render ?: ( item : T , options : Instafeed . InstafeedOptions ) => string ;
@@ -29,30 +29,39 @@ declare namespace Instafeed {
2929 target ?: string | Element ;
3030 template ?: string ;
3131 templateBoundaries ?: string [ ] ;
32- transform ?: ( item : InstagramDataItem ) => Record < string , unknown > ;
32+ transform ?: ( item : InstafeedDefaultItem ) => T ;
3333 }
3434
3535 interface InstafeedDefaultItem {
3636 caption : string ;
37- tags : string [ ] ;
3837 id : string ;
3938 image : string ;
4039 link : string ;
4140 model : InstagramDataItem ;
41+ tags : string [ ] ;
4242 timestamp : string ;
4343 type : string ;
4444 username : string ;
4545 }
4646
47- interface InstagramDataItem {
47+ type InstagramDataItem = {
4848 caption : string ;
4949 id : string ;
50- media_type : string ;
50+ media_type : "CAROUSEL_ALBUM" | "IMAGE" ;
5151 media_url : string ;
5252 permalink : string ;
5353 timestamp : string ;
5454 username : string ;
55- }
55+ } | {
56+ caption : string ;
57+ id : string ;
58+ media_type : "VIDEO" ;
59+ media_url : string ;
60+ permalink : string ;
61+ thumbnail_url : string ;
62+ timestamp : string ;
63+ username : string ;
64+ } ;
5665
5766 interface InstagramPaging {
5867 cursors : {
Original file line number Diff line number Diff line change 11import Instafeed = require( "instafeed.js" ) ;
2+ import { type InstafeedDefaultItem } from "instafeed.js" ;
23
34// $ExpectType Instafeed<InstafeedDefaultItem>
45new Instafeed ( { accessToken : "aa" } ) ;
@@ -11,3 +12,29 @@ new Instafeed({});
1112
1213// @ts -expect-error
1314new Instafeed ( ) ;
15+
16+ // test if transform return type is passed to other hooks
17+ new Instafeed ( {
18+ accessToken : "aa" ,
19+ transform ( item ) {
20+ return { ...item , extra : "foo" } ;
21+ } ,
22+ filter ( item ) {
23+ // $ExpectType string
24+ item . extra ;
25+ return true ;
26+ } ,
27+ } ) ;
28+
29+ interface CustomInstafeedItem extends InstafeedDefaultItem {
30+ extra : string ;
31+ }
32+
33+ // test if omiting expected extra field breaks compiler as expected
34+ new Instafeed < CustomInstafeedItem > ( {
35+ accessToken : "aa" ,
36+ // @ts -expect-error
37+ transform ( item ) {
38+ return item ;
39+ } ,
40+ } ) ;
You can’t perform that action at this time.
0 commit comments