bytekit 0.1.12 → 0.2.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/README.md CHANGED
@@ -90,10 +90,7 @@ import { RateLimiter, SlidingWindowRateLimiter } from "bytekit/rate-limiter";
90
90
  import { RequestDeduplicator } from "bytekit/request-deduplicator";
91
91
 
92
92
  // Error Boundary
93
- import {
94
- ErrorBoundary,
95
- getGlobalErrorBoundary,
96
- } from "bytekit/error-boundary";
93
+ import { ErrorBoundary, getGlobalErrorBoundary } from "bytekit/error-boundary";
97
94
  ```
98
95
 
99
96
  #### Helper Modules / Módulos Helpers
@@ -148,16 +145,22 @@ import { PollingHelper, createPoller } from "bytekit/polling-helper";
148
145
  import { CryptoUtils } from "bytekit/crypto-utils";
149
146
 
150
147
  // Pagination Helper
151
- import {
152
- PaginationHelper,
153
- createPaginator,
154
- } from "bytekit/pagination-helper";
148
+ import { PaginationHelper, createPaginator } from "bytekit/pagination-helper";
155
149
 
156
150
  // Cache Manager
157
151
  import { CacheManager, createCacheManager } from "bytekit/cache-manager";
158
152
 
159
153
  // Compression Utilities
160
154
  import { CompressionUtils } from "bytekit/compression-utils";
155
+
156
+ // HTTP Status Helper
157
+ import { HTTP_STATUS, isSuccess, isRetryable } from "bytekit/http-status";
158
+
159
+ // URL Builder
160
+ import { UrlBuilder, createUrlBuilder } from "bytekit/url-builder";
161
+
162
+ // Batch Request
163
+ import { BatchRequest, createBatchRequest } from "bytekit/batch-request";
161
164
  ```
162
165
 
163
166
  #### Import Everything / Importar Todo
@@ -242,6 +245,109 @@ const slug = StringUtils.slugify("New Users – October 2024");
242
245
  **EN:** Import everything from the root entry, configure the ApiClient once, reuse helpers everywhere.
243
246
  **ES:** Importá desde la raíz, configurá el ApiClient una sola vez y reutilizá los helpers en todos tus servicios.
244
247
 
248
+ ## Framework Examples / Ejemplos con Frameworks
249
+
250
+ **EN:** Bytekit is framework-agnostic and works seamlessly with React, Vue, Svelte, Angular, and more.
251
+ **ES:** Bytekit es agnóstico al framework y funciona perfectamente con React, Vue, Svelte, Angular y más.
252
+
253
+ ### 🎯 Works with / Compatible con
254
+
255
+ <div align="center">
256
+
257
+ **React** • **Vue** • **Svelte** • **Angular** • **Next.js** • **Nuxt** • **SvelteKit**
258
+
259
+ </div>
260
+
261
+ ### 📚 Quick Examples / Ejemplos Rápidos
262
+
263
+ #### React
264
+
265
+ ```jsx
266
+ import { createApiClient } from "bytekit";
267
+ import { useState, useEffect } from "react";
268
+
269
+ function useApiClient(config) {
270
+ const [client] = useState(() => createApiClient(config));
271
+ return client;
272
+ }
273
+
274
+ function Users() {
275
+ const client = useApiClient({ baseURL: "https://api.example.com" });
276
+ const [users, setUsers] = useState([]);
277
+
278
+ useEffect(() => {
279
+ client.get("/users").then(setUsers);
280
+ }, [client]);
281
+
282
+ return (
283
+ <div>
284
+ {users.map((u) => (
285
+ <div key={u.id}>{u.name}</div>
286
+ ))}
287
+ </div>
288
+ );
289
+ }
290
+ ```
291
+
292
+ **[📖 Full React Guide](./docs/examples/react.md)** • **[💻 Working Example](./examples/react-app)**
293
+
294
+ #### Vue 3
295
+
296
+ ```vue
297
+ <script setup>
298
+ import { ref, onMounted } from "vue";
299
+ import { createApiClient } from "bytekit";
300
+
301
+ const client = createApiClient({ baseURL: "https://api.example.com" });
302
+ const users = ref([]);
303
+
304
+ onMounted(async () => {
305
+ users.value = await client.get("/users");
306
+ });
307
+ </script>
308
+
309
+ <template>
310
+ <div v-for="user in users" :key="user.id">{{ user.name }}</div>
311
+ </template>
312
+ ```
313
+
314
+ **[📖 Full Vue Guide](./docs/examples/vue.md)** • **[💻 Working Example](./examples/vue-app)**
315
+
316
+ #### Svelte
317
+
318
+ ```svelte
319
+ <script>
320
+ import { onMount } from 'svelte';
321
+ import { createApiClient } from 'bytekit';
322
+
323
+ const client = createApiClient({ baseURL: 'https://api.example.com' });
324
+ let users = [];
325
+
326
+ onMount(async () => {
327
+ users = await client.get('/users');
328
+ });
329
+ </script>
330
+
331
+ {#each users as user}
332
+ <div>{user.name}</div>
333
+ {/each}
334
+ ```
335
+
336
+ **[📖 Full Svelte Guide](./docs/examples/svelte.md)** • **[💻 Working Example](./examples/svelte-app)**
337
+
338
+ ### 🚀 Try the Examples / Probá los Ejemplos
339
+
340
+ **EN:** Each example is a standalone Vite app ready to run:
341
+ **ES:** Cada ejemplo es una app Vite lista para ejecutar:
342
+
343
+ ```bash
344
+ cd examples/react-app # or vue-app, svelte-app
345
+ npm install
346
+ npm run dev
347
+ ```
348
+
349
+ **[📁 View all examples](./examples)**
350
+
245
351
  ## API surface / Métodos expuestos
246
352
 
247
353
  **EN:** Complete reference of all exported methods and classes. Use `npm info bytekit` to see the full list.
