katanakit-js 2.2.1 → 2.12.9

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.
Files changed (148) hide show
  1. package/README.md +72 -437
  2. package/dist/adapters/astro/astro.service.d.ts +103 -15
  3. package/dist/adapters/astro/astro.service.d.ts.map +1 -1
  4. package/dist/adapters/astro/astro.service.js +145 -75
  5. package/dist/adapters/astro/astro.service.js.map +1 -1
  6. package/dist/adapters/astro/index.d.ts +1 -1
  7. package/dist/adapters/astro/index.d.ts.map +1 -1
  8. package/dist/adapters/astro/index.js +1 -1
  9. package/dist/adapters/astro/index.js.map +1 -1
  10. package/dist/adapters/astro/rss.service.d.ts +85 -105
  11. package/dist/adapters/astro/rss.service.d.ts.map +1 -1
  12. package/dist/adapters/astro/rss.service.js +172 -168
  13. package/dist/adapters/astro/rss.service.js.map +1 -1
  14. package/dist/adapters/astro/seo.service.d.ts +10 -0
  15. package/dist/adapters/astro/seo.service.d.ts.map +1 -0
  16. package/dist/adapters/astro/seo.service.js +3 -0
  17. package/dist/adapters/astro/seo.service.js.map +1 -0
  18. package/dist/adapters/express/app.d.ts +30 -1
  19. package/dist/adapters/express/app.d.ts.map +1 -1
  20. package/dist/adapters/express/app.js +31 -3
  21. package/dist/adapters/express/app.js.map +1 -1
  22. package/dist/adapters/express/index.d.ts +2 -2
  23. package/dist/adapters/express/index.d.ts.map +1 -1
  24. package/dist/adapters/express/index.js +2 -2
  25. package/dist/adapters/express/index.js.map +1 -1
  26. package/dist/adapters/express/main.js +2 -2
  27. package/dist/adapters/express/main.js.map +1 -1
  28. package/dist/adapters/express/products.controller.d.ts +67 -8
  29. package/dist/adapters/express/products.controller.d.ts.map +1 -1
  30. package/dist/adapters/express/products.controller.js +105 -49
  31. package/dist/adapters/express/products.controller.js.map +1 -1
  32. package/dist/adapters/express/server.d.ts +37 -13
  33. package/dist/adapters/express/server.d.ts.map +1 -1
  34. package/dist/adapters/express/server.js +118 -53
  35. package/dist/adapters/express/server.js.map +1 -1
  36. package/dist/adapters/nuxt/nuxt.service.d.ts +8 -6
  37. package/dist/adapters/nuxt/nuxt.service.d.ts.map +1 -1
  38. package/dist/adapters/nuxt/nuxt.service.js +34 -10
  39. package/dist/adapters/nuxt/nuxt.service.js.map +1 -1
  40. package/dist/adapters/vue/vue.service.d.ts +5 -2
  41. package/dist/adapters/vue/vue.service.d.ts.map +1 -1
  42. package/dist/adapters/vue/vue.service.js +41 -7
  43. package/dist/adapters/vue/vue.service.js.map +1 -1
  44. package/dist/config/index.d.ts +2 -1
  45. package/dist/config/index.d.ts.map +1 -1
  46. package/dist/config/index.js +1 -1
  47. package/dist/config/index.js.map +1 -1
  48. package/dist/config/seo-meta.types.d.ts +177 -0
  49. package/dist/config/seo-meta.types.d.ts.map +1 -0
  50. package/dist/config/seo-meta.types.js +11 -0
  51. package/dist/config/seo-meta.types.js.map +1 -0
  52. package/dist/config/seo.service.d.ts +41 -58
  53. package/dist/config/seo.service.d.ts.map +1 -1
  54. package/dist/config/seo.service.js +468 -136
  55. package/dist/config/seo.service.js.map +1 -1
  56. package/dist/config/site.config.d.ts +10 -50
  57. package/dist/config/site.config.d.ts.map +1 -1
  58. package/dist/config/site.config.js +8 -36
  59. package/dist/config/site.config.js.map +1 -1
  60. package/dist/core/index.d.ts +1 -3
  61. package/dist/core/index.d.ts.map +1 -1
  62. package/dist/core/index.js +1 -3
  63. package/dist/core/index.js.map +1 -1
  64. package/dist/core/services/dates.service.d.ts +149 -22
  65. package/dist/core/services/dates.service.d.ts.map +1 -1
  66. package/dist/core/services/dates.service.js +201 -54
  67. package/dist/core/services/dates.service.js.map +1 -1
  68. package/dist/core/services/error.service.d.ts +32 -20
  69. package/dist/core/services/error.service.d.ts.map +1 -1
  70. package/dist/core/services/error.service.js +44 -32
  71. package/dist/core/services/error.service.js.map +1 -1
  72. package/dist/core/services/formatter.service.d.ts +245 -35
  73. package/dist/core/services/formatter.service.d.ts.map +1 -1
  74. package/dist/core/services/formatter.service.js +281 -57
  75. package/dist/core/services/formatter.service.js.map +1 -1
  76. package/dist/core/services/generator.service.d.ts +115 -26
  77. package/dist/core/services/generator.service.d.ts.map +1 -1
  78. package/dist/core/services/generator.service.js +191 -56
  79. package/dist/core/services/generator.service.js.map +1 -1
  80. package/dist/core/services/geometry.service.d.ts +369 -39
  81. package/dist/core/services/geometry.service.d.ts.map +1 -1
  82. package/dist/core/services/geometry.service.js +424 -66
  83. package/dist/core/services/geometry.service.js.map +1 -1
  84. package/dist/core/services/http.service.d.ts +244 -21
  85. package/dist/core/services/http.service.d.ts.map +1 -1
  86. package/dist/core/services/http.service.js +419 -98
  87. package/dist/core/services/http.service.js.map +1 -1
  88. package/dist/core/services/logger.service.d.ts +95 -29
  89. package/dist/core/services/logger.service.d.ts.map +1 -1
  90. package/dist/core/services/logger.service.js +167 -41
  91. package/dist/core/services/logger.service.js.map +1 -1
  92. package/dist/core/services/reactive.service.d.ts +146 -19
  93. package/dist/core/services/reactive.service.d.ts.map +1 -1
  94. package/dist/core/services/reactive.service.js +278 -137
  95. package/dist/core/services/reactive.service.js.map +1 -1
  96. package/dist/core/services/timing.service.d.ts +142 -20
  97. package/dist/core/services/timing.service.d.ts.map +1 -1
  98. package/dist/core/services/timing.service.js +324 -185
  99. package/dist/core/services/timing.service.js.map +1 -1
  100. package/dist/core/services/utils.service.d.ts +228 -43
  101. package/dist/core/services/utils.service.d.ts.map +1 -1
  102. package/dist/core/services/utils.service.js +305 -125
  103. package/dist/core/services/utils.service.js.map +1 -1
  104. package/dist/infrastructure/dom/dom.service.d.ts +307 -44
  105. package/dist/infrastructure/dom/dom.service.d.ts.map +1 -1
  106. package/dist/infrastructure/dom/dom.service.js +408 -129
  107. package/dist/infrastructure/dom/dom.service.js.map +1 -1
  108. package/dist/infrastructure/index.d.ts +0 -3
  109. package/dist/infrastructure/index.d.ts.map +1 -1
  110. package/dist/infrastructure/index.js +0 -3
  111. package/dist/infrastructure/index.js.map +1 -1
  112. package/dist/infrastructure/observer/observer.service.d.ts +124 -31
  113. package/dist/infrastructure/observer/observer.service.d.ts.map +1 -1
  114. package/dist/infrastructure/observer/observer.service.js +227 -131
  115. package/dist/infrastructure/observer/observer.service.js.map +1 -1
  116. package/dist/infrastructure/sensors/sensors.service.d.ts +154 -22
  117. package/dist/infrastructure/sensors/sensors.service.d.ts.map +1 -1
  118. package/dist/infrastructure/sensors/sensors.service.js +264 -112
  119. package/dist/infrastructure/sensors/sensors.service.js.map +1 -1
  120. package/dist/infrastructure/storage/storage.service.d.ts +123 -45
  121. package/dist/infrastructure/storage/storage.service.d.ts.map +1 -1
  122. package/dist/infrastructure/storage/storage.service.js +236 -66
  123. package/dist/infrastructure/storage/storage.service.js.map +1 -1
  124. package/dist/infrastructure/theme/theme.service.d.ts +93 -29
  125. package/dist/infrastructure/theme/theme.service.d.ts.map +1 -1
  126. package/dist/infrastructure/theme/theme.service.js +198 -96
  127. package/dist/infrastructure/theme/theme.service.js.map +1 -1
  128. package/dist/infrastructure/viewport/viewport.service.d.ts +233 -35
  129. package/dist/infrastructure/viewport/viewport.service.d.ts.map +1 -1
  130. package/dist/infrastructure/viewport/viewport.service.js +358 -139
  131. package/dist/infrastructure/viewport/viewport.service.js.map +1 -1
  132. package/dist/infrastructure/worker/worker.service.d.ts +84 -38
  133. package/dist/infrastructure/worker/worker.service.d.ts.map +1 -1
  134. package/dist/infrastructure/worker/worker.service.js +234 -133
  135. package/dist/infrastructure/worker/worker.service.js.map +1 -1
  136. package/dist/prisma/index.d.ts +2 -0
  137. package/dist/prisma/index.d.ts.map +1 -0
  138. package/dist/prisma/index.js +2 -0
  139. package/dist/prisma/index.js.map +1 -0
  140. package/dist/prisma/schema.json +11 -33
  141. package/dist/prisma/use-prisma.d.ts +68 -0
  142. package/dist/prisma/use-prisma.d.ts.map +1 -0
  143. package/dist/prisma/use-prisma.js +82 -0
  144. package/dist/prisma/use-prisma.js.map +1 -0
  145. package/dist/types/index.d.ts +20 -12
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/package.json +124 -125
  148. package/CHANGELOG.md +0 -101
