@onerb/core 1.0.0 → 2.0.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/dist/index.cjs CHANGED
@@ -20,24 +20,77 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- AppError: () => AppError
23
+ AppError: () => AppError,
24
+ Left: () => Left,
25
+ Right: () => Right,
26
+ left: () => left,
27
+ right: () => right
24
28
  });
25
29
  module.exports = __toCommonJS(index_exports);
26
30
 
27
31
  // src/errors/app-error.ts
28
32
  var AppError = class extends Error {
29
- message;
30
33
  code;
31
34
  detail;
32
35
  constructor(message, options) {
33
36
  super(message);
34
- this.message = message;
37
+ this.name = "AppError";
35
38
  this.code = options.code;
36
39
  this.detail = options.detail;
37
40
  }
38
41
  };
42
+
43
+ // src/errors/either.ts
44
+ var Left = class _Left {
45
+ _value;
46
+ constructor(value) {
47
+ this._value = value;
48
+ }
49
+ isLeft() {
50
+ return true;
51
+ }
52
+ isRight() {
53
+ return false;
54
+ }
55
+ map(_fn) {
56
+ return new _Left(this._value);
57
+ }
58
+ mapLeft(fn) {
59
+ return new _Left(fn(this._value));
60
+ }
61
+ fold(fl, _fr) {
62
+ return fl(this._value);
63
+ }
64
+ };
65
+ var Right = class _Right {
66
+ _value;
67
+ constructor(value) {
68
+ this._value = value;
69
+ }
70
+ isLeft() {
71
+ return false;
72
+ }
73
+ isRight() {
74
+ return true;
75
+ }
76
+ map(fn) {
77
+ return new _Right(fn(this._value));
78
+ }
79
+ mapLeft(_fn) {
80
+ return new _Right(this._value);
81
+ }
82
+ fold(_fl, fr) {
83
+ return fr(this._value);
84
+ }
85
+ };
86
+ var left = (l) => new Left(l);
87
+ var right = (r) => new Right(r);
39
88
  // Annotate the CommonJS export names for ESM import in node:
40
89
  0 && (module.exports = {
41
- AppError
90
+ AppError,
91
+ Left,
92
+ Right,
93
+ left,
94
+ right
42
95
  });