@@ -1631,12 +1737,7 @@ workerLogger.debug("processing batch", { size: 20 });
1631
1737
  **ES**: `createStopwatch`, `withTiming`, `measureAsync`, `captureDebug` y `Profiler` facilitan medir tiempos y loguear automáticamente.
1632
1738
 
1633
1739
  ```ts
1634
- import {
1635
- createStopwatch,
1636
- withTiming,
1637
- measureAsync,
1638
- Profiler,
1639
- } from "bytekit";
1740
+ import { createStopwatch, withTiming, measureAsync, Profiler } from "bytekit";
1640
1741
 
1641
1742
  const stopwatch = createStopwatch({ label: "sync-users" });
1642
1743
  // ... run task
@@ -2066,15 +2167,82 @@ npx sutils create users
2066
2167
  **What is generated / Qué se genera:**
2067
2168
 
2068
2169
  - `api/<resource>/index.ts`: typed CRUD helpers built on `bytekit`' `ApiClient`, including shape placeholders, filter helpers, and `list/get/create/update/delete` functions.
2069
- - `hooks/<resource>/use<ResourcePlural>.ts`: React Query hooks (`use<ResourcePlural>`, `use<Resource>`, `useCreate<Resource>`, `useUpdate<Resource>`, `useDelete<Resource>`) that invalidate the corresponding queries and wire mutations to `@tanstack/react-query`.
2170
+ - `hooks/<resource>/use<ResourcePlural>.ts`: Query library hooks (React Query or RTK Query, configurable via `--queryLib`) that invalidate the corresponding queries and wire mutations.
2070
2171
  - `hooks/<resource>/index.ts`: re-exports the generated hooks.
2071
2172
 
2072
- The generator accepts `--apiDir`, `--hooksDir`, `--route`, and `--force`; directories default to `api`/`hooks`, the route defaults to the resource name, and `--force` overwrites existing files. It also respects nested resource paths like `admin/users`.
2173
+ The generator accepts `--apiDir`, `--hooksDir`, `--route`, `--queryLib`, and `--force`; directories default to `api`/`hooks`, the route defaults to the resource name, `--queryLib` defaults to `react-query`, and `--force` overwrites existing files. It also respects nested resource paths like `admin/users`.
2174
+
2175
+ **Query Library Options / Opciones de Librería de Queries:**
2176
+
2177
+ - `--queryLib=react-query` (default): Generates hooks using `@tanstack/react-query` (React Query).
2178
+ - `--queryLib=rtk-query`: Generates API slice using `@reduxjs/toolkit/query/react` (RTK Query).
2179
+
2180
+ **Examples / Ejemplos:**
2181
+
2182
+ ```bash
2183
+ # Create with React Query (default)
2184
+ npx sutils create users
2185
+
2186
+ # Create with RTK Query
2187
+ npx sutils create users --queryLib=rtk-query
2188
+
2189
+ # Create with custom directories and RTK Query
2190
+ npx sutils create payments --apiDir=services --hooksDir=app/hooks --route=/billing/payments --queryLib=rtk-query --force
2191
+ ```
2192
+
2193
+ **React Query Setup / Configuración de React Query:**
2194
+
2195
+ React Query must be available in the consuming project:
2196
+
2197
+ ```bash
2198
+ npm install @tanstack/react-query
2199
+ ```
2200
+
2201
+ The generated hooks expect an `ApiClient` instance that you pass as the first argument:
2202
+
2203
+ ```ts
2204
+ import { useUsers } from "./hooks/users";
2205
+ import { apiClient } from "./api/client";
2073
2206
 
2074
- React Query must be available in the consuming project (`npm install @tanstack/react-query`), and the hooks expect an `ApiClient` instance that you pass as the first argument.
2207
+ export function UsersList() {
2208
+ const { data, isLoading } = useUsers(apiClient);
2209
+ // ...
2210
+ }
2211
+ ```
2212
+
2213
+ **RTK Query Setup / Configuración de RTK Query:**
2214
+
2215
+ RTK Query must be available in the consuming project:
2075
2216
 
2076
2217
  ```bash
