Skip to content

Commit 9be405c

Browse files
committed
chore: update NPM packages
1 parent 3841e4e commit 9be405c

File tree

13 files changed

+915
-817
lines changed

13 files changed

+915
-817
lines changed

src/Umbraco.Community.SimpleDashboards.Client/package-lock.json

Lines changed: 613 additions & 741 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Umbraco.Community.SimpleDashboards.Client/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
},
1212
"devDependencies": {
1313
"lit": "^3.3.1",
14-
"@umbraco-cms/backoffice": "^16.3.1",
14+
"@umbraco-cms/backoffice": "^17.0.0-rc4",
1515
"typescript": "^5.9.3",
16-
"vite": "^7.1.11"
16+
"vite": "^7.2.4"
1717
},
1818
"volta": {
19-
"node": "22.12.0"
19+
"node": "22.17.1"
2020
}
2121
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// This file is auto-generated by @hey-api/openapi-ts
22

3-
import type { ClientOptions } from './types.gen';
4-
import { type Config, type ClientOptions as DefaultClientOptions, createClient, createConfig } from './client';
3+
import { type ClientOptions, type Config, createClient, createConfig } from './client';
4+
import type { ClientOptions as ClientOptions2 } from './types.gen';
55

66
/**
77
* The `createClientConfig()` function will be called on client initialization
@@ -11,9 +11,9 @@ import { type Config, type ClientOptions as DefaultClientOptions, createClient,
1111
* `setConfig()`. This is useful for example if you're using Next.js
1212
* to ensure your client always has the correct values.
1313
*/
14-
export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>;
14+
export type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;
1515

16-
export const client = createClient(createConfig<ClientOptions>({
16+
export const client = createClient(createConfig<ClientOptions2>({
1717
baseUrl: 'http://localhost:54813',
1818
throwOnError: true
19-
}));
19+
}));