43
96
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/errors/app-error.ts"],"sourcesContent":["export * from './errors'\n","export class AppError extends Error {\n readonly message: string;\n readonly code: string;\n readonly detail?: string;\n\n constructor(\n message: string, options: { code: string; detail?: string; }\n ) {\n super(message);\n this.message = message;\n this.code = options.code;\n this.detail = options.detail;\n }\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,WAAN,cAAuB,MAAM;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EAET,YACI,SAAiB,SACnB;AACE,UAAM,OAAO;AACb,SAAK,UAAU;AACf,SAAK,OAAO,QAAQ;AACpB,SAAK,SAAS,QAAQ;AAAA,EAC1B;AACJ;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/errors/app-error.ts","../src/errors/either.ts"],"sourcesContent":["export * from './errors'\n","export class AppError extends Error {\n readonly code: string;\n readonly detail?: string;\n\n constructor(message: string, options: { code: string; detail?: string }) {\n super(message);\n this.name = 'AppError';\n this.code = options.code;\n this.detail = options.detail;\n }\n}\n","export type Either<L, R> = Left<L, R> | Right<R, L>;\n\nexport class Left<L, R = never> {\n private readonly _value: L;\n\n constructor(value: L) {\n this._value = value;\n }\n\n isLeft(): this is Left<L, R> {\n return true;\n }\n\n isRight(): this is Left<L, R> {\n return false;\n }\n\n map<T>(_fn: (v: R) => T): Left<L, T> {\n return new Left<L, T>(this._value);\n }\n\n mapLeft<T>(fn: (l: L) => T): Left<T, R> {\n return new Left<T, R>(fn(this._value));\n }\n\n fold<T>(fl: (l: L) => T, _fr: (r: R) => R): T {\n return fl(this._value);\n }\n}\n\nexport class Right<R, L = never> {\n private readonly _value: R;\n\n constructor(value: R) {\n this._value = value;\n }\n\n isLeft(): this is Right<R, L> {\n return false;\n }\n\n isRight(): this is Right<R, L> {\n return true;\n }\n\n map<T>(fn: (v: R) => T): Right<T, L> {\n return new Right<T, L>(fn(this._value));\n }\n\n mapLeft<T>(_fn: (l: L) => T): Right<R, T> {\n return new Right<R, T>(this._value);\n }\n\n fold<T>(_fl: (l: L) => L, fr: (r: R) => T): T {\n return fr(this._value);\n }\n}\n\nexport const left = <L, R = never>(l: L) =>\n new Left<L, R>(l);\n\nexport const right = <R, L = never>(r: R) =>\n new Right<R, L>(r);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,WAAN,cAAuB,MAAM;AAAA,EACzB;AAAA,EACA;AAAA,EAET,YAAY,SAAiB,SAA4C;AACvE,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,OAAO,QAAQ;AACpB,SAAK,SAAS,QAAQ;AAAA,EACxB;AACF;;;ACRO,IAAM,OAAN,MAAM,MAAmB;AAAA,EACb;AAAA,EAEjB,YAAY,OAAU;AACpB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAA6B;AAC3B,WAAO;AAAA,EACT;AAAA,EAEA,UAA8B;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,IAAO,KAA8B;AACnC,WAAO,IAAI,MAAW,KAAK,MAAM;AAAA,EACnC;AAAA,EAEA,QAAW,IAA6B;AACtC,WAAO,IAAI,MAAW,GAAG,KAAK,MAAM,CAAC;AAAA,EACvC;AAAA,EAEA,KAAQ,IAAiB,KAAqB;AAC5C,WAAO,GAAG,KAAK,MAAM;AAAA,EACvB;AACF;AAEO,IAAM,QAAN,MAAM,OAAoB;AAAA,EACd;AAAA,EAEjB,YAAY,OAAU;AACpB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAA8B;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,UAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,IAAO,IAA8B;AACnC,WAAO,IAAI,OAAY,GAAG,KAAK,MAAM,CAAC;AAAA,EACxC;AAAA,EAEA,QAAW,KAA+B;AACxC,WAAO,IAAI,OAAY,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,KAAQ,KAAkB,IAAoB;AAC5C,WAAO,GAAG,KAAK,MAAM;AAAA,EACvB;AACF;AAEO,IAAM,OAAO,CAAe,MACjC,IAAI,KAAW,CAAC;AAEX,IAAM,QAAQ,CAAe,MAClC,IAAI,MAAY,CAAC;","names":[]}
package/dist/index.d.cts CHANGED
@@ -1,5 +1,4 @@
1
1
  declare class AppError extends Error {
2
- readonly message: string;
3
2
  readonly code: string;
4
3
  readonly detail?: string;
5
4
  constructor(message: string, options: {
@@ -8,6 +7,26 @@ declare class AppError extends Error {
8
7
  });
9
8
  }
10
9
 
11
- type Either = {};
10
+ type Either<L, R> = Left<L, R> | Right<R, L>;
11
+ declare class Left<L, R = never> {
12
+ private readonly _value;
13
+ constructor(value: L);
14
+ isLeft(): this is Left<L, R>;
15
+ isRight(): this is Left<L, R>;
16
+ map<T>(_fn: (v: R) => T): Left<L, T>;
17
+ mapLeft<T>(fn: (l: L) => T): Left<T, R>;
18
+ fold<T>(fl: (l: L) => T, _fr: (r: R) => R): T;
19
+ }
20
+ declare class Right<R, L = never> {
21
+ private readonly _value;
22
+ constructor(value: R);
23
+ isLeft(): this is Right<R, L>;
24
+ isRight(): this is Right<R, L>;
25
+ map<T>(fn: (v: R) => T): Right<T, L>;
26
+ mapLeft<T>(_fn: (l: L) => T): Right<R, T>;
27
+ fold<T>(_fl: (l: L) => L, fr: (r: R) => T): T;
28
+ }
29
+ declare const left: <L, R = never>(l: L) => Left<L, R>;
30
+ declare const right: <R, L = never>(r: R) => Right<R, L>;
12
31
 
13
- export { AppError, type Either };
32
+ export { AppError, type Either, Left, Right, left, right };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  declare class AppError extends Error {
2
- readonly message: string;
3
2
  readonly code: string;
4
3
  readonly detail?: string;
5
4
  constructor(message: string, options: {
@@ -8,6 +7,26 @@ declare class AppError extends Error {
8
7
  });
9
8
  }
10
9
 
11
- type Either = {};
10
+ type Either<L, R> = Left<L, R> | Right<R, L>;
11
+ declare class Left<L, R = never> {
12
+ private readonly _value;
13
+ constructor(value: L);
14
+ isLeft(): this is Left<L, R>;
15
+ isRight(): this is Left<L, R>;
16
+ map<T>(_fn: (v: R) => T): Left<L, T>;
17
+ mapLeft<T>(fn: (l: L) => T): Left<T, R>;
18
+ fold<T>(fl: (l: L) => T, _fr: (r: R) => R): T;
19
+ }
20
+ declare class Right<R, L = never> {
21
+ private readonly _value;
22
+ constructor(value: R);
23
+ isLeft(): this is Right<R, L>;
24
+ isRight(): this is Right<R, L>;
25
+ map<T>(fn: (v: R) => T): Right<T, L>;
26
+ mapLeft<T>(_fn: (l: L) => T): Right<R, T>;
27
+ fold<T>(_fl: (l: L) => L, fr: (r: R) => T): T;
28
+ }
29
+ declare const left: <L, R = never>(l: L) => Left<L, R>;
30
+ declare const right: <R, L = never>(r: R) => Right<R, L>;
12
31
 
13
- export { AppError, type Either };
32
+ export { AppError, type Either, Left, Right, left, right };
package/dist/index.js CHANGED
@@ -1,16 +1,65 @@
1
1
  // src/errors/app-error.ts
2
2
  var AppError = class extends Error {
3
- message;
4
3
  code;
5
4
  detail;
6
5
  constructor(message, options) {
7
6
  super(message);
8
- this.message = message;
7
+ this.name = "AppError";
9
8
  this.code = options.code;
10
9
  this.detail = options.detail;
11
10
  }
12
11
  };
12
+
13
+ // src/errors/either.ts
14
+ var Left = class _Left {
15
+ _value;
16
+ constructor(value) {
17
+ this._value = value;
18
+ }
19
+ isLeft() {
20
+ return true;
21
+ }
22
+ isRight() {
23
+ return false;
24
+ }
25
+ map(_fn) {
26
+ return new _Left(this._value);
27
+ }
28
+ mapLeft(fn) {
29
+ return new _Left(fn(this._value));
30
+ }
31
+ fold(fl, _fr) {
32
+ return fl(this._value);
33
+ }
34
+ };
35
+ var Right = class _Right {
36
+ _value;
37
+ constructor(value) {
38
+ this._value = value;
39
+ }
40
+ isLeft() {
41
+ return false;
42
+ }
43
+ isRight() {
44
+ return true;
45
+ }
46
+ map(fn) {
47
+ return new _Right(fn(this._value));
48
+ }
49
+ mapLeft(_fn) {
50
+ return new _Right(this._value);
51
+ }
52
+ fold(_fl, fr) {
53
+ return fr(this._value);
54
+ }
55
+ };
56
+ var left = (l) => new Left(l);
57
+ var right = (r) => new Right(r);
13
58
  export {
14
- AppError
59
+ AppError,
60
+ Left,
61
+ Right,
62
+ left,
63
+ right
15
64
  };
16
65
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors/app-error.ts"],"sourcesContent":["export class AppError extends Error {\n readonly message: string;\n readonly code: string;\n readonly detail?: string;\n\n constructor(\n message: string, options: { code: string; detail?: string; }\n ) {\n super(message);\n this.message = message;\n this.code = options.code;\n this.detail = options.detail;\n }\n}"],"mappings":";AAAO,IAAM,WAAN,cAAuB,MAAM;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EAET,YACI,SAAiB,SACnB;AACE,UAAM,OAAO;AACb,SAAK,UAAU;AACf,SAAK,OAAO,QAAQ;AACpB,SAAK,SAAS,QAAQ;AAAA,EAC1B;AACJ;","names":[]}
1
+ {"version":3,"sources":["../src/errors/app-error.ts","../src/errors/either.ts"],"sourcesContent":["export class AppError extends Error {\n readonly code: string;\n readonly detail?: string;\n\n constructor(message: string, options: { code: string; detail?: string }) {\n super(message);\n this.name = 'AppError';\n this.code = options.code;\n this.detail = options.detail;\n }\n}\n","export type Either<L, R> = Left<L, R> | Right<R, L>;\n\nexport class Left<L, R = never> {\n private readonly _value: L;\n\n constructor(value: L) {\n this._value = value;\n }\n\n isLeft(): this is Left<L, R> {\n return true;\n }\n\n isRight(): this is Left<L, R> {\n return false;\n }\n\n map<T>(_fn: (v: R) => T): Left<L, T> {\n return new Left<L, T>(this._value);\n }\n\n mapLeft<T>(fn: (l: L) => T): Left<T, R> {\n return new Left<T, R>(fn(this._value));\n }\n\n fold<T>(fl: (l: L) => T, _fr: (r: R) => R): T {\n return fl(this._value);\n }\n}\n\nexport class Right<R, L = never> {\n private readonly _value: R;\n\n constructor(value: R) {\n this._value = value;\n }\n\n isLeft(): this is Right<R, L> {\n return false;\n }\n\n isRight(): this is Right<R, L> {\n return true;\n }\n\n map<T>(fn: (v: R) => T): Right<T, L> {\n return new Right<T, L>(fn(this._value));\n }\n\n mapLeft<T>(_fn: (l: L) => T): Right<R, T> {\n return new Right<R, T>(this._value);\n }\n\n fold<T>(_fl: (l: L) => L, fr: (r: R) => T): T {\n return fr(this._value);\n }\n}\n\nexport const left = <L, R = never>(l: L) =>\n new Left<L, R>(l);\n\nexport const right = <R, L = never>(r: R) =>\n new Right<R, L>(r);\n"],"mappings":";AAAO,IAAM,WAAN,cAAuB,MAAM;AAAA,EACzB;AAAA,EACA;AAAA,EAET,YAAY,SAAiB,SAA4C;AACvE,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,OAAO,QAAQ;AACpB,SAAK,SAAS,QAAQ;AAAA,EACxB;AACF;;;ACRO,IAAM,OAAN,MAAM,MAAmB;AAAA,EACb;AAAA,EAEjB,YAAY,OAAU;AACpB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAA6B;AAC3B,WAAO;AAAA,EACT;AAAA,EAEA,UAA8B;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,IAAO,KAA8B;AACnC,WAAO,IAAI,MAAW,KAAK,MAAM;AAAA,EACnC;AAAA,EAEA,QAAW,IAA6B;AACtC,WAAO,IAAI,MAAW,GAAG,KAAK,MAAM,CAAC;AAAA,EACvC;AAAA,EAEA,KAAQ,IAAiB,KAAqB;AAC5C,WAAO,GAAG,KAAK,MAAM;AAAA,EACvB;AACF;AAEO,IAAM,QAAN,MAAM,OAAoB;AAAA,EACd;AAAA,EAEjB,YAAY,OAAU;AACpB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAA8B;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,UAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,IAAO,IAA8B;AACnC,WAAO,IAAI,OAAY,GAAG,KAAK,MAAM,CAAC;AAAA,EACxC;AAAA,EAEA,QAAW,KAA+B;AACxC,WAAO,IAAI,OAAY,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,KAAQ,KAAkB,IAAoB;AAC5C,WAAO,GAAG,KAAK,MAAM;AAAA,EACvB;AACF;AAEO,IAAM,OAAO,CAAe,MACjC,IAAI,KAAW,CAAC;AAEX,IAAM,QAAQ,CAAe,MAClC,IAAI,MAAY,CAAC;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onerb/core",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "description": "Core utilities for Onerb projects.",
5
5
  "license": "MIT",
6
6
  "type": "module",