2077
- npx sutils create payments --apiDir=services --hooksDir=app/hooks --route=/billing/payments --force
2218
+ npm install @reduxjs/toolkit react-redux
2219
+ ```
2220
+
2221
+ The generated API slice should be added to your Redux store:
2222
+
2223
+ ```ts
2224
+ import { configureStore } from "@reduxjs/toolkit";
2225
+ import { userApi } from "./hooks/users";
2226
+
2227
+ export const store = configureStore({
2228
+ reducer: {
2229
+ [userApi.reducerPath]: userApi.reducer,
2230
+ },
2231
+ middleware: (getDefaultMiddleware) =>
2232
+ getDefaultMiddleware().concat(userApi.middleware),
2233
+ });
2234
+ ```
2235
+
2236
+ Then use the generated hooks in your components:
2237
+
2238
+ ```ts
2239
+ import { useListUsersQuery, useCreateUserMutation } from "./hooks/users";
2240
+
2241
+ export function UsersList() {
2242
+ const { data, isLoading } = useListUsersQuery();
2243
+ const [createUser] = useCreateUserMutation();
2244
+ // ...
2245
+ }
2078
2246
  ```
2079
2247
 
2080
2248
  ### Types Command / Comando Types
@@ -2237,5 +2405,3 @@ import { ApiClient, DateUtils } from "bytekit";
2237
2405
  ## License / Licencia
2238
2406
 
2239
2407
  MIT © 2024 Sebastián Martinez
2240
-
2241
-
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAuBA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAyBA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB1D"}
package/dist/cli/index.js CHANGED
@@ -40,6 +40,7 @@ async function handleCreate(resource, args) {
40
40
  force: Boolean(flags.force),
41
41
  route: flags.route ?? `/${resourceSegments.join("/")}`,
42
42
  resourceSegments,
43
+ queryLib: flags.queryLib ?? "react-query",
43
44
  };
44
45
  await createResourceFiles(config);
45
46
  }
@@ -86,6 +87,14 @@ function parseCreateFlags(args) {
86
87
  case "route":
87
88
  flags.route = rawValue;
88
89
  break;
90
+ case "queryLib":
91
+ if (rawValue === "react-query" || rawValue === "rtk-query") {
92
+ flags.queryLib = rawValue;
93
+ }
94
+ else {
95
+ console.warn(`Invalid queryLib value "${rawValue}". Use "react-query" or "rtk-query".`);
96
+ }
97
+ break;
89
98
  default:
90
99
  console.warn(`Unrecognized flag "--${key}"; ignoring.`);
91
100
  }
@@ -149,12 +158,19 @@ async function createResourceFiles(config) {
149
158
  singularPascal: pascalSingular,
150
159
  route: resolvedRoute,
151
160
  }), force);
152
- await writeFileIfAllowed(hooksFilePath, buildHooksTemplate({
153
- pascalPlural,
154
- pascalSingular,
155
- resourceKey,
156
- apiImportPath,
157
- }), force);
161
+ await writeFileIfAllowed(hooksFilePath, config.queryLib === "rtk-query"
162
+ ? buildRtkQueryHooksTemplate({
163
+ pascalPlural,
164
+ pascalSingular,
165
+ resourceKey,
166
+ apiImportPath,
167
+ })
168
+ : buildHooksTemplate({
169
+ pascalPlural,
170
+ pascalSingular,
171
+ resourceKey,
172
+ apiImportPath,
173
+ }), force);
158
174
  await writeFileIfAllowed(hooksIndexPath, `export * from "./use${pascalPlural}";\n`, force);
159
175
  console.log(`Scaffolded "${resourceKey}" under "${apiDir}" and "${hooksDir}".`);
160
176
  }
@@ -215,6 +231,84 @@ export const update${singularPascal} = (
215
231
  export const delete${singularPascal} = (client: ApiClient, id: string) =>
216
232
  client.delete<void>(RESOURCE_PATH + "/" + id);
217
233
 
234
+ `;
235
+ }
236
+ function buildRtkQueryHooksTemplate(options) {
237
+ const { pascalPlural, pascalSingular, resourceKey, apiImportPath } = options;
238
+ return `import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
239
+ import type { ApiClient } from "bytekit";
240
+ import {
241
+ list${pascalPlural},
242
+ get${pascalSingular},
243
+ create${pascalSingular},
244
+ update${pascalSingular},
245
+ delete${pascalSingular},
246
+ type ${pascalSingular}Dto,
247
+ type Create${pascalSingular}Dto,
248
+ type Update${pascalSingular}Dto,
249
+ type ${pascalSingular}Filters,
250
+ } from "${apiImportPath}";
251
+
252
+ const resourceKey = "${resourceKey}";
253
+
254
+ export const ${pascalSingular.toLowerCase()}Api = createApi({
255
+ reducerPath: "${pascalSingular.toLowerCase()}Api",
256
+ baseQuery: fetchBaseQuery({
257
+ baseUrl: process.env.REACT_APP_API_URL || "",
258
+ }),
259
+ tagTypes: ["${pascalSingular}"],
260
+ endpoints: (builder) => ({
261
+ list${pascalPlural}: builder.query<${pascalSingular}Dto[], ${pascalSingular}Filters | undefined>({
262
+ query: (filters) => ({
263
+ url: resourceKey,
264
+ params: filters,
265
+ }),
266
+ providesTags: ["${pascalSingular}"],
267
+ }),
268
+ get${pascalSingular}: builder.query<${pascalSingular}Dto, string>({
269
+ query: (id) => \`\${resourceKey}/\${id}\`,
270
+ providesTags: (result, error, id) => [{ type: "${pascalSingular}", id }],
271
+ }),
272
+ create${pascalSingular}: builder.mutation<${pascalSingular}Dto, Create${pascalSingular}Dto>({
273
+ query: (payload) => ({
274
+ url: resourceKey,
275
+ method: "POST",
276
+ body: payload,
277
+ }),
278
+ invalidatesTags: ["${pascalSingular}"],
279
+ }),
280
+ update${pascalSingular}: builder.mutation<
281
+ ${pascalSingular}Dto,
282
+ { id: string; payload: Update${pascalSingular}Dto }
283
+ >({
284
+ query: ({ id, payload }) => ({
285
+ url: \`\${resourceKey}/\${id}\`,
286
+ method: "PATCH",
287
+ body: payload,
288
+ }),
289
+ invalidatesTags: (result, error, { id }) => [
290
+ { type: "${pascalSingular}", id },
291
+ "${pascalSingular}",
292
+ ],
293
+ }),
294
+ delete${pascalSingular}: builder.mutation<void, string>({
295
+ query: (id) => ({
296
+ url: \`\${resourceKey}/\${id}\`,
297
+ method: "DELETE",
298
+ }),
299
+ invalidatesTags: ["${pascalSingular}"],
300
+ }),
301
+ }),
302
+ });
303
+
304
+ export const {
305
+ useList${pascalPlural}Query,
306
+ useGet${pascalSingular}Query,
307
+ useCreate${pascalSingular}Mutation,
308
+ useUpdate${pascalSingular}Mutation,
309
+ useDelete${pascalSingular}Mutation,
310
+ } = ${pascalSingular.toLowerCase()}Api;
311
+
218
312
  `;
219
313
  }
