@b10cks/client 0.9.6 → 0.10.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.
- package/dist/index.d.ts +13 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -25
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,19 +2,30 @@ export declare class ApiClient {
|
|
|
2
2
|
private readonly baseUrl;
|
|
3
3
|
private readonly token;
|
|
4
4
|
private readonly vid;
|
|
5
|
-
private rv;
|
|
6
5
|
private readonly fetchClient;
|
|
6
|
+
private readonly getRvFn?;
|
|
7
|
+
private readonly setRvFn?;
|
|
7
8
|
constructor(options: B10cksApiClientOptions, url: URL);
|
|
8
9
|
get<T>(endpoint: Endpoint, params?: Omit<IBBaseQueryParams, 'token'>): Promise<T>;
|
|
9
10
|
getAll<T>(endpoint: Endpoint, params?: Omit<IBBaseQueryParams, 'token'>): Promise<T[]>;
|
|
11
|
+
setRv(value: string | number): void;
|
|
12
|
+
getRv(): string | number;
|
|
10
13
|
private buildUrl;
|
|
11
14
|
}
|
|
12
15
|
|
|
13
16
|
export declare interface B10cksApiClientOptions {
|
|
14
17
|
baseUrl: string;
|
|
15
18
|
token: string;
|
|
19
|
+
rv?: string | number;
|
|
16
20
|
version?: 'draft' | 'published';
|
|
17
21
|
fetchClient: FetchClient;
|
|
22
|
+
getRv?: () => string | number;
|
|
23
|
+
setRv?: (value: string | number) => void;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export declare interface B10cksApiClientRvOptions {
|
|
27
|
+
getRv?: () => string | number;
|
|
28
|
+
setRv?: (value: string | number) => void;
|
|
18
29
|
}
|
|
19
30
|
|
|
20
31
|
export declare type Endpoint = 'blocks' | 'contents' | `contents/${string}` | `datasources/${string}/entries` | 'datasources' | 'spaces/me';
|
|
@@ -39,6 +50,7 @@ export declare interface IBBlock {
|
|
|
39
50
|
|
|
40
51
|
declare interface IBCollectionResponse<T> {
|
|
41
52
|
data: T[];
|
|
53
|
+
rv?: string | number;
|
|
42
54
|
links: {
|
|
43
55
|
first: string | null;
|
|
44
56
|
last: string | null;
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));let a=0;class v{baseUrl;token;vid;fetchClient;getRvFn;setRvFn;constructor(e,s){this.baseUrl=e.baseUrl.endsWith("/")?e.baseUrl.slice(0,-1):e.baseUrl,this.token=e.token,this.fetchClient=e.fetchClient,this.getRvFn=e.getRv,this.setRvFn=e.setRv,this.vid=s.searchParams.get("b10cks_vid")||e.version||"published",this.setRv(s.searchParams.get("b10cks_rv")||e.rv||a)}async get(e,s={}){const t=this.buildUrl(e,{vid:this.vid,...s,rv:this.getRv(),token:this.token}),r=await this.fetchClient(t);return r.rv&&this.setRv(r.rv),r}async getAll(e,s={}){const t=await this.get(e,{...s,page:1});if(t.rv&&this.setRv(t.rv),!t.meta||t.meta.last_page<=1)return"data"in t?t.data:t;const r=Array.from({length:t.meta.last_page},(n,l)=>this.get(e,{...s,page:l+1}));return(await Promise.all(r)).flatMap(n=>n.data)}setRv(e){this.setRvFn?this.setRvFn(e):a=e}getRv(){return this.getRvFn?this.getRvFn():a}buildUrl(e,s){const t=new URL(`${this.baseUrl}/v1/${e}`);return Object.entries(s).forEach(([r,i])=>{i!=null&&t.searchParams.append(r,String(i))}),t.toString()}}exports.ApiClient=v;exports.types=h;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { B10cksApiClientOptions, IBBaseQueryParams, IBCollectionResponse, IBMeta, IBResponse, } from './types'\n\nexport type FetchClient = typeof fetch\nexport type Endpoint = 'blocks' | 'contents' | `contents/${string}` | `datasources/${string}/entries` | 'datasources' | 'spaces/me'\n\nexport * as types from './types'\nexport type { IBBlock, IBResponse, IBContent, B10cksApiClientOptions } from './types'\n\nexport class ApiClient {\n private readonly baseUrl: string\n private readonly token: string\n private readonly vid: string | null\n private
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type { B10cksApiClientOptions, IBBaseQueryParams, IBCollectionResponse, IBMeta, IBResponse, } from './types'\n\nexport type FetchClient = typeof fetch\nexport type Endpoint = 'blocks' | 'contents' | `contents/${string}` | `datasources/${string}/entries` | 'datasources' | 'spaces/me'\n\nexport interface B10cksApiClientRvOptions {\n getRv?: () => string | number\n setRv?: (value: string | number) => void\n}\n\nexport * as types from './types'\nexport type { IBBlock, IBResponse, IBContent, B10cksApiClientOptions } from './types'\nlet rv: string | number = 0\n\nexport class ApiClient {\n private readonly baseUrl: string\n private readonly token: string\n private readonly vid: string | null\n private readonly fetchClient: FetchClient\n private readonly getRvFn?: () => string | number\n private readonly setRvFn?: (value: string | number) => void\n\n constructor(options: B10cksApiClientOptions, url: URL) {\n this.baseUrl = options.baseUrl.endsWith('/') ? options.baseUrl.slice(0, -1) : options.baseUrl\n this.token = options.token\n this.fetchClient = options.fetchClient\n this.getRvFn = options.getRv\n this.setRvFn = options.setRv\n\n this.vid = url.searchParams.get('b10cks_vid') || options.version || 'published'\n this.setRv(url.searchParams.get('b10cks_rv') || options.rv || rv)\n }\n\n async get<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n ...params,\n rv: this.getRv(),\n token: this.token\n })\n\n const response = await this.fetchClient(url) as unknown as IBResponse<T>\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n return response as T\n }\n\n async getAll<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T[]> {\n const response = await this.get<IBCollectionResponse<T> & { meta?: IBMeta }>(\n endpoint,\n { ...params, page: 1 }\n )\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n if (!response.meta || response.meta.last_page <= 1) {\n return 'data' in response ? response.data : (response as unknown as T[])\n }\n\n const pageRequests = Array.from(\n { length: response.meta.last_page },\n (_, i) => this.get<IBCollectionResponse<T>>(endpoint, { ...params, page: i + 1 })\n )\n\n const allResponses = await Promise.all(pageRequests)\n\n return allResponses.flatMap(r => r.data)\n }\n\n setRv(value: string | number) {\n if (this.setRvFn) {\n this.setRvFn(value)\n } else {\n rv = value\n }\n }\n\n getRv() {\n if (this.getRvFn) {\n return this.getRvFn()\n }\n return rv\n }\n\n private buildUrl(endpoint: string, params: Record<string, unknown>): string {\n const url = new URL(`${this.baseUrl}/v1/${endpoint}`)\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value))\n }\n })\n\n return url.toString()\n }\n}"],"names":["rv","ApiClient","options","url","endpoint","params","response","pageRequests","_","i","r","value","key"],"mappings":"mLAYA,IAAIA,EAAsB,EAEnB,MAAMC,CAAU,CACJ,QACA,MACA,IACA,YACA,QACA,QAEjB,YAAYC,EAAiCC,EAAU,CACrD,KAAK,QAAUD,EAAQ,QAAQ,SAAS,GAAG,EAAIA,EAAQ,QAAQ,MAAM,EAAG,EAAE,EAAIA,EAAQ,QACtF,KAAK,MAAQA,EAAQ,MACrB,KAAK,YAAcA,EAAQ,YAC3B,KAAK,QAAUA,EAAQ,MACvB,KAAK,QAAUA,EAAQ,MAEvB,KAAK,IAAMC,EAAI,aAAa,IAAI,YAAY,GAAKD,EAAQ,SAAW,YACpE,KAAK,MAAMC,EAAI,aAAa,IAAI,WAAW,GAAKD,EAAQ,IAAMF,CAAE,CAClE,CAEA,MAAM,IAAOI,EAAoBC,EAA2C,GAAgB,CAC1F,MAAMF,EAAM,KAAK,SAASC,EAAU,CAClC,IAAK,KAAK,IACV,GAAGC,EACH,GAAI,KAAK,MAAA,EACT,MAAO,KAAK,KAAA,CACb,EAEKC,EAAW,MAAM,KAAK,YAAYH,CAAG,EAC3C,OAAIG,EAAS,IACX,KAAK,MAAMA,EAAS,EAAE,EAGjBA,CACT,CAEA,MAAM,OAAUF,EAAoBC,EAA2C,GAAkB,CAC/F,MAAMC,EAAW,MAAM,KAAK,IAC1BF,EACA,CAAE,GAAGC,EAAQ,KAAM,CAAA,CAAE,EAMvB,GAJIC,EAAS,IACX,KAAK,MAAMA,EAAS,EAAE,EAGpB,CAACA,EAAS,MAAQA,EAAS,KAAK,WAAa,EAC/C,MAAO,SAAUA,EAAWA,EAAS,KAAQA,EAG/C,MAAMC,EAAe,MAAM,KACzB,CAAE,OAAQD,EAAS,KAAK,SAAA,EACxB,CAACE,EAAGC,IAAM,KAAK,IAA6BL,EAAU,CAAE,GAAGC,EAAQ,KAAMI,EAAI,CAAA,CAAG,CAAA,EAKlF,OAFqB,MAAM,QAAQ,IAAIF,CAAY,GAE/B,QAAQG,GAAKA,EAAE,IAAI,CACzC,CAEA,MAAMC,EAAwB,CACxB,KAAK,QACP,KAAK,QAAQA,CAAK,EAElBX,EAAKW,CAET,CAEA,OAAQ,CACN,OAAI,KAAK,QACA,KAAK,QAAA,EAEPX,CACT,CAEQ,SAASI,EAAkBC,EAAyC,CAC1E,MAAMF,EAAM,IAAI,IAAI,GAAG,KAAK,OAAO,OAAOC,CAAQ,EAAE,EAEpD,cAAO,QAAQC,CAAM,EAAE,QAAQ,CAAC,CAACO,EAAKD,CAAK,IAAM,CACpBA,GAAU,MACnCR,EAAI,aAAa,OAAOS,EAAK,OAAOD,CAAK,CAAC,CAE9C,CAAC,EAEMR,EAAI,SAAA,CACb,CACF"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,46 +1,54 @@
|
|
|
1
|
-
const
|
|
1
|
+
const v = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2
2
|
__proto__: null
|
|
3
3
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
4
|
-
|
|
4
|
+
let a = 0;
|
|
5
|
+
class c {
|
|
5
6
|
baseUrl;
|
|
6
7
|
token;
|
|
7
8
|
vid;
|
|
8
|
-
rv = 0;
|
|
9
9
|
fetchClient;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
getRvFn;
|
|
11
|
+
setRvFn;
|
|
12
|
+
constructor(t, s) {
|
|
13
|
+
this.baseUrl = t.baseUrl.endsWith("/") ? t.baseUrl.slice(0, -1) : t.baseUrl, this.token = t.token, this.fetchClient = t.fetchClient, this.getRvFn = t.getRv, this.setRvFn = t.setRv, this.vid = s.searchParams.get("b10cks_vid") || t.version || "published", this.setRv(s.searchParams.get("b10cks_rv") || t.rv || a);
|
|
12
14
|
}
|
|
13
|
-
async get(
|
|
14
|
-
const
|
|
15
|
+
async get(t, s = {}) {
|
|
16
|
+
const e = this.buildUrl(t, {
|
|
15
17
|
vid: this.vid,
|
|
16
18
|
...s,
|
|
17
|
-
rv: this.
|
|
19
|
+
rv: this.getRv(),
|
|
18
20
|
token: this.token
|
|
19
|
-
}), r = await this.fetchClient(
|
|
20
|
-
return r.rv &&
|
|
21
|
+
}), r = await this.fetchClient(e);
|
|
22
|
+
return r.rv && this.setRv(r.rv), r;
|
|
21
23
|
}
|
|
22
|
-
async getAll(
|
|
23
|
-
const
|
|
24
|
-
|
|
24
|
+
async getAll(t, s = {}) {
|
|
25
|
+
const e = await this.get(
|
|
26
|
+
t,
|
|
25
27
|
{ ...s, page: 1 }
|
|
26
28
|
);
|
|
27
|
-
if (!
|
|
28
|
-
return "data" in
|
|
29
|
+
if (e.rv && this.setRv(e.rv), !e.meta || e.meta.last_page <= 1)
|
|
30
|
+
return "data" in e ? e.data : e;
|
|
29
31
|
const r = Array.from(
|
|
30
|
-
{ length:
|
|
31
|
-
(
|
|
32
|
+
{ length: e.meta.last_page },
|
|
33
|
+
(n, l) => this.get(t, { ...s, page: l + 1 })
|
|
32
34
|
);
|
|
33
|
-
return (await Promise.all(r)).flatMap((
|
|
35
|
+
return (await Promise.all(r)).flatMap((n) => n.data);
|
|
34
36
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
setRv(t) {
|
|
38
|
+
this.setRvFn ? this.setRvFn(t) : a = t;
|
|
39
|
+
}
|
|
40
|
+
getRv() {
|
|
41
|
+
return this.getRvFn ? this.getRvFn() : a;
|
|
42
|
+
}
|
|
43
|
+
buildUrl(t, s) {
|
|
44
|
+
const e = new URL(`${this.baseUrl}/v1/${t}`);
|
|
45
|
+
return Object.entries(s).forEach(([r, i]) => {
|
|
46
|
+
i != null && e.searchParams.append(r, String(i));
|
|
47
|
+
}), e.toString();
|
|
40
48
|
}
|
|
41
49
|
}
|
|
42
50
|
export {
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
c as ApiClient,
|
|
52
|
+
v as types
|
|
45
53
|
};
|
|
46
54
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { B10cksApiClientOptions, IBBaseQueryParams, IBCollectionResponse, IBMeta, IBResponse, } from './types'\n\nexport type FetchClient = typeof fetch\nexport type Endpoint = 'blocks' | 'contents' | `contents/${string}` | `datasources/${string}/entries` | 'datasources' | 'spaces/me'\n\nexport * as types from './types'\nexport type { IBBlock, IBResponse, IBContent, B10cksApiClientOptions } from './types'\n\nexport class ApiClient {\n private readonly baseUrl: string\n private readonly token: string\n private readonly vid: string | null\n private
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { B10cksApiClientOptions, IBBaseQueryParams, IBCollectionResponse, IBMeta, IBResponse, } from './types'\n\nexport type FetchClient = typeof fetch\nexport type Endpoint = 'blocks' | 'contents' | `contents/${string}` | `datasources/${string}/entries` | 'datasources' | 'spaces/me'\n\nexport interface B10cksApiClientRvOptions {\n getRv?: () => string | number\n setRv?: (value: string | number) => void\n}\n\nexport * as types from './types'\nexport type { IBBlock, IBResponse, IBContent, B10cksApiClientOptions } from './types'\nlet rv: string | number = 0\n\nexport class ApiClient {\n private readonly baseUrl: string\n private readonly token: string\n private readonly vid: string | null\n private readonly fetchClient: FetchClient\n private readonly getRvFn?: () => string | number\n private readonly setRvFn?: (value: string | number) => void\n\n constructor(options: B10cksApiClientOptions, url: URL) {\n this.baseUrl = options.baseUrl.endsWith('/') ? options.baseUrl.slice(0, -1) : options.baseUrl\n this.token = options.token\n this.fetchClient = options.fetchClient\n this.getRvFn = options.getRv\n this.setRvFn = options.setRv\n\n this.vid = url.searchParams.get('b10cks_vid') || options.version || 'published'\n this.setRv(url.searchParams.get('b10cks_rv') || options.rv || rv)\n }\n\n async get<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T> {\n const url = this.buildUrl(endpoint, {\n vid: this.vid,\n ...params,\n rv: this.getRv(),\n token: this.token\n })\n\n const response = await this.fetchClient(url) as unknown as IBResponse<T>\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n return response as T\n }\n\n async getAll<T>(endpoint: Endpoint, params: Omit<IBBaseQueryParams, 'token'> = {}): Promise<T[]> {\n const response = await this.get<IBCollectionResponse<T> & { meta?: IBMeta }>(\n endpoint,\n { ...params, page: 1 }\n )\n if (response.rv) {\n this.setRv(response.rv)\n }\n\n if (!response.meta || response.meta.last_page <= 1) {\n return 'data' in response ? response.data : (response as unknown as T[])\n }\n\n const pageRequests = Array.from(\n { length: response.meta.last_page },\n (_, i) => this.get<IBCollectionResponse<T>>(endpoint, { ...params, page: i + 1 })\n )\n\n const allResponses = await Promise.all(pageRequests)\n\n return allResponses.flatMap(r => r.data)\n }\n\n setRv(value: string | number) {\n if (this.setRvFn) {\n this.setRvFn(value)\n } else {\n rv = value\n }\n }\n\n getRv() {\n if (this.getRvFn) {\n return this.getRvFn()\n }\n return rv\n }\n\n private buildUrl(endpoint: string, params: Record<string, unknown>): string {\n const url = new URL(`${this.baseUrl}/v1/${endpoint}`)\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n url.searchParams.append(key, String(value))\n }\n })\n\n return url.toString()\n }\n}"],"names":["rv","ApiClient","options","url","endpoint","params","response","pageRequests","_","i","r","value","key"],"mappings":";;;AAYA,IAAIA,IAAsB;AAEnB,MAAMC,EAAU;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEjB,YAAYC,GAAiCC,GAAU;AACrD,SAAK,UAAUD,EAAQ,QAAQ,SAAS,GAAG,IAAIA,EAAQ,QAAQ,MAAM,GAAG,EAAE,IAAIA,EAAQ,SACtF,KAAK,QAAQA,EAAQ,OACrB,KAAK,cAAcA,EAAQ,aAC3B,KAAK,UAAUA,EAAQ,OACvB,KAAK,UAAUA,EAAQ,OAEvB,KAAK,MAAMC,EAAI,aAAa,IAAI,YAAY,KAAKD,EAAQ,WAAW,aACpE,KAAK,MAAMC,EAAI,aAAa,IAAI,WAAW,KAAKD,EAAQ,MAAMF,CAAE;AAAA,EAClE;AAAA,EAEA,MAAM,IAAOI,GAAoBC,IAA2C,IAAgB;AAC1F,UAAMF,IAAM,KAAK,SAASC,GAAU;AAAA,MAClC,KAAK,KAAK;AAAA,MACV,GAAGC;AAAA,MACH,IAAI,KAAK,MAAA;AAAA,MACT,OAAO,KAAK;AAAA,IAAA,CACb,GAEKC,IAAW,MAAM,KAAK,YAAYH,CAAG;AAC3C,WAAIG,EAAS,MACX,KAAK,MAAMA,EAAS,EAAE,GAGjBA;AAAA,EACT;AAAA,EAEA,MAAM,OAAUF,GAAoBC,IAA2C,IAAkB;AAC/F,UAAMC,IAAW,MAAM,KAAK;AAAA,MAC1BF;AAAA,MACA,EAAE,GAAGC,GAAQ,MAAM,EAAA;AAAA,IAAE;AAMvB,QAJIC,EAAS,MACX,KAAK,MAAMA,EAAS,EAAE,GAGpB,CAACA,EAAS,QAAQA,EAAS,KAAK,aAAa;AAC/C,aAAO,UAAUA,IAAWA,EAAS,OAAQA;AAG/C,UAAMC,IAAe,MAAM;AAAA,MACzB,EAAE,QAAQD,EAAS,KAAK,UAAA;AAAA,MACxB,CAACE,GAAGC,MAAM,KAAK,IAA6BL,GAAU,EAAE,GAAGC,GAAQ,MAAMI,IAAI,EAAA,CAAG;AAAA,IAAA;AAKlF,YAFqB,MAAM,QAAQ,IAAIF,CAAY,GAE/B,QAAQ,CAAAG,MAAKA,EAAE,IAAI;AAAA,EACzC;AAAA,EAEA,MAAMC,GAAwB;AAC5B,IAAI,KAAK,UACP,KAAK,QAAQA,CAAK,IAElBX,IAAKW;AAAA,EAET;AAAA,EAEA,QAAQ;AACN,WAAI,KAAK,UACA,KAAK,QAAA,IAEPX;AAAA,EACT;AAAA,EAEQ,SAASI,GAAkBC,GAAyC;AAC1E,UAAMF,IAAM,IAAI,IAAI,GAAG,KAAK,OAAO,OAAOC,CAAQ,EAAE;AAEpD,kBAAO,QAAQC,CAAM,EAAE,QAAQ,CAAC,CAACO,GAAKD,CAAK,MAAM;AAC/C,MAA2BA,KAAU,QACnCR,EAAI,aAAa,OAAOS,GAAK,OAAOD,CAAK,CAAC;AAAA,IAE9C,CAAC,GAEMR,EAAI,SAAA;AAAA,EACb;AACF;"}
|