blocket.js 1.0.10 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,3 +7,10 @@ import type { BlocketAd, BlocketQueryConfig } from '../types';
7
7
  * @returns Array of Blocket ads.
8
8
  */
9
9
  export declare function find(query: BlocketQueryConfig, fetchOptions?: FetchOptions<'json', any>): Promise<BlocketAd[]>;
10
+ /**
11
+ * Get details of a specific ad by its ID.
12
+ * @param adId Advertisement ID.
13
+ * @param fetchOptions Additional fetch options.
14
+ * @returns {Promise<BlocketAd | null>} Blocket ad details or null if not found.
15
+ */
16
+ export declare function findById(adId: string, fetchOptions?: FetchOptions<'json', any>): Promise<BlocketAd | null>;
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.find = find;
13
+ exports.findById = findById;
13
14
  const request_1 = require("./request");
14
15
  const config_1 = require("../config");
15
16
  /**
@@ -61,13 +62,17 @@ function find(query, fetchOptions) {
61
62
  * Get details of a specific ad by its ID.
62
63
  * @param adId Advertisement ID.
63
64
  * @param fetchOptions Additional fetch options.
64
- * @returns Blocket ad details.
65
+ * @returns {Promise<BlocketAd | null>} Blocket ad details or null if not found.
65
66
  */