220
314
  function buildHooksTemplate(options) {
@@ -374,7 +468,13 @@ Options
374
468
  --apiDir=<dir> Base directory for API files (default: api).
375
469
  --hooksDir=<dir> Base directory for hooks (default: hooks).
376
470
  --route=</path> API route path (default: derived from resource).
471
+ --queryLib=<lib> Query library: "react-query" or "rtk-query" (default: react-query).
377
472
  --force Overwrite existing files.
473
+
474
+ Examples
475
+ sutils create users
476
+ sutils create users --queryLib=rtk-query
477
+ sutils create posts --apiDir=src/api --hooksDir=src/hooks --force
378
478
  `);
379
479
  }
380
480
  function printTypesHelp() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Batch Request Helper
3
+ * Execute multiple requests in parallel, sequence, or with fallback
4
+ */
5
+ export interface BatchRequestOptions {
6
+ /**
7
+ * Abort all requests if one fails
8
+ * @default false
9
+ */
10
+ abortOnError?: boolean;
11
+ /**
12
+ * Timeout for all requests in milliseconds
13
+ */
14
+ timeout?: number;
15
+ }
16
+ export declare class BatchRequest {
17
+ private options;
18
+ private requests;
19
+ private labels;
20
+ constructor(options?: BatchRequestOptions);
21
+ /**
22
+ * Add a request to the batch
23
+ * @example
24
+ * batch.add(() => client.get("/users"))
25
+ * batch.add(() => client.get("/posts"), "posts")
26
+ */
27
+ add<T>(fn: () => Promise<T>, label?: string): this;
28
+ /**
29
+ * Execute all requests in parallel
30
+ * @throws If any request fails and abortOnError is true
31
+ */
32
+ execute(): Promise<any[]>;
33
+ /**
34
+ * Execute all requests sequentially
35
+ * @throws If any request fails and abortOnError is true
36
+ */
37
+ executeSequential(): Promise<any[]>;
38
+ /**
39
+ * Execute with fallback - returns null for failed requests
40
+ */
41
+ executeWithFallback(): Promise<(any | null)[]>;
42
+ /**
43
+ * Execute and return results as object with labels
44
+ * @example
45
+ * const { users, posts } = await batch
46
+ * .add(() => client.get("/users"), "users")
47
+ * .add(() => client.get("/posts"), "posts")
48
+ * .executeAsObject();
49
+ */
50
+ executeAsObject(): Promise<Record<string, any>>;
51
+ /**
52
+ * Execute sequentially and return results as object
53
+ */
54
+ executeSequentialAsObject(): Promise<Record<string, any>>;
55
+ /**
56
+ * Get number of requests in batch
57
+ */
58
+ size(): number;
59
+ /**
60
+ * Clear all requests
61
+ */
62
+ clear(): this;
63
+ /**
64
+ * Clone the batch
65
+ */
66
+ clone(): BatchRequest;
67
+ private executeWithTimeout;
68
+ }
69
+ /**
70
+ * Create a new batch request
71
+ * @example
72
+ * const batch = createBatchRequest();
73
+ * const [users, posts] = await batch
74
+ * .add(() => client.get("/users"))
75
+ * .add(() => client.get("/posts"))
76
+ * .execute();
77
+ */
78
+ export declare function createBatchRequest(options?: BatchRequestOptions): BatchRequest;
79
+ //# sourceMappingURL=BatchRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchRequest.d.ts","sourceRoot":"","sources":["../../../src/utils/core/BatchRequest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IAIT,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,MAAM,CAAkC;gBAE5B,OAAO,GAAE,mBAAwB;IAErD;;;;;OAKG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IASlD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAgB/B;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAqBzC;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAQpD;;;;;;;OAOG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAYrD;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAY/D;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,KAAK,IAAI,YAAY;YAOP,kBAAkB;CAuBnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC9B,YAAY,CAEd"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Batch Request Helper
3
+ * Execute multiple requests in parallel, sequence, or with fallback
4
+ */
5
+ export class BatchRequest {
6
+ options;
7
+ requests = [];
8
+ labels = new Map();
9
+ constructor(options = {}) {
10
+ this.options = options;
11
+ }
12
+ /**
13
+ * Add a request to the batch
14
+ * @example
15
+ * batch.add(() => client.get("/users"))
16
+ * batch.add(() => client.get("/posts"), "posts")
17
+ */
18
+ add(fn, label) {
19
+ const index = this.requests.length;
20
+ this.requests.push(fn);
21
+ if (label) {
22
+ this.labels.set(index, label);
23
+ }
24
+ return this;
25
+ }
26
+ /**
27
+ * Execute all requests in parallel
28
+ * @throws If any request fails and abortOnError is true
29
+ */
30
+ async execute() {
31
+ const promises = this.requests.map((fn, index) => this.executeWithTimeout(fn, index));
32
+ if (this.options.abortOnError) {
33
+ return Promise.all(promises);
34
+ }
35
+ return Promise.allSettled(promises).then((results) => results.map((result) => result.status === "fulfilled" ? result.value : null));
36
+ }
37
+ /**
38
+ * Execute all requests sequentially
39
+ * @throws If any request fails and abortOnError is true
40
+ */
41
+ async executeSequential() {
42
+ const results = [];
43
+ for (let i = 0; i < this.requests.length; i++) {
44
+ try {
45
+ const result = await this.executeWithTimeout(this.requests[i], i);
46
+ results.push(result);
47
+ }
48
+ catch (error) {
49
+ if (this.options.abortOnError) {
50
+ throw error;
51
+ }
52
+ results.push(null);
53
+ }
54
+ }
55
+ return results;
56
+ }
57
+ /**
58
+ * Execute with fallback - returns null for failed requests
59
+ */
60
+ async executeWithFallback() {
61
+ const promises = this.requests.map((fn, index) => this.executeWithTimeout(fn, index).catch(() => null));
62
+ return Promise.all(promises);
63
+ }
64
+ /**
65
+ * Execute and return results as object with labels
66
+ * @example
67
+ * const { users, posts } = await batch
68
+ * .add(() => client.get("/users"), "users")
69
+ * .add(() => client.get("/posts"), "posts")
70
+ * .executeAsObject();
71
+ */
72
+ async executeAsObject() {
73
+ const results = await this.execute();
74
+ const obj = {};
75
+ results.forEach((result, index) => {
76
+ const label = this.labels.get(index) || `request_${index}`;
77
+ obj[label] = result;
78
+ });
79
+ return obj;
80
+ }
81
+ /**
82
+ * Execute sequentially and return results as object
83
+ */
84
+ async executeSequentialAsObject() {
85
+ const results = await this.executeSequential();
86
+ const obj = {};
87
+ results.forEach((result, index) => {
88
+ const label = this.labels.get(index) || `request_${index}`;
89
+ obj[label] = result;
90
+ });
91
+ return obj;
92
+ }
93
+ /**
94
+ * Get number of requests in batch
95
+ */
96
+ size() {
97
+ return this.requests.length;
98
+ }
99
+ /**
100
+ * Clear all requests
101
+ */
102
+ clear() {
103
+ this.requests = [];
104
+ this.labels.clear();
105
+ return this;
106
+ }
107
+ /**
108
+ * Clone the batch
109
+ */
110
+ clone() {
111
+ const cloned = new BatchRequest(this.options);
112
+ cloned.requests = [...this.requests];
113
+ cloned.labels = new Map(this.labels);
114
+ return cloned;
115
+ }
116
+ async executeWithTimeout(fn, index) {
117
+ if (!this.options.timeout) {
118
+ return fn();
119
+ }
120
+ return Promise.race([
121
+ fn(),
122
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Request ${index} timed out after ${this.options.timeout}ms`)), this.options.timeout)),
123
+ ]);
124
+ }
125
+ }
126
+ /**
127
+ * Create a new batch request
128
+ * @example
129
+ * const batch = createBatchRequest();
130
+ * const [users, posts] = await batch
131
+ * .add(() => client.get("/users"))
132
+ * .add(() => client.get("/posts"))
133
+ * .execute();
134
+ */
135
+ export function createBatchRequest(options) {
136
+ return new BatchRequest(options);
137
+ }
138
+ //# sourceMappingURL=BatchRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchRequest.js","sourceRoot":"","sources":["../../../src/utils/core/BatchRequest.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "#core/ApiClient.js";
2
+ export * from "#core/BatchRequest.js";
2
3
  export * from "#core/Logger.js";
