@lafrae/errors 0.0.1
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 +46 -0
- package/dist/cjs/handler.d.ts +1 -0
- package/dist/cjs/handler.js +22 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/handler.d.ts +1 -0
- package/dist/esm/handler.js +18 -0
- package/dist/esm/package.json +1 -0
- package/package.json +28 -0
package/README.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Node Async Handler
|
|
2
|
+
|
|
3
|
+
Tratamento para funções asíncronas abstraindo o uso de chamadas `try/catch`
|
|
4
|
+
|
|
5
|
+
## Instalando
|
|
6
|
+
|
|
7
|
+
Via npm
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm i @sintese/nodejs-async-handler
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usando
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
import { handler } from "@sintese/nodejs-async-handler";
|
|
17
|
+
|
|
18
|
+
class EvenNumberNotAllowedError extends Error {
|
|
19
|
+
constructor(num: number) {
|
|
20
|
+
super(`even number ${num} is not allowed`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async function myAsyncFunction(): Promise<{ num: number }> {
|
|
25
|
+
const num = Math.ceil(Math.random() * 10);
|
|
26
|
+
if (num % 2 === 0) {
|
|
27
|
+
throw new EvenNumberNotAllowedError(num);
|
|
28
|
+
}
|
|
29
|
+
return { num };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
(async () => {
|
|
33
|
+
const [error, data] = await handler(myAsyncFunction);
|
|
34
|
+
|
|
35
|
+
if (error) {
|
|
36
|
+
console.log({ error });
|
|
37
|
+
} else {
|
|
38
|
+
console.log({ data });
|
|
39
|
+
}
|
|
40
|
+
})();
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Contribuindo
|
|
45
|
+
|
|
46
|
+
Dúvidas, contribuições e sugestões são muito bem vidas.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const handler: <E = Error, D = unknown>(callback: () => Promise<D>) => Promise<[E, null] | [null, D]>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.handler = void 0;
|
|
13
|
+
const handler = (callback) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
try {
|
|
15
|
+
const data = yield callback();
|
|
16
|
+
return [null, data];
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
return [error, null];
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
exports.handler = handler;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const handler: <E = Error, D = unknown>(callback: () => Promise<D>) => Promise<[E, null] | [null, D]>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
export const handler = (callback) => __awaiter(void 0, void 0, void 0, function* () {
|
|
11
|
+
try {
|
|
12
|
+
const data = yield callback();
|
|
13
|
+
return [null, data];
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return [error, null];
|
|
17
|
+
}
|
|
18
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lafrae/errors",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Definições para gerenciamento de erros em javascript",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=18"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"clean": "rm -rf ./dist",
|
|
14
|
+
"build": "npm run clean && npm run build:esm && npm run build:cjs",
|
|
15
|
+
"build:esm": "tsc -b ./tsconfig.esm.json && echo '{\"type\": \"module\"}' > dist/esm/package.json",
|
|
16
|
+
"build:cjs": "tsc -b ./tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json"
|
|
17
|
+
},
|
|
18
|
+
"main": "./dist/cjs/handler.js",
|
|
19
|
+
"module": "./dist/esm/handler.js",
|
|
20
|
+
"types": "dist/handler.d.ts",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/esm/handler.d.ts",
|
|
24
|
+
"import": "./dist/esm/handler.js",
|
|
25
|
+
"require": "./dist/cjs/handler.js"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|