@arkyn/server 1.3.11 → 1.3.12

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 (46) hide show
  1. package/dist/helpers/formParse.d.ts +3 -0
  2. package/dist/helpers/formParse.d.ts.map +1 -0
  3. package/dist/helpers/formParse.js +15 -0
  4. package/dist/helpers/getScopedParams.d.ts +5 -0
  5. package/dist/helpers/getScopedParams.d.ts.map +1 -0
  6. package/dist/helpers/getScopedParams.js +10 -0
  7. package/dist/helpers/globalErrorHandler.d.ts +3 -0
  8. package/dist/helpers/globalErrorHandler.d.ts.map +1 -0
  9. package/dist/helpers/globalErrorHandler.js +24 -0
  10. package/dist/helpers/uuid.d.ts +3 -0
  11. package/dist/helpers/uuid.d.ts.map +1 -0
  12. package/dist/helpers/uuid.js +5 -0
  13. package/dist/httpBadResponses/badRequest.d.ts +7 -0
  14. package/dist/httpBadResponses/badRequest.d.ts.map +1 -0
  15. package/dist/httpBadResponses/badRequest.js +16 -0
  16. package/dist/httpBadResponses/conflict.d.ts +7 -0
  17. package/dist/httpBadResponses/conflict.d.ts.map +1 -0
  18. package/dist/httpBadResponses/conflict.js +16 -0
  19. package/dist/httpBadResponses/forbidden.d.ts +7 -0
  20. package/dist/httpBadResponses/forbidden.d.ts.map +1 -0
  21. package/dist/httpBadResponses/forbidden.js +16 -0
  22. package/dist/httpBadResponses/notFound.d.ts +7 -0
  23. package/dist/httpBadResponses/notFound.d.ts.map +1 -0
  24. package/dist/httpBadResponses/notFound.js +16 -0
  25. package/dist/httpBadResponses/serverError.d.ts +7 -0
  26. package/dist/httpBadResponses/serverError.d.ts.map +1 -0
  27. package/dist/httpBadResponses/serverError.js +16 -0
  28. package/dist/httpBadResponses/unauthorized.d.ts +7 -0
  29. package/dist/httpBadResponses/unauthorized.d.ts.map +1 -0
  30. package/dist/httpBadResponses/unauthorized.js +16 -0
  31. package/dist/index.d.ts +10 -3
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +12 -3
  34. package/package.json +5 -3
  35. package/src/helpers/globalErrorHandler.ts +30 -0
  36. package/src/helpers/uuid.ts +7 -0
  37. package/src/httpBadResponses/badRequest.ts +20 -0
  38. package/src/httpBadResponses/conflict.ts +20 -0
  39. package/src/httpBadResponses/forbidden.ts +20 -0
  40. package/src/httpBadResponses/notFound.ts +20 -0
  41. package/src/httpBadResponses/serverError.ts +20 -0
  42. package/src/httpBadResponses/unauthorized.ts +20 -0
  43. package/src/index.ts +13 -3
  44. package/src/badRequest.ts +0 -7
  45. /package/src/{formParse.ts → helpers/formParse.ts} +0 -0
  46. /package/src/{getScopedParams.ts → helpers/getScopedParams.ts} +0 -0