@@ -1,10 +1,69 @@
1
1
  import type { Request, Response } from "express";
2
- export declare class ProductController {
3
- private products;
4
- useGetAll(_request: Request, response: Response): void;
5
- useGetProductById(request: Request, response: Response): void;
6
- useCreateProduct(request: Request, response: Response): void;
7
- useUpsertProduct(request: Request, response: Response): void;
8
- useDeleteProductById(request: Request, response: Response): void;
9
- }
2
+ /**
3
+ * Get all products.
4
+ *
5
+ * @param _request - Express request (unused)
6
+ * @param response - Express response
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * router.get("/products", useExpressGetAllProducts);
11
+ * // GET /products → [{ id: 1, name: "Widget", price: 9.99 }]
12
+ * ```
13
+ */
14
+ export declare const useExpressGetAllProducts: (_request: Request, response: Response) => void;
15
+ /**
16
+ * Get a product by ID.
17
+ *
18
+ * @param request - Express request with `id` param
19
+ * @param response - Express response
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * router.get("/products/:id", useExpressGetProductById);
24
+ * // GET /products/1 → { productById: { id: 1, name: "Widget", price: 9.99 } }
25
+ * ```
26
+ */
27
+ export declare const useExpressGetProductById: (request: Request, response: Response) => void;
28
+ /**
29
+ * Create a new product.
30
+ *
31
+ * @param request - Express request with `name` and `price` in body
32
+ * @param response - Express response
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * router.post("/products", useExpressCreateProduct);
37
+ * // POST /products { name: "Gadget", price: 19.99 }
38
+ * // → { id: 1, name: "Gadget", price: 19.99 }
39
+ * ```
40
+ */
41
+ export declare const useExpressCreateProduct: (request: Request, response: Response) => void;
42
+ /**
43
+ * Update an existing product by ID.
44
+ *
45
+ * @param request - Express request with `id` param and body fields
46
+ * @param response - Express response
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * router.put("/products/:id", useExpressUpdateProduct);
51
+ * // PUT /products/1 { name: "Updated Widget" }
52
+ * // → { id: 1, name: "Updated Widget", price: 9.99 }
53
+ * ```
54
+ */
55
+ export declare const useExpressUpdateProduct: (request: Request, response: Response) => void;
56
+ /**
57
+ * Delete a product by ID.
58
+ *
59
+ * @param request - Express request with `id` param
60
+ * @param response - Express response
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * router.delete("/products/:id", useExpressDeleteProduct);
65
+ * // DELETE /products/1 → 204 No Content
66
+ * ```
67
+ */
68
+ export declare const useExpressDeleteProduct: (request: Request, response: Response) => void;
10
69
  //# sourceMappingURL=products.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.controller.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/products.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjD,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAqB;IAGrC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAErD;IAGD,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAU5D;IAGD,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAc3D;IAGD,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAiB3D;IAGD,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAW/D;CACD"}