3
4
  export * from "#core/Profiler.js";
4
5
  export * from "#core/debug.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "#core/ApiClient.js";
2
+ export * from "#core/BatchRequest.js";
2
3
  export * from "#core/Logger.js";
3
4
  export * from "#core/Profiler.js";
4
5
  export * from "#core/debug.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * HTTP Status Code Helpers
3
+ * Utilities for working with HTTP status codes
4
+ */
5
+ export declare const HTTP_STATUS: {
6
+ readonly OK: 200;
7
+ readonly CREATED: 201;
8
+ readonly ACCEPTED: 202;
9
+ readonly NO_CONTENT: 204;
10
+ readonly RESET_CONTENT: 205;
11
+ readonly PARTIAL_CONTENT: 206;
12
+ readonly MULTIPLE_CHOICES: 300;
13
+ readonly MOVED_PERMANENTLY: 301;
14
+ readonly FOUND: 302;
15
+ readonly SEE_OTHER: 303;
16
+ readonly NOT_MODIFIED: 304;
17
+ readonly TEMPORARY_REDIRECT: 307;
18
+ readonly PERMANENT_REDIRECT: 308;
19
+ readonly BAD_REQUEST: 400;
20
+ readonly UNAUTHORIZED: 401;
21
+ readonly PAYMENT_REQUIRED: 402;
22
+ readonly FORBIDDEN: 403;
23
+ readonly NOT_FOUND: 404;
24
+ readonly METHOD_NOT_ALLOWED: 405;
25
+ readonly NOT_ACCEPTABLE: 406;
26
+ readonly PROXY_AUTHENTICATION_REQUIRED: 407;
27
+ readonly REQUEST_TIMEOUT: 408;
28
+ readonly CONFLICT: 409;
29
+ readonly GONE: 410;
30
+ readonly LENGTH_REQUIRED: 411;
31
+ readonly PRECONDITION_FAILED: 412;
32
+ readonly PAYLOAD_TOO_LARGE: 413;
33
+ readonly URI_TOO_LONG: 414;
34
+ readonly UNSUPPORTED_MEDIA_TYPE: 415;
35
+ readonly RANGE_NOT_SATISFIABLE: 416;
36
+ readonly EXPECTATION_FAILED: 417;
37
+ readonly UNPROCESSABLE_ENTITY: 422;
38
+ readonly TOO_MANY_REQUESTS: 429;
39
+ readonly INTERNAL_SERVER_ERROR: 500;
40
+ readonly NOT_IMPLEMENTED: 501;
41
+ readonly BAD_GATEWAY: 502;
42
+ readonly SERVICE_UNAVAILABLE: 503;
43
+ readonly GATEWAY_TIMEOUT: 504;
44
+ readonly HTTP_VERSION_NOT_SUPPORTED: 505;
45
+ };
46
+ /**
47
+ * Check if status code is a success (2xx)
48
+ */
49
+ export declare function isSuccess(status: number): boolean;
50
+ /**
51
+ * Check if status code is a redirect (3xx)
52
+ */
53
+ export declare function isRedirect(status: number): boolean;
54
+ /**
55
+ * Check if status code is a client error (4xx)
56
+ */
57
+ export declare function isClientError(status: number): boolean;
58
+ /**
59
+ * Check if status code is a server error (5xx)
60
+ */
61
+ export declare function isServerError(status: number): boolean;
62
+ /**
63
+ * Check if status code is an error (4xx or 5xx)
64
+ */
65
+ export declare function isError(status: number): boolean;
66
+ /**
67
+ * Get human-readable message for status code
68
+ */
69
+ export declare function getStatusMessage(status: number): string;
70
+ /**
71
+ * Get status category name
72
+ */
73
+ export declare function getStatusCategory(status: number): "success" | "redirect" | "client_error" | "server_error" | "unknown";
74
+ /**
75
+ * Check if status is retryable
76
+ */
77
+ export declare function isRetryable(status: number): boolean;
78
+ /**
79
+ * Check if status is cacheable
80
+ */
81
+ export declare function isCacheable(status: number): boolean;
82
+ //# sourceMappingURL=HttpStatusHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpStatusHelper.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/HttpStatusHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Cd,CAAC;AAEX;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmDvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,GACf,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAMtE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CASnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAcnD"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * HTTP Status Code Helpers
3
+ * Utilities for working with HTTP status codes
4
+ */
5
+ export const HTTP_STATUS = {
6
+ // 2xx Success
7
+ OK: 200,
8
+ CREATED: 201,
9
+ ACCEPTED: 202,
10
+ NO_CONTENT: 204,
11
+ RESET_CONTENT: 205,
12
+ PARTIAL_CONTENT: 206,
13
+ // 3xx Redirection
14
+ MULTIPLE_CHOICES: 300,
15
+ MOVED_PERMANENTLY: 301,
16
+ FOUND: 302,
17
+ SEE_OTHER: 303,
18
+ NOT_MODIFIED: 304,
19
+ TEMPORARY_REDIRECT: 307,
20
+ PERMANENT_REDIRECT: 308,
21
+ // 4xx Client Error
22
+ BAD_REQUEST: 400,
23
+ UNAUTHORIZED: 401,
24
+ PAYMENT_REQUIRED: 402,
25
+ FORBIDDEN: 403,
26
+ NOT_FOUND: 404,
27
+ METHOD_NOT_ALLOWED: 405,
28
+ NOT_ACCEPTABLE: 406,
29
+ PROXY_AUTHENTICATION_REQUIRED: 407,
30
+ REQUEST_TIMEOUT: 408,
31
+ CONFLICT: 409,
32
+ GONE: 410,
33
+ LENGTH_REQUIRED: 411,
34
+ PRECONDITION_FAILED: 412,
35
+ PAYLOAD_TOO_LARGE: 413,
36
+ URI_TOO_LONG: 414,
37
+ UNSUPPORTED_MEDIA_TYPE: 415,
38
+ RANGE_NOT_SATISFIABLE: 416,
39
+ EXPECTATION_FAILED: 417,
40
+ UNPROCESSABLE_ENTITY: 422,
41
+ TOO_MANY_REQUESTS: 429,
42
+ // 5xx Server Error
43
+ INTERNAL_SERVER_ERROR: 500,
44
+ NOT_IMPLEMENTED: 501,
45
+ BAD_GATEWAY: 502,
46
+ SERVICE_UNAVAILABLE: 503,
47
+ GATEWAY_TIMEOUT: 504,
48
+ HTTP_VERSION_NOT_SUPPORTED: 505,
49
+ };
50
+ /**
51
+ * Check if status code is a success (2xx)
52
+ */
53
+ export function isSuccess(status) {
54
+ return status >= 200 && status < 300;
55
+ }
56
+ /**
57
+ * Check if status code is a redirect (3xx)
58
+ */
59
+ export function isRedirect(status) {
60
+ return status >= 300 && status < 400;
61
+ }
62
+ /**
63
+ * Check if status code is a client error (4xx)
64
+ */
65
+ export function isClientError(status) {
66
+ return status >= 400 && status < 500;
67
+ }
68
+ /**
69
+ * Check if status code is a server error (5xx)
70
+ */
71
+ export function isServerError(status) {
72
+ return status >= 500 && status < 600;
73
+ }
74
+ /**
75
+ * Check if status code is an error (4xx or 5xx)
76
+ */
77
+ export function isError(status) {
78
+ return isClientError(status) || isServerError(status);
79
+ }
80
+ /**
81
+ * Get human-readable message for status code
82
+ */
83
+ export function getStatusMessage(status) {
84
+ const messages = {
85
+ // 2xx
86
+ 200: "OK",
87
+ 201: "Created",
88
+ 202: "Accepted",
89
+ 204: "No Content",
90
+ 205: "Reset Content",
91
+ 206: "Partial Content",
92
+ // 3xx
93
+ 300: "Multiple Choices",
94
+ 301: "Moved Permanently",
95
+ 302: "Found",
96
+ 303: "See Other",
97
+ 304: "Not Modified",
98
+ 307: "Temporary Redirect",
99
+ 308: "Permanent Redirect",
100
+ // 4xx
101
+ 400: "Bad Request",
102
+ 401: "Unauthorized",
103
+ 402: "Payment Required",
104
+ 403: "Forbidden",
105
+ 404: "Not Found",
106
+ 405: "Method Not Allowed",
107
+ 406: "Not Acceptable",
108
+ 407: "Proxy Authentication Required",
109
+ 408: "Request Timeout",
110
+ 409: "Conflict",
111
+ 410: "Gone",
112
+ 411: "Length Required",
113
+ 412: "Precondition Failed",
114
+ 413: "Payload Too Large",
115
+ 414: "URI Too Long",
116
+ 415: "Unsupported Media Type",
117
+ 416: "Range Not Satisfiable",
118
+ 417: "Expectation Failed",
119
+ 422: "Unprocessable Entity",
120
+ 429: "Too Many Requests",
121
+ // 5xx
122
+ 500: "Internal Server Error",
123
+ 501: "Not Implemented",
124
+ 502: "Bad Gateway",
125
+ 503: "Service Unavailable",
126
+ 504: "Gateway Timeout",
127
+ 505: "HTTP Version Not Supported",
128
+ };
129
+ return messages[status] || "Unknown Status";
130
+ }
131
+ /**
132
+ * Get status category name
133
+ */
134
+ export function getStatusCategory(status) {
135
+ if (isSuccess(status))
136
+ return "success";
137
+ if (isRedirect(status))
138
+ return "redirect";
139
+ if (isClientError(status))
140
+ return "client_error";
141
+ if (isServerError(status))
142
+ return "server_error";
143
+ return "unknown";
144
+ }
145
+ /**
146
+ * Check if status is retryable
147
+ */
148
+ export function isRetryable(status) {
149
+ return (status === 408 || // Request Timeout
150
+ status === 429 || // Too Many Requests
151
+ status === 500 || // Internal Server Error
152
+ status === 502 || // Bad Gateway
153
+ status === 503 || // Service Unavailable
154
+ status === 504 // Gateway Timeout
155
+ );
156
+ }
157
+ /**
158
+ * Check if status is cacheable
159
+ */
160
+ export function isCacheable(status) {
161
+ return (status === 200 || // OK
162
+ status === 203 || // Non-Authoritative Information
163
+ status === 204 || // No Content
164
+ status === 206 || // Partial Content
165
+ status === 300 || // Multiple Choices
166
+ status === 301 || // Moved Permanently
167
+ status === 404 || // Not Found
168
+ status === 405 || // Method Not Allowed
169
+ status === 410 || // Gone
170
+ status === 414 || // URI Too Long
171
+ status === 501 // Not Implemented
172
+ );
173
+ }
174
+ //# sourceMappingURL=HttpStatusHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpStatusHelper.js","sourceRoot":"","sources":["../../../src/utils/helpers/HttpStatusHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * URL Builder Utility
3
+ * Fluent API for building URLs with query parameters and fragments
4
+ */
5
+ export declare class UrlBuilder {
6
+ private url;
7
+ private queryParams;
8
+ constructor(baseUrl: string);
9
+ /**
10
+ * Add path segments to the URL
11
+ * @example
12
+ * new UrlBuilder("https://api.example.com")
13
+ * .path("/users")
14
+ * .path("123")
15
+ * .build() // https://api.example.com/users/123
16
+ */
17
+ path(...segments: string[]): this;
18
+ /**
19
+ * Add query parameters
20
+ * @example
21
+ * new UrlBuilder("https://api.example.com")
22
+ * .path("/users")
23
+ * .query({ page: 1, limit: 10 })
24
+ * .query({ sort: "name" })
25
+ * .build() // https://api.example.com/users?page=1&limit=10&sort=name
26
+ */
27
+ query(params: Record<string, string | number | boolean | undefined | null>): this;
28
+ /**
29
+ * Add array query parameters
30
+ * @example
31
+ * new UrlBuilder("https://api.example.com")
32
+ * .path("/search")
33
+ * .queryArray({ tags: ["javascript", "typescript"] })
34
+ * .build() // https://api.example.com/search?tags=javascript&tags=typescript
35
+ */
36
+ queryArray(params: Record<string, (string | number | boolean)[]>): this;
37
+ /**
38
+ * Set URL fragment/hash
39
+ * @example
40
+ * new UrlBuilder("https://example.com")
41
+ * .hash("section-1")
42
+ * .build() // https://example.com#section-1
43
+ */
44
+ hash(fragment: string): this;
45
+ /**
46
+ * Build the final URL string
47
+ */
48
+ build(): string;
49
+ /**
50
+ * Get the URL as a URL object
51
+ */
52
+ toURL(): URL;
53
+ /**
54
+ * Get pathname only
55
+ */
56
+ getPathname(): string;
57
+ /**
58
+ * Get search string (query parameters)
59
+ */
60
+ getSearch(): string;
61
+ /**
62
+ * Get hash/fragment
63
+ */
64
+ getHash(): string;
65
+ /**
66
+ * Clone the builder
67
+ */
68
+ clone(): UrlBuilder;
69
+ }
70
+ /**
71
+ * Create a new URL builder
72
+ * @example
73
+ * const url = createUrlBuilder("https://api.example.com")
74
+ * .path("/users")
75
+ * .query({ page: 1 })
76
+ * .build();
77
+ */
78
+ export declare function createUrlBuilder(baseUrl: string): UrlBuilder;
79
+ //# sourceMappingURL=UrlBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/UrlBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,UAAU;IACnB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,WAAW,CAA6C;gBAEpD,OAAO,EAAE,MAAM;IAI3B;;;;;;;OAOG;IACH,IAAI,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAejC;;;;;;;;OAQG;IACH,KAAK,CACD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,GACrE,IAAI;IASP;;;;;;;OAOG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI;IASvE;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,KAAK,IAAI,MAAM;IAcf;;OAEG;IACH,KAAK,IAAI,GAAG;IAcZ;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,SAAS,IAAI,MAAM;IAKnB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,KAAK,IAAI,UAAU;CAKtB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAE5D"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * URL Builder Utility
3
+ * Fluent API for building URLs with query parameters and fragments
4
+ */
5
+ export class UrlBuilder {
6
+ url;
7
+ queryParams = new Map();
8
+ constructor(baseUrl) {
9
+ this.url = new URL(baseUrl);
10
+ }
11
+ /**
12
+ * Add path segments to the URL
13
+ * @example
14
+ * new UrlBuilder("https://api.example.com")
15
+ * .path("/users")
16
+ * .path("123")
17
+ * .build() // https://api.example.com/users/123
18
+ */
19
+ path(...segments) {
20
+ const cleanSegments = segments
21
+ .map((s) => s.replace(/^\/+|\/+$/g, ""))
22
+ .filter(Boolean);
23
+ if (cleanSegments.length === 0) {
24
+ return this;
25
+ }
26
+ const currentPath = this.url.pathname.replace(/\/$/, "");
27
+ this.url.pathname = [currentPath, ...cleanSegments].join("/");
28
+ return this;
29
+ }
30
+ /**
31
+ * Add query parameters
32
+ * @example
33
+ * new UrlBuilder("https://api.example.com")
34
+ * .path("/users")
35
+ * .query({ page: 1, limit: 10 })
36
+ * .query({ sort: "name" })
37
+ * .build() // https://api.example.com/users?page=1&limit=10&sort=name
38
+ */
39
+ query(params) {
40
+ Object.entries(params).forEach(([key, value]) => {
41
+ if (value !== undefined && value !== null) {
42
+ this.queryParams.set(key, String(value));
43
+ }
44
+ });
45
+ return this;
46
+ }
47
+ /**
48
+ * Add array query parameters
49
+ * @example
50
+ * new UrlBuilder("https://api.example.com")
51
+ * .path("/search")
52
+ * .queryArray({ tags: ["javascript", "typescript"] })
53
+ * .build() // https://api.example.com/search?tags=javascript&tags=typescript
54
+ */
55
+ queryArray(params) {
56
+ Object.entries(params).forEach(([key, values]) => {
57
+ if (Array.isArray(values) && values.length > 0) {
58
+ this.queryParams.set(key, values.map(String));
59
+ }
60
+ });
61
+ return this;
62
+ }
63
+ /**
64
+ * Set URL fragment/hash
65
+ * @example
66
+ * new UrlBuilder("https://example.com")
67
+ * .hash("section-1")
68
+ * .build() // https://example.com#section-1
69
+ */
70
+ hash(fragment) {
71
+ this.url.hash = fragment;
72
+ return this;
73
+ }
74
+ /**
75
+ * Build the final URL string
76
+ */
77
+ build() {
78
+ const url = new URL(this.url);
79
+ this.queryParams.forEach((value, key) => {
80
+ if (Array.isArray(value)) {
81
+ value.forEach((v) => url.searchParams.append(key, v));
82
+ }
83
+ else {
84
+ url.searchParams.set(key, value);
85
+ }
86
+ });
87
+ return url.toString();
88
+ }
89
+ /**
90
+ * Get the URL as a URL object
91
+ */
92
+ toURL() {
93
+ const url = new URL(this.url);
94
+ this.queryParams.forEach((value, key) => {
95
+ if (Array.isArray(value)) {
96
+ value.forEach((v) => url.searchParams.append(key, v));
97
+ }
98
+ else {
99
+ url.searchParams.set(key, value);
100
+ }
101
+ });
102
+ return url;
103
+ }
104
+ /**
105
+ * Get pathname only
106
+ */
107
+ getPathname() {
108
+ return this.url.pathname;
109
+ }
110
+ /**
111
+ * Get search string (query parameters)
112
+ */
113
+ getSearch() {
114
+ const url = this.toURL();
115
+ return url.search;
116
+ }
117
+ /**
118
+ * Get hash/fragment
119
+ */
120
+ getHash() {
121
+ return this.url.hash;
122
+ }
123
+ /**
124
+ * Clone the builder
125
+ */
126
+ clone() {
127
+ const cloned = new UrlBuilder(this.url.toString());
128
+ cloned.queryParams = new Map(this.queryParams);
129
+ return cloned;
130
+ }
131
+ }
132
+ /**
133
+ * Create a new URL builder
134
+ * @example
135
+ * const url = createUrlBuilder("https://api.example.com")
136
+ * .path("/users")
137
+ * .query({ page: 1 })
138
+ * .build();
139
+ */
140
+ export function createUrlBuilder(baseUrl) {
141
+ return new UrlBuilder(baseUrl);
142
+ }
143
+ //# sourceMappingURL=UrlBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlBuilder.js","sourceRoot":"","sources":["../../../src/utils/helpers/UrlBuilder.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export * from "#helpers/EnvManager.js";
8
8
  export * from "#helpers/EventEmitter.js";
