@driveflux/result 3.1.4 → 4.0.0-next.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.
Files changed (2) hide show
  1. package/dist/src/index.js +99 -0
  2. package/package.json +7 -7
@@ -0,0 +1,99 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ export class Err {
15
+ /**
16
+ * If the result has a value returns that value. Otherwise returns the passed in value.
17
+ * @param val the value to replace the error with
18
+ */ else(val) {
19
+ return val;
20
+ }
21
+ expect(msg) {
22
+ throw new Error(`${msg} - Error: ${JSON.stringify(this.val)}`);
23
+ }
24
+ unwrap() {
25
+ throw new Error(`Tried to unwrap Error: ${JSON.stringify(this.val)}`);
26
+ }
27
+ map(_mapper) {
28
+ return this;
29
+ }
30
+ mapErr(mapper) {
31
+ return new Err(mapper(this.val));
32
+ }
33
+ constructor(val, metadata){
34
+ _define_property(this, "val", void 0);
35
+ _define_property(this, "metadata", void 0);
36
+ _define_property(this, "ok", void 0);
37
+ _define_property(this, "err", void 0);
38
+ this.val = val;
39
+ this.metadata = metadata;
40
+ this.ok = false;
41
+ this.err = true;
42
+ }
43
+ }
44
+ _define_property(Err, "EMPTY", new Err(undefined));
45
+ export class Ok {
46
+ /**
47
+ * If the result has a value returns that value. Otherwise returns the passed in value.
48
+ * @param val the value to replace the error with
49
+ */ else(_val) {
50
+ return this.val;
51
+ }
52
+ expect(_msg) {
53
+ return this.val;
54
+ }
55
+ unwrap() {
56
+ return this.val;
57
+ }
58
+ map(mapper) {
59
+ return new Ok(mapper(this.val));
60
+ }
61
+ mapErr(_mapper) {
62
+ return this;
63
+ }
64
+ constructor(val, metadata){
65
+ _define_property(this, "val", void 0);
66
+ _define_property(this, "metadata", void 0);
67
+ _define_property(this, "ok", void 0);
68
+ _define_property(this, "err", void 0);
69
+ this.val = val;
70
+ this.metadata = metadata;
71
+ this.ok = true;
72
+ this.err = false;
73
+ }
74
+ }
75
+ _define_property(Ok, "EMPTY", new Ok(undefined));
76
+ export function Results(...results) {
77
+ const okResult = [];
78
+ for (let result of results){
79
+ if (result.ok) {
80
+ okResult.push(result.val);
81
+ } else {
82
+ return new Err(result.val);
83
+ }
84
+ }
85
+ return new Ok(okResult);
86
+ }
87
+ export const isResult = (response)=>{
88
+ return typeof response === 'object' && response && typeof response.ok !== 'undefined' && typeof response.err !== 'undefined';
89
+ };
90
+ export const isErrorWithResult = (response)=>{
91
+ return response.result && isResult(response.result);
92
+ };
93
+ export class ErrorWithResult extends Error {
94
+ constructor(result){
95
+ super('');
96
+ _define_property(this, "result", void 0);
97
+ this.result = result;
98
+ }
99
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/result",
3
- "version": "3.1.4",
3
+ "version": "4.0.0-next.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -17,16 +17,16 @@
17
17
  ],
18
18
  "types": "dist/index.d.ts",
19
19
  "dependencies": {
20
- "@driveflux/problem": "3.1.3"
20
+ "@driveflux/problem": "4.0.0-next.1"
21
21
  },
22
22
  "devDependencies": {
23
- "@swc/cli": "^0.1.63",
24
- "@swc/core": "^1.3.99",
25
- "@types/node": "^20.9.5",
23
+ "@swc/cli": "^0.3.9",
24
+ "@swc/core": "^1.4.0",
25
+ "@types/node": "^20.11.16",
26
26
  "del-cli": "^5.1.0",
27
- "esbuild": "^0.19.7",
27
+ "esbuild": "^0.20.0",
28
28
  "esbuild-register": "^3.5.0",
29
- "typescript": "5.3.2"
29
+ "typescript": "^5.3.3"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "npm run clean && npm run build:types && npm run build:js",