66
- function getAd(adId, fetchOptions) {
67
+ function findById(adId, fetchOptions) {
67
68
  return __awaiter(this, void 0, void 0, function* () {
68
69
  const config = (0, config_1.getBaseConfig)();
69
- const url = `${config.apiBaseUrl}/ad/${adId}`;
70
- return yield (0, request_1.apiRequest)(url, fetchOptions);
70
+ const url = `${config.apiBaseUrl}/${adId}`;
71
+ const ad = yield (0, request_1.apiRequest)(url, fetchOptions);
72
+ if (!ad || !(ad === null || ad === void 0 ? void 0 : ad.data)) {
73
+ return null;
74
+ }
75
+ return ad.data;
71
76
  });
72
77
  }
73
78
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAoDA,oBAqBC;AAzED,uCAAuC;AACvC,sCAA6D;AAU7D;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,MAA0B;IAE1B,MAAM,OAAO,GAGT;QACF,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,MAAM,QAAQ,GAAsC,EAAE,CAAC;IAEvD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,GAA+B,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAA+B,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACtB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAA+B,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAoC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAsB,IAAI,CACxB,KAAyB,EACzB,YAAwC;;QAExC,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAU,EAAkB,MAAM,CAAC,UAAU,kBAClE,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,IACjC,YAAY,EACf,CAAC;QAEH,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,0EAA0E,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE,CAClG,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CAAA;AAED;;;;;GAKG;AACH,SAAe,KAAK,CAClB,IAAY,EACZ,YAAwC;;QAExC,MAAM,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,OAAO,IAAI,EAAE,CAAC;QAE9C,OAAO,MAAM,IAAA,oBAAU,EAAY,GAAG,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAqDA,oBAwBC;AAQD,4BAcC;AAnGD,uCAAuC;AACvC,sCAA6D;AAW7D;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,MAA0B;IAE1B,MAAM,OAAO,GAGT;QACF,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,MAAM,QAAQ,GAAsC,EAAE,CAAC;IAEvD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,GAA+B,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAA+B,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACtB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAA+B,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAoC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAsB,IAAI,CACxB,KAAyB,EACzB,YAAwC;;QAExC,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAA,0BAAiB,EAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAU,EAC/B,MAAM,CAAC,UAAU,kBAEf,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,IACjC,YAAY,EAElB,CAAC;QAEF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,0EAA0E,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,EAAE,CAClG,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CAAA;AAED;;;;;GAKG;AACH,SAAsB,QAAQ,CAC5B,IAAY,EACZ,YAAwC;;QAExC,MAAM,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAE3C,MAAM,EAAE,GAAG,MAAM,IAAA,oBAAU,EAAoB,GAAG,EAAE,YAAY,CAAC,CAAC;QAElE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,CAAA,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,EAAE,CAAC,IAAI,CAAC;IACjB,CAAC;CAAA"}
@@ -10,9 +10,15 @@ export type BlocketAccessToken = {
10
10
  /**
11
11
  * Blocket API response containing an array of ads.
12
12
  */
13
- export interface BlocketResponse {
13
+ export interface BlocketAdSearchResponse {
14
14
  data: BlocketAd[];
15
15
  }
16
+ /**
17
+ * Blocket API response containing a single ad.
18
+ */
19
+ export interface BlocketAdResponse {
20
+ data: BlocketAd;
21
+ }
16
22
  /**
17
23
  * Blocket advertisement object.
18
24
  */
@@ -5,7 +5,8 @@ import type { FetchOptions } from 'ofetch';
5
5
  import type {
6
6
  BlocketQueryParamsNative,
7
7
  BlocketAd,
8
- BlocketResponse,
8
+ BlocketAdResponse,
9
+ BlocketAdSearchResponse,
9
10
  BlocketQueryConfig,
10
11
  } from '../types';
11
12
 
@@ -59,10 +60,13 @@ export async function find(
59
60
  const config = getBaseConfig();
60
61
  const queryConfig = createQueryConfig(query);
61
62
 
62
- const response = await apiRequest<BlocketResponse>(config.apiBaseUrl, {
63
- query: remapQueryParams(queryConfig),
64
- ...fetchOptions,
65
- });
63
+ const response = await apiRequest<BlocketAdSearchResponse>(
64
+ config.apiBaseUrl,
65
+ {
66
+ query: remapQueryParams(queryConfig),
67
+ ...fetchOptions,
68
+ }
69
+ );
66
70
 
67
71
  if (!response || !response.data || !Array.isArray(response.data)) {
68
72
  throw new Error(
@@ -77,14 +81,20 @@ export async function find(
77
81
  * Get details of a specific ad by its ID.
78
82
  * @param adId Advertisement ID.
79
83
  * @param fetchOptions Additional fetch options.
80
- * @returns Blocket ad details.
84
+ * @returns {Promise<BlocketAd | null>} Blocket ad details or null if not found.
81
85
  */
82
- async function getAd(
86
+ export async function findById(
83
87
  adId: string,
84
88
  fetchOptions?: FetchOptions<'json', any>
85
- ): Promise<BlocketAd> {
89
+ ): Promise<BlocketAd | null> {
86
90
  const config = getBaseConfig();
87
- const url = `${config.apiBaseUrl}/ad/${adId}`;
91
+ const url = `${config.apiBaseUrl}/${adId}`;
92
+
93
+ const ad = await apiRequest<BlocketAdResponse>(url, fetchOptions);
94
+
95
+ if (!ad || !ad?.data) {
96
+ return null;
97
+ }
88
98
 
89
- return await apiRequest<BlocketAd>(url, fetchOptions);
99
+ return ad.data;
90
100
  }
@@ -12,10 +12,17 @@ export type BlocketAccessToken = {
12
12
  /**
13
13
  * Blocket API response containing an array of ads.
14
14
  */
15
- export interface BlocketResponse {
15
+ export interface BlocketAdSearchResponse {
16
16
  data: BlocketAd[];
17
17
  }
18
18
 
19
+ /**
20
+ * Blocket API response containing a single ad.
21
+ */
22
+ export interface BlocketAdResponse {
23
+ data: BlocketAd;
24
+ }
25
+
19
26
  /**
20
27
  * Blocket advertisement object.
21
28
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blocket.js",
3
- "version": "1.0.10",
3
+ "version": "1.1.0",
4
4
  "description": "A user-friendly js wrapper for blocket.se",
5
5
  "keywords": [
6
6
  "blocket",