9
9
  export * from "#helpers/FileUploadHelper.js";
10
10
  export * from "#helpers/FormUtils.js";
11
+ export * from "#helpers/HttpStatusHelper.js";
11
12
  export * from "#helpers/ObjectUtils.js";
12
13
  export * from "#helpers/PaginationHelper.js";
13
14
  export * from "#helpers/PollingHelper.js";
@@ -15,6 +16,7 @@ export * from "#helpers/StorageUtils.js";
15
16
  export * from "#helpers/StreamingHelper.js";
16
17
  export * from "#helpers/StringUtils.js";
17
18
  export * from "#helpers/TimeUtils.js";
19
+ export * from "#helpers/UrlBuilder.js";
18
20
  export * from "#helpers/Validator.js";
19
21
  export * from "#helpers/WebSocketHelper.js";
20
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC"}
@@ -8,6 +8,7 @@ export * from "#helpers/EnvManager.js";
8
8
  export * from "#helpers/EventEmitter.js";
9
9
  export * from "#helpers/FileUploadHelper.js";
10
10
  export * from "#helpers/FormUtils.js";
11
+ export * from "#helpers/HttpStatusHelper.js";
11
12
  export * from "#helpers/ObjectUtils.js";
12
13
  export * from "#helpers/PaginationHelper.js";