@@ -0,0 +1,3 @@
1
+ import type { FormParseProps, FormParseReturnType } from "@arkyn/types";
2
+ export declare function formParse<T extends FormParseProps>([formData, schema,]: T): FormParseReturnType<T>;
3
+ //# sourceMappingURL=formParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formParse.d.ts","sourceRoot":"","sources":["../../src/helpers/formParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExE,wBAAgB,SAAS,CAAC,CAAC,SAAS,cAAc,EAAE,CAClD,QAAQ,EACR,MAAM,EACP,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAoB5B"}
@@ -0,0 +1,15 @@
1
+ export function formParse([formData, schema,]) {
2
+ const zodResponse = schema.safeParse(formData);
3
+ if (zodResponse.success === false) {
4
+ const errorsArray = Object.entries(zodResponse.error.formErrors.fieldErrors);
5
+ const errorsObject = Object.fromEntries(errorsArray.map((item) => [item[0], item[1]?.[0] || "Error"]));
6
+ return {
7
+ success: zodResponse.success,
8
+ fieldErrors: errorsObject,
9
+ fields: formData,
10
+ };
11
+ }
12
+ else {
13
+ return { success: zodResponse.success, data: zodResponse.data };
14
+ }
15
+ }
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ declare function getScopedParams(request: Request, scope?: string): import("url").URLSearchParams;
4
+ export { getScopedParams };
5
+ //# sourceMappingURL=getScopedParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getScopedParams.d.ts","sourceRoot":"","sources":["../../src/helpers/getScopedParams.ts"],"names":[],"mappings":";;AAAA,iBAAS,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,GAAE,MAAW,iCAW5D;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ function getScopedParams(request, scope = "") {
2
+ const url = new URL(request.url);
3
+ if (scope === "")
4
+ return url.searchParams;
5
+ const scopedSearchParams = Array.from(url.searchParams.entries())
6
+ .filter(([key]) => key.startsWith(`${scope}:`))
7
+ .map(([key, value]) => [key.replace(`${scope}:`, ""), value]);
8
+ return new URLSearchParams(scopedSearchParams);
9
+ }
10
+ export { getScopedParams };
@@ -0,0 +1,3 @@
1
+ declare const globalErrorHandler: (error: Error) => import("@remix-run/node").TypedResponse<import("@arkyn/types").HttpResponse>;
2
+ export { globalErrorHandler };
3
+ //# sourceMappingURL=globalErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalErrorHandler.d.ts","sourceRoot":"","sources":["../../src/helpers/globalErrorHandler.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,kBAAkB,UAAW,KAAK,iFAevC,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { json } from "@remix-run/node";
2
+ import { badRequest, BadRequestError } from "../httpBadResponses/badRequest";
3
+ import { conflict, ConflictError } from "../httpBadResponses/conflict";
4
+ import { forbidden, ForbiddenError } from "../httpBadResponses/forbidden";
5
+ import { notFound, NotFoundError } from "../httpBadResponses/notFound";
6
+ import { serverError } from "../httpBadResponses/serverError";
7
+ import { unauthorized, UnauthorizedError, } from "../httpBadResponses/unauthorized";
8
+ const globalErrorHandler = (error) => {
9
+ switch (true) {
10
+ case error instanceof BadRequestError:
11
+ return json(badRequest(error));
12
+ case error instanceof ForbiddenError:
13
+ return json(forbidden(error));
14
+ case error instanceof ConflictError:
15
+ return json(conflict(error));
16
+ case error instanceof UnauthorizedError:
17
+ return json(unauthorized(error));
18
+ case error instanceof NotFoundError:
19
+ return json(notFound(error));
20
+ default:
21
+ return json(serverError(error));
22
+ }
23
+ };
24
+ export { globalErrorHandler };
@@ -0,0 +1,3 @@
1
+ declare function uuid(): string;
2
+ export { uuid };
3
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/helpers/uuid.ts"],"names":[],"mappings":"AAEA,iBAAS,IAAI,IAAI,MAAM,CAEtB;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { v4 } from "uuid";
2
+ function uuid() {
3
+ return v4();
4
+ }
5
+ export { uuid };
@@ -0,0 +1,7 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+ declare function badRequest(error: Error): HttpResponse;
3
+ declare class BadRequestError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export { badRequest, BadRequestError };
7
+ //# sourceMappingURL=badRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badRequest.d.ts","sourceRoot":"","sources":["../../src/httpBadResponses/badRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,iBAAS,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAQ9C;AAED,cAAM,eAAgB,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ function badRequest(error) {
2
+ return {
3
+ status: 400,
4
+ success: false,
5
+ name: error.name,
6
+ message: error.message,
7
+ cause: error.cause,
8
+ };
9
+ }
10
+ class BadRequestError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "BadRequestError";
14
+ }
15
+ }
16
+ export { badRequest, BadRequestError };
@@ -0,0 +1,7 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+ declare function conflict(error: Error): HttpResponse;
3
+ declare class ConflictError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export { conflict, ConflictError };
7
+ //# sourceMappingURL=conflict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict.d.ts","sourceRoot":"","sources":["../../src/httpBadResponses/conflict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,iBAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAQ5C;AAED,cAAM,aAAc,SAAQ,KAAK;gBACnB,OAAO,EAAE,MAAM;CAI5B;AAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ function conflict(error) {
2
+ return {
3
+ status: 409,
4
+ success: false,
5
+ name: error.name,
6
+ message: error.message,
7
+ cause: error.cause,
8
+ };
9
+ }
10
+ class ConflictError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "ConflictError";
14
+ }
15
+ }
16
+ export { conflict, ConflictError };
@@ -0,0 +1,7 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+ declare function forbidden(error: Error): HttpResponse;
3
+ declare class ForbiddenError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export { forbidden, ForbiddenError };
7
+ //# sourceMappingURL=forbidden.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forbidden.d.ts","sourceRoot":"","sources":["../../src/httpBadResponses/forbidden.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,iBAAS,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAQ7C;AAED,cAAM,cAAe,SAAQ,KAAK;gBACpB,OAAO,EAAE,MAAM;CAI5B;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ function forbidden(error) {
2
+ return {
3
+ status: 403,
4
+ success: false,
5
+ name: error.name,
6
+ message: error.message,
7
+ cause: error.cause,
8
+ };
9
+ }
10
+ class ForbiddenError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "ForbiddenError";
14
+ }
15
+ }
16
+ export { forbidden, ForbiddenError };
@@ -0,0 +1,7 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+ declare function notFound(error: Error): HttpResponse;
3
+ declare class NotFoundError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export { notFound, NotFoundError };
7
+ //# sourceMappingURL=notFound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notFound.d.ts","sourceRoot":"","sources":["../../src/httpBadResponses/notFound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,iBAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAQ5C;AAED,cAAM,aAAc,SAAQ,KAAK;gBACnB,OAAO,EAAE,MAAM;CAI5B;AAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ function notFound(error) {
2
+ return {
3
+ status: 404,
4
+ success: false,
5
+ name: error.name,
6
+ message: error.message,
7
+ cause: error.cause,
8
+ };
9
+ }
10
+ class NotFoundError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "NotFoundError";
14
+ }
15
+ }
16
+ export { notFound, NotFoundError };
@@ -0,0 +1,7 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+ declare function serverError(error: Error): HttpResponse;
3
+ declare class ServerError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export { serverError, ServerError };
7
+ //# sourceMappingURL=serverError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverError.d.ts","sourceRoot":"","sources":["../../src/httpBadResponses/serverError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAQ/C;AAED,cAAM,WAAY,SAAQ,KAAK;gBACjB,OAAO,EAAE,MAAM;CAI5B;AAED,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ function serverError(error) {
2
+ return {
3
+ status: 500,
4
+ success: false,
5
+ name: error.name,
6
+ message: error.message,
7
+ cause: error.cause,
8
+ };
9
+ }
10
+ class ServerError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "ServerError";
14
+ }
15
+ }
16
+ export { serverError, ServerError };
@@ -0,0 +1,7 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+ declare function unauthorized(error: Error): HttpResponse;
3
+ declare class UnauthorizedError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export { unauthorized, UnauthorizedError };
7
+ //# sourceMappingURL=unauthorized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unauthorized.d.ts","sourceRoot":"","sources":["../../src/httpBadResponses/unauthorized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,iBAAS,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAQhD;AAED,cAAM,iBAAkB,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ function unauthorized(error) {
2
+ return {
3
+ status: 401,
4
+ success: false,
5
+ name: error.name,
6
+ message: error.message,
7
+ cause: error.cause,
8
+ };
9
+ }
10
+ class UnauthorizedError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "UnauthorizedError";
14
+ }
15
+ }
16
+ export { unauthorized, UnauthorizedError };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,11 @@
1
- export { badRequest } from "./badRequest";
2
- export { getScopedParams } from "./getScopedParams";
3
- export { formParse } from "./formParse";
1
+ export { BadRequestError } from "./httpBadResponses/badRequest";
2
+ export { ConflictError } from "./httpBadResponses/conflict";
3
+ export { ForbiddenError } from "./httpBadResponses/forbidden";
4
+ export { NotFoundError } from "./httpBadResponses/notFound";
5
+ export { ServerError } from "./httpBadResponses/serverError";
6
+ export { UnauthorizedError } from "./httpBadResponses/unauthorized";
7
+ export { globalErrorHandler } from "./helpers/globalErrorHandler";
8
+ export { formParse } from "./helpers/formParse";
9
+ export { getScopedParams } from "./helpers/getScopedParams";
10
+ export { uuid } from "./helpers/uuid";
4
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,12 @@
1
- export { badRequest } from "./badRequest";
2
- export { getScopedParams } from "./getScopedParams";
3
- export { formParse } from "./formParse";
1
+ // http bad responses
2
+ export { BadRequestError } from "./httpBadResponses/badRequest";
3
+ export { ConflictError } from "./httpBadResponses/conflict";
4
+ export { ForbiddenError } from "./httpBadResponses/forbidden";
5
+ export { NotFoundError } from "./httpBadResponses/notFound";
6
+ export { ServerError } from "./httpBadResponses/serverError";
7
+ export { UnauthorizedError } from "./httpBadResponses/unauthorized";
8
+ // helpers
9
+ export { globalErrorHandler } from "./helpers/globalErrorHandler";
10
+ export { formParse } from "./helpers/formParse";
11
+ export { getScopedParams } from "./helpers/getScopedParams";
12
+ export { uuid } from "./helpers/uuid";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkyn/server",
3
- "version": "1.3.11",
3
+ "version": "1.3.12",
4
4
  "main": "./dist/bundle.js",