1
+ {"version":3,"file":"products.controller.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/products.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,aAAc,OAAO,YAAY,QAAQ,KAAG,IAEhF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,YAAa,OAAO,YAAY,QAAQ,KAAG,IAU/E,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,YAAa,OAAO,YAAY,QAAQ,KAAG,IAc9E,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,YAAa,OAAO,YAAY,QAAQ,KAAG,IAiB9E,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,YAAa,OAAO,YAAY,QAAQ,KAAG,IAW9E,CAAC"}
@@ -1,53 +1,109 @@
1
- export class ProductController {
2
- products = [];
3
- // GET /products
4
- useGetAll(_request, response) {
5
- response.json(this.products);
1
+ /** Module-level products storage. */
2
+ const products = [];
3
+ /**
4
+ * Get all products.
5
+ *
6
+ * @param _request - Express request (unused)
7
+ * @param response - Express response
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * router.get("/products", useExpressGetAllProducts);
12
+ * // GET /products → [{ id: 1, name: "Widget", price: 9.99 }]
13
+ * ```
14
+ */
15
+ export const useExpressGetAllProducts = (_request, response) => {
16
+ response.json(products);
17
+ };
18
+ /**
19
+ * Get a product by ID.
20
+ *
21
+ * @param request - Express request with `id` param
22
+ * @param response - Express response
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * router.get("/products/:id", useExpressGetProductById);
27
+ * // GET /products/1 → { productById: { id: 1, name: "Widget", price: 9.99 } }
28
+ * ```
29
+ */
30
+ export const useExpressGetProductById = (request, response) => {
31
+ const id = Number.parseInt(String(request.params.id), 10);
32
+ const product = products.find((item) => item.id === id);
33
+ if (!product) {
34
+ response.status(404).json({ error: "Product not found" });
35
+ return;
6
36
  }
7
- // GET /products/:id
8
- useGetProductById(request, response) {
9
- const id = Number.parseInt(String(request.params.id), 10);
10
- const product = this.products.find((item) => item.id === id);
11
- if (!product) {
12
- response.status(404).json({ error: "Product not found" });
13
- return;
14
- }
15
- response.json({ productById: product });
37
+ response.json({ productById: product });
38
+ };
39
+ /**
40
+ * Create a new product.
41
+ *
42
+ * @param request - Express request with `name` and `price` in body
43
+ * @param response - Express response
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * router.post("/products", useExpressCreateProduct);
48
+ * // POST /products { name: "Gadget", price: 19.99 }
49
+ * // → { id: 1, name: "Gadget", price: 19.99 }
50
+ * ```
51
+ */
52
+ export const useExpressCreateProduct = (request, response) => {
53
+ const { name = "", price = 0 } = (request.body ?? {});
54
+ const product = {
55
+ id: products.length + 1,
56
+ name,
57
+ price: Number(price),
58
+ };
59
+ products.push(product);
60
+ response.status(201).json(product);
61
+ };
62
+ /**
63
+ * Update an existing product by ID.
64
+ *
65
+ * @param request - Express request with `id` param and body fields
66
+ * @param response - Express response
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * router.put("/products/:id", useExpressUpdateProduct);
71
+ * // PUT /products/1 { name: "Updated Widget" }
72
+ * // → { id: 1, name: "Updated Widget", price: 9.99 }
73
+ * ```
74
+ */
75
+ export const useExpressUpdateProduct = (request, response) => {
76
+ const id = Number.parseInt(String(request.params.id), 10);
77
+ const product = products.find((item) => item.id === id);
78
+ if (!product) {
79
+ response.status(404).json({ error: "Product not found" });
80
+ return;
16
81
  }
17
- // POST /products
18
- useCreateProduct(request, response) {
19
- const { name = "", price = 0 } = (request.body ?? {});
20
- const product = {
21
- id: this.products.length + 1,
22
- name,
23
- price: Number(price),
24
- };
25
- this.products.push(product);
26
- response.status(201).json(product);
82
+ const { name, price } = (request.body ?? {});
83
+ product.name = name ?? product.name;
84
+ product.price = Number(price ?? product.price);
85
+ response.json(product);
86
+ };
87
+ /**
88
+ * Delete a product by ID.
89
+ *
90
+ * @param request - Express request with `id` param
91
+ * @param response - Express response
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * router.delete("/products/:id", useExpressDeleteProduct);
96
+ * // DELETE /products/1 → 204 No Content
97
+ * ```
98
+ */
99
+ export const useExpressDeleteProduct = (request, response) => {
100
+ const id = Number.parseInt(String(request.params.id), 10);
101
+ const index = products.findIndex((item) => item.id === id);
102
+ if (index === -1) {
103
+ response.status(404).json({ error: "Product not found" });
104
+ return;
27
105
  }
28
- // PUT /products/:id
29
- useUpsertProduct(request, response) {
30
- const id = Number.parseInt(String(request.params.id), 10);
31
- const product = this.products.find((item) => item.id === id);
32
- if (!product) {
33
- response.status(404).json({ error: "Product not found" });
34
- return;
35
- }
36
- const { name, price } = (request.body ?? {});
37
- product.name = name ?? product.name;
38
- product.price = Number(price ?? product.price);
39
- response.json(product);
40
- }
41
- // DELETE /products/:id
42
- useDeleteProductById(request, response) {
43
- const id = Number.parseInt(String(request.params.id), 10);
44
- const index = this.products.findIndex((item) => item.id === id);
45
- if (index === -1) {
46
- response.status(404).json({ error: "Product not found" });
47
- return;
48
- }
49
- this.products.splice(index, 1);
50
- response.status(204).send();
51
- }
52
- }
106
+ products.splice(index, 1);
107
+ response.status(204).send();
108
+ };
53
109
  //# sourceMappingURL=products.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.controller.js","sourceRoot":"","sources":["../../../src/adapters/express/products.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"products.controller.js","sourceRoot":"","sources":["../../../src/adapters/express/products.controller.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,39 @@
1
1
  import { type Application } from "express";
2
- export default class ServerExpress {
3
- private static instance;
4
- private readonly app;
5
- private readonly port;
6
- private readonly host;
7
- private constructor();
8
- static getInstance(): ServerExpress;
9
- useStart: () => void;
10
- useGetApp: () => Application;
11
- private setupMiddlewares;
12
- private setupRoutes;
13
- private setupErrorHandling;
14
- }
2
+ /**
3
+ * Create and configure the Express application.
4
+ *
5
+ * @returns Configured Express Application instance
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const expressApp = useExpressCreate();
10
+ * // App is ready with middleware, routes and error handling
11
+ * ```
12
+ */
13
+ export declare const useExpressCreate: () => Application;
14
+ /**
15
+ * Start the Express HTTP server. Idempotent — subsequent calls are no-ops.
16
+ *
17
+ * @param port - Port to listen on (default: 3000)
18
+ * @param host - Host to bind to (default: "localhost")
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * useExpressStart(3000, "localhost");
23
+ * // Server running on http://localhost:3000
24
+ * ```
25
+ */
26
+ export declare const useExpressStart: (port?: number, host?: string) => void;
27
+ /**
28
+ * Get the Express application instance. Creates it if it doesn't exist.
29
+ *
30
+ * @returns Express Application instance
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const expressApp = useExpressGetApp();
35
+ * expressApp.get("/custom", (req, res) => res.json({ ok: true }));
36
+ * ```
37
+ */
38
+ export declare const useExpressGetApp: () => Application;
15
39
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/server.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,KAAK,WAAW,EAAkD,MAAM,SAAS,CAAC;AAKpG,MAAM,CAAC,OAAO,OAAO,aAAa;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAE9B,OAAO,eAIN;IAED,MAAM,CAAC,WAAW,IAAI,aAAa,CAKlC;IAED,QAAQ,QAAO,IAAI,CAQjB;IAEF,SAAS,QAAO,WAAW,CAAa;IAExC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,kBAAkB;CAU1B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/server.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,KAAK,WAAW,EAAkD,MAAM,SAAS,CAAC;AAgFpG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,QAAO,WASnC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,oCAAsC,IASjE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,QAAO,WAAiC,CAAC"}
@@ -1,59 +1,124 @@
1
1
  import cors from "cors";
2
2
  import express from "express";
3
- import { useLog } from "../../core/services/logger.service.js";
3
+ import { useLogger } from "../../core/services/logger.service.js";
4
4
  import router from "./router.js";
5
- export default class ServerExpress {
6
- static instance;
7
- app;
8
- port;
9
- host;
10
- constructor(port = 3000, host = "localhost") {
11
- this.app = express();
12
- this.port = port;
13
- this.host = host;
14
- }
15
- static getInstance() {
16
- if (!ServerExpress.instance) {
17
- ServerExpress.instance = new ServerExpress();
18
- }
19
- return ServerExpress.instance;
20
- }
21
- useStart = () => {
22
- this.setupMiddlewares();
23
- this.setupRoutes();
24
- this.setupErrorHandling();
25
- this.app.listen(this.port, this.host, () => {
26
- useLog(`Server running on http://${this.host}:${this.port}`);
27
- });
28
- };
29
- useGetApp = () => this.app;
30
- setupMiddlewares() {
31
- // Restrict CORS to configured origins (defaults to localhost).
32
- this.app.use(cors({
33
- origin: process.env.CORS_ORIGINS?.split(",") ?? ["http://localhost:3000"],
34
- methods: ["GET", "POST", "PUT", "DELETE"],
35
- }));
36
- this.app.disable("x-powered-by");
37
- this.app.use(express.json({ limit: "100kb" }));
38
- this.app.use(express.urlencoded({ extended: true, limit: "100kb" }));
39
- }
40
- setupRoutes() {
41
- this.app.get("/health", (_request, response) => {
42
- return response.json({
43
- status: "ok",
44
- timestamp: new Date().toISOString(),
45
- });
46
- });
47
- this.app.use("/", router);
48
- }
49
- setupErrorHandling() {
50
- this.app.use((err, _req, res, _next) => {
51
- console.error("Unhandled error:", err);
52
- res.status(500).json({ error: "Internal Server Error" });
53
- });
54
- this.app.use((_req, res) => {
55
- res.status(404).json({ error: "Not Found" });
5
+ /** Module-level state for the Express server. */
6
+ let app = null;
7
+ let started = false;
8
+ /**
9
+ * Set up CORS, JSON body parser and URL-encoded middleware.
10
+ *
11
+ * @param expressApp - Express application instance
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const expressApp = express();
16
+ * useExpressSetupMiddlewares(expressApp);
17
+ * ```
18
+ */
19
+ function useExpressSetupMiddlewares(expressApp) {
20
+ const origins = (process.env.CORS_ORIGINS?.split(",") ?? ["http://localhost:3000"])
21
+ .map((origin) => origin.trim())
22
+ .filter(Boolean);
23
+ expressApp.use(cors({
24
+ origin: origins,
25
+ methods: ["GET", "POST", "PUT", "DELETE"],
26
+ }));
27
+ expressApp.disable("x-powered-by");
28
+ expressApp.use(express.json({ limit: "100kb" }));
29
+ expressApp.use(express.urlencoded({ extended: true, limit: "100kb" }));
30
+ }
31
+ /**
32
+ * Set up health check and application routes.
33
+ *
34
+ * @param expressApp - Express application instance
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * useExpressSetupRoutes(expressApp);
39
+ * // GET /health returns { status: "ok", timestamp: "..." }
40
+ * ```
41
+ */
42
+ function useExpressSetupRoutes(expressApp) {
43
+ expressApp.get("/health", (_request, response) => {
44
+ return response.json({
45
+ status: "ok",
46
+ timestamp: new Date().toISOString(),
56
47
  });
57
- }
48
+ });
49
+ expressApp.use("/", router);
50
+ }
51
+ /**
52
+ * Set up global error handling and 404 fallback.
53
+ *
54
+ * @param expressApp - Express application instance
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * useExpressSetupErrorHandling(expressApp);
59
+ * // Unhandled errors return 500, unknown routes return 404
60
+ * ```
61
+ */
62
+ function useExpressSetupErrorHandling(expressApp) {
63
+ expressApp.use((err, _req, res, _next) => {
64
+ console.error("Unhandled error:", err);
65
+ res.status(500).json({ error: "Internal Server Error" });
66
+ });
67
+ expressApp.use((_req, res) => {
68
+ res.status(404).json({ error: "Not Found" });
69
+ });
58
70
  }
71
+ /**
72
+ * Create and configure the Express application.
73
+ *
74
+ * @returns Configured Express Application instance
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const expressApp = useExpressCreate();
79
+ * // App is ready with middleware, routes and error handling
80
+ * ```
81
+ */
82
+ export const useExpressCreate = () => {
83
+ if (app)
84
+ return app;
85
+ app = express();
86
+ useExpressSetupMiddlewares(app);
87
+ useExpressSetupRoutes(app);
88
+ useExpressSetupErrorHandling(app);
89
+ return app;
90
+ };
91
+ /**
92
+ * Start the Express HTTP server. Idempotent — subsequent calls are no-ops.
93
+ *
94
+ * @param port - Port to listen on (default: 3000)
95
+ * @param host - Host to bind to (default: "localhost")
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * useExpressStart(3000, "localhost");
100
+ * // Server running on http://localhost:3000
101
+ * ```
102
+ */
103
+ export const useExpressStart = (port = 3000, host = "localhost") => {
104
+ if (started)
105
+ return;
106
+ started = true;
107
+ const expressApp = useExpressCreate();
108
+ expressApp.listen(port, host, () => {
109
+ useLogger("info", `Server running on http://${host}:${port}`);
110
+ });
111
+ };
112
+ /**
113
+ * Get the Express application instance. Creates it if it doesn't exist.
114
+ *
115
+ * @returns Express Application instance
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * const expressApp = useExpressGetApp();
120
+ * expressApp.get("/custom", (req, res) => res.json({ ok: true }));
121
+ * ```
122
+ */
123
+ export const useExpressGetApp = () => useExpressCreate();
59
124
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/express/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/adapters/express/server.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { FetchResult } from "../../types/index.js";
3
3
  * Unwraps a KatanaKit Safe Result, throwing an H3-compatible error on failure.
4
4
  * Returns the data directly on success.
5
5
  *
6
+ * Prefers `h3.createError` when available so Nuxt/H3 status codes work correctly.
7
+ *
6
8
  * @param result - The Safe Result from `useFetch`, `useGet`, `usePost`, etc.
7
9
  * @param context - Optional context prefix for the error message.
8
10
  * @returns The data from the result.
@@ -11,12 +13,12 @@ import type { FetchResult } from "../../types/index.js";
11
13
  * @example
12
14
  * ```ts
13
15
  * // server/api/pokemon/[id].ts
14
- * import { useGet } from "katanakit-js";
16
+ * import { useGetApi } from "katanakit-js";
15
17
  * import { useUnwrap } from "katanakit-js/adapters/nuxt";
16
18
  *
17
19
  * export default defineEventHandler(async (event) => {
18
20
  * const id = getRouterParam(event, "id");
19
- * const result = await useGet("pokeapi", "pokemonById", { params: { id } });
21
+ * const result = await useGetApi("pokeapi", "pokemonById", { params: { id } });
20
22
  * return useUnwrap(result, `Pokemon ${id}`);
21
23
  * });
22
24
  * ```
@@ -33,11 +35,11 @@ export declare function useUnwrap<T>(result: FetchResult<T>, context?: string):
33
35
  * @example
34
36
  * ```ts
35
37
  * // server/api/users.ts
36
- * import { useGet } from "katanakit-js";
38
+ * import { useGetApi } from "katanakit-js";
37
39
  * import { useSafeResponse } from "katanakit-js/adapters/nuxt";
38
40
  *
39
41
  * export default defineEventHandler(async () => {
40
- * const result = await useGet("api", "users");
42
+ * const result = await useGetApi("api", "users");
41
43
  * return useSafeResponse(result);
42
44
  * });
43
45
  * ```
@@ -61,11 +63,11 @@ export declare function useSafeResponse<T>(result: FetchResult<T>): {
61
63
  * @example
62
64
  * ```ts
63
65
  * // server/api/products.ts
64
- * import { useFetch } from "katanakit-js";
66
+ * import { useFetchApi } from "katanakit-js";
65
67
  * import { useEventResponse } from "katanakit-js/adapters/nuxt";
66
68
  *
67
69
  * export default defineEventHandler(async (event) => {
68
- * const result = await useFetch("shop", "products");
70
+ * const result = await useFetchApi("shop", "products");
69
71
  * return useEventResponse(event, result);
70
72
  * });
71
73
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"nuxt.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/nuxt/nuxt.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAYxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG;IAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD,EAAE,EAAE,OAAO,CAAC;CACZ,CAaA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,KAAK,EAAE;IAAE,IAAI,EAAE;QAAE,GAAG,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EAChD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWvC"}
1
+ {"version":3,"file":"nuxt.service.d.ts","sourceRoot":"","sources":["../../../src/adapters/nuxt/nuxt.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsBxD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAUxE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG;IAC3D,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClD,EAAE,EAAE,OAAO,CAAC;CACZ,CAaA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,KAAK,EAAE;IAAE,IAAI,EAAE;QAAE,GAAG,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EAChD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWvC"}