11import * as Dotenv from "dotenv" ;
2- import { AllowArbitraryParams , config , getJson , GoogleParameters } from "serpapi" ;
2+ import { AllowArbitraryParams , config , EngineParameters , getJson } from "serpapi" ;
33
44Dotenv . config ( ) ;
55const apiKey = process . env . API_KEY ;
@@ -8,12 +8,13 @@ const extractLinks = (results: { link: string }[]) =>
88 results . map ( ( r ) => r . link ) ;
99
1010const params = {
11+ engine : "google" ,
1112 q : "Coffee" ,
1213 api_key : apiKey ,
13- } satisfies AllowArbitraryParams < GoogleParameters > ;
14+ } satisfies AllowArbitraryParams < EngineParameters < "google" > > ;
1415
1516// Pagination (async/await)
16- let page1 = await getJson ( "google" , params ) ;
17+ let page1 = await getJson ( params ) ;
1718console . log (
1819 "First page links" ,
1920 extractLinks ( page1 . organic_results ) ,
@@ -25,7 +26,7 @@ console.log(
2526) ;
2627
2728// Pagination (callback)
28- getJson ( "google" , params , ( page1 ) => {
29+ getJson ( params , ( page1 ) => {
2930 console . log (
3031 "First page links" ,
3132 extractLinks ( page1 . organic_results ) ,
@@ -40,7 +41,7 @@ getJson("google", params, (page1) => {
4041
4142// Use global config
4243config . api_key = apiKey ;
43- page1 = await getJson ( "google" , { q : "Coffee" } ) ;
44+ page1 = await getJson ( { engine : "google" , q : "Coffee" } ) ;
4445page2 = await page1 . next ?.( ) ;
4546console . log (
4647 "Second page links" ,
@@ -50,7 +51,7 @@ console.log(
5051// Pagination loop (async/await)
5152let links : string [ ] = [ ] ;
5253let page ;
53- page = await getJson ( "google" , { q : "Coffee" } ) ;
54+ page = await getJson ( { engine : "google" , q : "Coffee" } ) ;
5455while ( page ) {
5556 links . push ( ...extractLinks ( page . organic_results ) ) ;
5657 if ( links . length >= 30 ) break ;
@@ -60,7 +61,7 @@ console.log(links);
6061
6162// Pagination loop (callback)
6263links = [ ] ;
63- getJson ( "google" , { q : "Coffee" } , ( page ) => {
64+ getJson ( { engine : "google" , q : "Coffee" } , ( page ) => {
6465 links . push ( ...extractLinks ( page . organic_results ) ) ;
6566 if ( links . length < 30 && page . next ) {
6667 page . next ( ) ;
0 commit comments