src/Umbraco.Community.SimpleDashboards.Client/src/api/client/client.gen.ts

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import { createSseClient } from '../core/serverSentEvents.gen';
44
import type { HttpMethod } from '../core/types.gen';
5+
import { getValidRequestBody } from '../core/utils.gen';
56
import type {
67
Client,
78
Config,
@@ -60,12 +61,12 @@ export const createClient = (config: Config = {}): Client => {
6061
await opts.requestValidator(opts);
6162
}
6263

63-
if (opts.body && opts.bodySerializer) {
64+
if (opts.body !== undefined && opts.bodySerializer) {
6465
opts.serializedBody = opts.bodySerializer(opts.body);
6566
}
6667

6768
// remove Content-Type header if body is empty to avoid sending invalid requests
68-
if (opts.serializedBody === undefined || opts.serializedBody === '') {
69+
if (opts.body === undefined || opts.serializedBody === '') {
6970
opts.headers.delete('Content-Type');
7071
}
7172

@@ -80,12 +81,12 @@ export const createClient = (config: Config = {}): Client => {
8081
const requestInit: ReqInit = {
8182
redirect: 'follow',
8283
...opts,
83-
body: opts.serializedBody,
84+
body: getValidRequestBody(opts),
8485
};
8586

8687
let request = new Request(url, requestInit);
8788

88-
for (const fn of interceptors.request._fns) {
89+
for (const fn of interceptors.request.fns) {
8990
if (fn) {
9091
request = await fn(request, opts);
9192
}
@@ -96,7 +97,7 @@ export const createClient = (config: Config = {}): Client => {
9697
const _fetch = opts.fetch!;
9798
let response = await _fetch(request);
9899

99-
for (const fn of interceptors.response._fns) {
100+
for (const fn of interceptors.response.fns) {
100101
if (fn) {
101102
response = await fn(response, request, opts);
102103
}
@@ -108,23 +109,41 @@ export const createClient = (config: Config = {}): Client => {
108109
};
109110

110111
if (response.ok) {
112+
const parseAs =
113+
(opts.parseAs === 'auto'
114+
? getParseAs(response.headers.get('Content-Type'))
115+
: opts.parseAs) ?? 'json';
116+
111117
if (
112118
response.status === 204 ||
113119
response.headers.get('Content-Length') === '0'
114120
) {
121+
let emptyData: any;
122+
switch (parseAs) {
123+
case 'arrayBuffer':
124+
case 'blob':
125+
case 'text':
126+
emptyData = await response[parseAs]();
127+
break;
128+
case 'formData':
129+
emptyData = new FormData();
130+
break;
131+
case 'stream':
132+
emptyData = response.body;
133+
break;
134+
case 'json':
135+
default:
136+
emptyData = {};
137+
break;
138+
}
115139
return opts.responseStyle === 'data'
116-
? {}
140+
? emptyData
117141
: {
118-
data: {},
142+
data: emptyData,
119143
...result,
120144
};
121145
}
122146

123-
const parseAs =
124-
(opts.parseAs === 'auto'
125-
? getParseAs(response.headers.get('Content-Type'))
126-
: opts.parseAs) ?? 'json';
127-
128147
let data: any;
129148
switch (parseAs) {
130149
case 'arrayBuffer':
@@ -173,7 +192,7 @@ export const createClient = (config: Config = {}): Client => {
173192
const error = jsonError ?? textError;
174193
let finalError = error;
175194

176-
for (const fn of interceptors.error._fns) {
195+
for (const fn of interceptors.error.fns) {
177196
if (fn) {
178197
finalError = (await fn(error, response, request, opts)) as string;
179198
}
@@ -206,6 +225,15 @@ export const createClient = (config: Config = {}): Client => {
206225
body: opts.body as BodyInit | null | undefined,
207226
headers: opts.headers as unknown as Record<string, string>,
208227
method,
228+
onRequest: async (url, init) => {
229+
let request = new Request(url, init);
230+
for (const fn of interceptors.request.fns) {
231+
if (fn) {
232+
request = await fn(request, opts);
233+
}
234+
}
235+
return request;
236+
},
209237
url,
210238
});
211239
};

src/Umbraco.Community.SimpleDashboards.Client/src/api/client/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export {
88
urlSearchParamsBodySerializer,
99
} from '../core/bodySerializer.gen';
1010
export { buildClientParams } from '../core/params.gen';
11+
export { serializeQueryKeyValue } from '../core/queryKeySerializer.gen';
1112
export { createClient } from './client.gen';
1213
export type {
1314
Client,

src/Umbraco.Community.SimpleDashboards.Client/src/api/client/types.gen.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export interface Config<T extends ClientOptions = ClientOptions>
2626
*
2727
* @default globalThis.fetch
2828
*/
29-
fetch?: (request: Request) => ReturnType<typeof fetch>;
29+
fetch?: typeof fetch;
3030
/**
3131
* Please don't use the Fetch client for Next.js applications. The `next`
3232
* options won't have any effect.

src/Umbraco.Community.SimpleDashboards.Client/src/api/client/utils.gen.ts

Lines changed: 45 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -183,17 +183,27 @@ export const mergeConfigs = (a: Config, b: Config): Config => {
183183
return config;
184184
};
185185

186+
const headersEntries = (headers: Headers): Array<[string, string]> => {
187+
const entries: Array<[string, string]> = [];
188+
headers.forEach((value, key) => {
189+
entries.push([key, value]);
190+
});
191+
return entries;
192+
};
193+
186194
export const mergeHeaders = (
187195
...headers: Array<Required<Config>['headers'] | undefined>
188196
): Headers => {
189197
const mergedHeaders = new Headers();
190198
for (const header of headers) {
191-
if (!header || typeof header !== 'object') {
199+
if (!header) {
192200
continue;
193201
}
194202

195203
const iterator =
196-
header instanceof Headers ? header.entries() : Object.entries(header);
204+
header instanceof Headers
205+
? headersEntries(header)
206+
: Object.entries(header);
197207

198208
for (const [key, value] of iterator) {
199209
if (value === null) {
@@ -234,67 +244,61 @@ type ResInterceptor<Res, Req, Options> = (
234244
) => Res | Promise<Res>;
235245

236246
class Interceptors<Interceptor> {
237-
_fns: (Interceptor | null)[];
247+
fns: Array<Interceptor | null> = [];
238248

239-
constructor() {
240-
this._fns = [];
249+
clear(): void {
250+
this.fns = [];
241251
}
242252

243-
clear() {
244-
this._fns = [];
245-
}
246-
247-
getInterceptorIndex(id: number | Interceptor): number {
248-
if (typeof id === 'number') {
249-
return this._fns[id] ? id : -1;
250-
} else {
251-
return this._fns.indexOf(id);
253+
eject(id: number | Interceptor): void {
254+
const index = this.getInterceptorIndex(id);
255+
if (this.fns[index]) {
256+
this.fns[index] = null;
252257
}
253258
}
254-
exists(id: number | Interceptor) {
259+
260+
exists(id: number | Interceptor): boolean {
255261
const index = this.getInterceptorIndex(id);
256-
return !!this._fns[index];
262+
return Boolean(this.fns[index]);
257263
}
258264

259-
eject(id: number | Interceptor) {
260-
const index = this.getInterceptorIndex(id);
261-
if (this._fns[index]) {
262-
this._fns[index] = null;
265+
getInterceptorIndex(id: number | Interceptor): number {
266+
if (typeof id === 'number') {
267+
return this.fns[id] ? id : -1;
263268
}
269+
return this.fns.indexOf(id);
264270
}
265271

266-
update(id: number | Interceptor, fn: Interceptor) {
272+
update(
273+
id: number | Interceptor,
274+
fn: Interceptor,
275+
): number | Interceptor | false {
267276
const index = this.getInterceptorIndex(id);
268-
if (this._fns[index]) {
269-
this._fns[index] = fn;
277+
if (this.fns[index]) {
278+
this.fns[index] = fn;
270279
return id;
271-
} else {
272-
return false;
273280
}
281+
return false;
274282
}
275283

276-
use(fn: Interceptor) {
277-
this._fns = [...this._fns, fn];
278-
return this._fns.length - 1;
284+
use(fn: Interceptor): number {
285+
this.fns.push(fn);
286+
return this.fns.length - 1;
279287
}
280288
}
281289

282-
// `createInterceptors()` response, meant for external use as it does not
283-
// expose internals
284290
export interface Middleware<Req, Res, Err, Options> {
285-
error: Pick<
286-
Interceptors<ErrInterceptor<Err, Res, Req, Options>>,
287-
'eject' | 'use'
288-
>;
289-
request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;
290-
response: Pick<
291-
Interceptors<ResInterceptor<Res, Req, Options>>,
292-
'eject' | 'use'
293-
>;
291+
error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;
292+
request: Interceptors<ReqInterceptor<Req, Options>>;
293+
response: Interceptors<ResInterceptor<Res, Req, Options>>;
294294
}
295295

296-
// do not add `Middleware` as return type so we can use _fns internally
297-
export const createInterceptors = <Req, Res, Err, Options>() => ({
296+
export const createInterceptors = <Req, Res, Err, Options>(): Middleware<
297+
Req,
298+
Res,
299+
Err,
300+
Options
301+
> => ({
298302
error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),
299303
request: new Interceptors<ReqInterceptor<Req, Options>>(),
300304
response: new Interceptors<ResInterceptor<Res, Req, Options>>(),

0 commit comments

Comments
 (0)