5
5
  "module": "./src/index.ts",
6
6
  "type": "module",
@@ -10,10 +10,12 @@
10
10
  "typecheck": "bunx tsc --project tsconfig.json --noEmit"
11
11
  },
12
12
  "dependencies": {
13
- "@remix-run/node": ">=2.9.2"
13
+ "@remix-run/node": ">=2.9.2",
14
+ "uuid": "^10.0.0"
14
15
  },
15
16
  "devDependencies": {
16
17
  "bun-types": "latest",
17
- "typescript": "^5.4.5"
18
+ "typescript": "^5.5.2",
19
+ "@types/uuid": "^10.0.0"
18
20
  }
19
21
  }
@@ -0,0 +1,30 @@
1
+ import { json } from "@remix-run/node";
2
+
3
+ import { badRequest, BadRequestError } from "../httpBadResponses/badRequest";
4
+ import { conflict, ConflictError } from "../httpBadResponses/conflict";
5
+ import { forbidden, ForbiddenError } from "../httpBadResponses/forbidden";
6
+ import { notFound, NotFoundError } from "../httpBadResponses/notFound";
7
+ import { serverError } from "../httpBadResponses/serverError";
8
+ import {
9
+ unauthorized,
10
+ UnauthorizedError,
11
+ } from "../httpBadResponses/unauthorized";
12
+
13
+ const globalErrorHandler = (error: Error) => {
14
+ switch (true) {
15
+ case error instanceof BadRequestError:
16
+ return json(badRequest(error));
17
+ case error instanceof ForbiddenError:
18
+ return json(forbidden(error));
19
+ case error instanceof ConflictError:
20
+ return json(conflict(error));
21
+ case error instanceof UnauthorizedError:
22
+ return json(unauthorized(error));
23
+ case error instanceof NotFoundError:
24
+ return json(notFound(error));
25
+ default:
26
+ return json(serverError(error));
27
+ }
28
+ };
29
+
30
+ export { globalErrorHandler };
@@ -0,0 +1,7 @@
1
+ import { v4 } from "uuid";
2
+
3
+ function uuid(): string {
4
+ return v4();
5
+ }
6
+
7
+ export { uuid };
@@ -0,0 +1,20 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+
3
+ function badRequest(error: Error): HttpResponse {
4
+ return {
5
+ status: 400,
6
+ success: false,
7
+ name: error.name,
8
+ message: error.message,
9
+ cause: error.cause,
10
+ };
11
+ }
12
+
13
+ class BadRequestError extends Error {
14
+ constructor(message: string) {
15
+ super(message);
16
+ this.name = "BadRequestError";
17
+ }
18
+ }
19
+
20
+ export { badRequest, BadRequestError };
@@ -0,0 +1,20 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+
3
+ function conflict(error: Error): HttpResponse {
4
+ return {
5
+ status: 409,
6
+ success: false,
7
+ name: error.name,
8
+ message: error.message,
9
+ cause: error.cause,
10
+ };
11
+ }
12
+
13
+ class ConflictError extends Error {
14
+ constructor(message: string) {
15
+ super(message);
16
+ this.name = "ConflictError";
17
+ }
18
+ }
19
+
20
+ export { conflict, ConflictError };
@@ -0,0 +1,20 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+
3
+ function forbidden(error: Error): HttpResponse {
4
+ return {
5
+ status: 403,
6
+ success: false,
7
+ name: error.name,
8
+ message: error.message,
9
+ cause: error.cause,
10
+ };
11
+ }
12
+
13
+ class ForbiddenError extends Error {
14
+ constructor(message: string) {
15
+ super(message);
16
+ this.name = "ForbiddenError";
17
+ }
18
+ }
19
+
20
+ export { forbidden, ForbiddenError };
@@ -0,0 +1,20 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+
3
+ function notFound(error: Error): HttpResponse {
4
+ return {
5
+ status: 404,
6
+ success: false,
7
+ name: error.name,
8
+ message: error.message,
9
+ cause: error.cause,
10
+ };
11
+ }
12
+
13
+ class NotFoundError extends Error {
14
+ constructor(message: string) {
15
+ super(message);
16
+ this.name = "NotFoundError";
17
+ }
18
+ }
19
+
20
+ export { notFound, NotFoundError };
@@ -0,0 +1,20 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+
3
+ function serverError(error: Error): HttpResponse {
4
+ return {
5
+ status: 500,
6
+ success: false,
7
+ name: error.name,
8
+ message: error.message,
9
+ cause: error.cause,
10
+ };
11
+ }
12
+
13
+ class ServerError extends Error {
14
+ constructor(message: string) {
15
+ super(message);
16
+ this.name = "ServerError";
17
+ }
18
+ }
19
+
20
+ export { serverError, ServerError };
@@ -0,0 +1,20 @@
1
+ import type { HttpResponse } from "@arkyn/types";
2
+
3
+ function unauthorized(error: Error): HttpResponse {
4
+ return {
5
+ status: 401,
6
+ success: false,
7
+ name: error.name,
8
+ message: error.message,
9
+ cause: error.cause,
10
+ };
11
+ }
12
+
13
+ class UnauthorizedError extends Error {
14
+ constructor(message: string) {
15
+ super(message);
16
+ this.name = "UnauthorizedError";
17
+ }
18
+ }
19
+
20
+ export { unauthorized, UnauthorizedError };
package/src/index.ts CHANGED
@@ -1,3 +1,13 @@
1
- export { badRequest } from "./badRequest";
2
- export { getScopedParams } from "./getScopedParams";
3
- export { formParse } from "./formParse";
1
+ // http bad responses
2
+ export { BadRequestError } from "./httpBadResponses/badRequest";
3
+ export { ConflictError } from "./httpBadResponses/conflict";
4
+ export { ForbiddenError } from "./httpBadResponses/forbidden";
5
+ export { NotFoundError } from "./httpBadResponses/notFound";
6
+ export { ServerError } from "./httpBadResponses/serverError";
7
+ export { UnauthorizedError } from "./httpBadResponses/unauthorized";
8
+
9
+ // helpers
10
+ export { globalErrorHandler } from "./helpers/globalErrorHandler";
11
+ export { formParse } from "./helpers/formParse";
12
+ export { getScopedParams } from "./helpers/getScopedParams";
13
+ export { uuid } from "./helpers/uuid";
package/src/badRequest.ts DELETED
@@ -1,7 +0,0 @@
1
- import { json } from "@remix-run/node";
2
-
3
- function badRequest<T>(data: T, status?: number) {
4
- return json<T>(data, { status: status || 400 });
5
- }
6
-
7
- export { badRequest };
File without changes