13
14
  export * from "#helpers/PollingHelper.js";
@@ -15,6 +16,7 @@ export * from "#helpers/StorageUtils.js";
15
16
  export * from "#helpers/StreamingHelper.js";
16
17
  export * from "#helpers/StringUtils.js";
17
18
  export * from "#helpers/TimeUtils.js";
19
+ export * from "#helpers/UrlBuilder.js";
18
20
  export * from "#helpers/Validator.js";
19
21
  export * from "#helpers/WebSocketHelper.js";
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bytekit",
3
3
  "description": "Lightning-fast TypeScript utilities for modern development",
4
- "version": "0.1.12",
4
+ "version": "0.2.0",
5
5
  "type": "module",
6
6
  "imports": {
7
7
  "#core/*": "./dist/utils/core/*",
@@ -133,10 +133,21 @@
133
133
  "./error-boundary": {
134
134
  "types": "./dist/utils/core/ErrorBoundary.d.ts",
135
135
  "import": "./dist/utils/core/ErrorBoundary.js"
136
+ },
137
+ "./batch-request": {
138
+ "types": "./dist/utils/core/BatchRequest.d.ts",
139
+ "import": "./dist/utils/core/BatchRequest.js"
140
+ },
141
+ "./http-status": {
142
+ "types": "./dist/utils/helpers/HttpStatusHelper.d.ts",
143
+ "import": "./dist/utils/helpers/HttpStatusHelper.js"
144
+ },
145
+ "./url-builder": {
146
+ "types": "./dist/utils/helpers/UrlBuilder.d.ts",
147
+ "import": "./dist/utils/helpers/UrlBuilder.js"
136
148
  }
137
149
  },
138
150
  "scripts": {
139
- "postinstall": "node .kiro/tsconfig-generator.js",
140
151
  "build": "tsc -p tsconfig.json",
141
152
  "clean": "node -e \"require('fs').rmSync('dist', { recursive: true, force: true });\"",
142
153
  "lint": "tsc --noEmit",