add aliases for capitalized methods
This commit is contained in:
parent
1f799bbf13
commit
635d2aea06
|
@ -12,10 +12,10 @@ Instead of returning a nullish error, Grip always returns a consistent status ob
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const [value, status] = grip(callable)
|
const [value, status] = grip(callable)
|
||||||
if (status.Of(MySpecificError)) {
|
if (status.of(MySpecificError)) {
|
||||||
// handle specific error
|
// handle specific error
|
||||||
}
|
}
|
||||||
if (status.Fail()) {
|
if (status.fail()) {
|
||||||
// handle any error
|
// handle any error
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -24,10 +24,10 @@ The call result is better than tuple:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const result = grip(callable)
|
const result = grip(callable)
|
||||||
if (result.Fail()) {
|
if (result.fail()) {
|
||||||
// handle any error
|
// handle any error
|
||||||
}
|
}
|
||||||
if (result.Of(MySpecificError)) {
|
if (result.of(MySpecificError)) {
|
||||||
// handle specific error
|
// handle specific error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
30
dist/grip.js
vendored
30
dist/grip.js
vendored
|
@ -18,12 +18,21 @@ class Err extends Error {
|
||||||
Ok() {
|
Ok() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
ok() {
|
||||||
|
return this.Ok();
|
||||||
|
}
|
||||||
Fail() {
|
Fail() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
fail() {
|
||||||
|
return this.Fail();
|
||||||
|
}
|
||||||
Of(cls) {
|
Of(cls) {
|
||||||
return this.cause instanceof cls || this instanceof cls;
|
return this.cause instanceof cls || this instanceof cls;
|
||||||
}
|
}
|
||||||
|
of(cls) {
|
||||||
|
return this.Of(cls);
|
||||||
|
}
|
||||||
static fromCatch(error) {
|
static fromCatch(error) {
|
||||||
const e = new Err(typeof error === "string" ? error : error.message);
|
const e = new Err(typeof error === "string" ? error : error.message);
|
||||||
e.cause = error;
|
e.cause = error;
|
||||||
|
@ -36,12 +45,21 @@ class Ok {
|
||||||
Ok() {
|
Ok() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
ok() {
|
||||||
|
return this.Ok();
|
||||||
|
}
|
||||||
Fail() {
|
Fail() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
fail() {
|
||||||
|
return this.Fail();
|
||||||
|
}
|
||||||
Of(cls) {
|
Of(cls) {
|
||||||
return this instanceof cls;
|
return this instanceof cls;
|
||||||
}
|
}
|
||||||
|
of(cls) {
|
||||||
|
return this.Of(cls);
|
||||||
|
}
|
||||||
toString() {
|
toString() {
|
||||||
return "Ok";
|
return "Ok";
|
||||||
}
|
}
|
||||||
|
@ -64,12 +82,21 @@ class Result extends Array {
|
||||||
Ok() {
|
Ok() {
|
||||||
return this[1].Ok();
|
return this[1].Ok();
|
||||||
}
|
}
|
||||||
|
ok() {
|
||||||
|
return this.Ok();
|
||||||
|
}
|
||||||
Fail() {
|
Fail() {
|
||||||
return this[1].Fail();
|
return this[1].Fail();
|
||||||
}
|
}
|
||||||
|
fail() {
|
||||||
|
return this.Fail();
|
||||||
|
}
|
||||||
Of(cls) {
|
Of(cls) {
|
||||||
return this[1].Of(cls);
|
return this[1].Of(cls);
|
||||||
}
|
}
|
||||||
|
of(cls) {
|
||||||
|
return this.Of(cls);
|
||||||
|
}
|
||||||
Iter() {
|
Iter() {
|
||||||
const value = this.value;
|
const value = this.value;
|
||||||
const that = this;
|
const that = this;
|
||||||
|
@ -92,6 +119,9 @@ class Result extends Array {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
iter() {
|
||||||
|
return this.Iter();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var promise = (result) => {
|
var promise = (result) => {
|
||||||
return result.then((res) => new Result(res, new Ok)).catch((err) => new Result(null, Err.fromCatch(err)));
|
return result.then((res) => new Result(res, new Ok)).catch((err) => new Result(null, Err.fromCatch(err)));
|
||||||
|
|
|
@ -49,7 +49,7 @@ test("fetch err", async () => {
|
||||||
const [result, status] = await grip(fetch("https://localhost:30012"));
|
const [result, status] = await grip(fetch("https://localhost:30012"));
|
||||||
expect(status.Ok()).toBe(false);
|
expect(status.Ok()).toBe(false);
|
||||||
expect(result === null).toBe(true);
|
expect(result === null).toBe(true);
|
||||||
expect(status.Of(Error)).toBe(true);
|
expect(status.of(Error)).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("fetch json", async () => {
|
test("fetch json", async () => {
|
||||||
|
|
46
grip.ts
46
grip.ts
|
@ -2,20 +2,38 @@ interface Status {
|
||||||
message?: string;
|
message?: string;
|
||||||
cause?: any;
|
cause?: any;
|
||||||
Ok(): boolean;
|
Ok(): boolean;
|
||||||
|
/* alias Ok */
|
||||||
|
ok(): boolean;
|
||||||
Fail(): boolean;
|
Fail(): boolean;
|
||||||
|
/* alias Fail */
|
||||||
|
fail(): boolean;
|
||||||
Of(cls: any): boolean;
|
Of(cls: any): boolean;
|
||||||
|
/* alias Of */
|
||||||
|
of(cls: any): boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Err extends Error {
|
export class Err extends Error {
|
||||||
Ok() {
|
Ok() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/* alias Ok */
|
||||||
|
ok() {
|
||||||
|
return this.Ok();
|
||||||
|
}
|
||||||
Fail() {
|
Fail() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
/* alias Fail */
|
||||||
|
fail() {
|
||||||
|
return this.Fail();
|
||||||
|
}
|
||||||
Of(cls: any) {
|
Of(cls: any) {
|
||||||
return this.cause instanceof cls || this instanceof cls;
|
return this.cause instanceof cls || this instanceof cls;
|
||||||
}
|
}
|
||||||
|
/* alias Of */
|
||||||
|
of(cls: any) {
|
||||||
|
return this.Of(cls);
|
||||||
|
}
|
||||||
static fromCatch(error: any) {
|
static fromCatch(error: any) {
|
||||||
const e = new Err(typeof error === "string" ? error : error.message);
|
const e = new Err(typeof error === "string" ? error : error.message);
|
||||||
e.cause = error;
|
e.cause = error;
|
||||||
|
@ -28,12 +46,24 @@ export class Ok {
|
||||||
Ok() {
|
Ok() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
/* alias Ok */
|
||||||
|
ok() {
|
||||||
|
return this.Ok();
|
||||||
|
}
|
||||||
Fail() {
|
Fail() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/* alias Fail */
|
||||||
|
fail() {
|
||||||
|
return this.Fail();
|
||||||
|
}
|
||||||
Of(cls: any) {
|
Of(cls: any) {
|
||||||
return this instanceof cls;
|
return this instanceof cls;
|
||||||
}
|
}
|
||||||
|
/* alias Of */
|
||||||
|
of(cls: any) {
|
||||||
|
return this.Of(cls);
|
||||||
|
}
|
||||||
toString() {
|
toString() {
|
||||||
return "Ok";
|
return "Ok";
|
||||||
}
|
}
|
||||||
|
@ -66,12 +96,24 @@ class Result<T> extends Array<T | Status> implements IResult<T> {
|
||||||
Ok() {
|
Ok() {
|
||||||
return (this[1] as Status).Ok();
|
return (this[1] as Status).Ok();
|
||||||
}
|
}
|
||||||
|
/* alias Ok */
|
||||||
|
ok() {
|
||||||
|
return this.Ok();
|
||||||
|
}
|
||||||
Fail() {
|
Fail() {
|
||||||
return (this[1] as Status).Fail();
|
return (this[1] as Status).Fail();
|
||||||
}
|
}
|
||||||
|
/* alias Fail */
|
||||||
|
fail() {
|
||||||
|
return this.Fail();
|
||||||
|
}
|
||||||
Of(cls: any) {
|
Of(cls: any) {
|
||||||
return (this[1] as Status).Of(cls);
|
return (this[1] as Status).Of(cls);
|
||||||
}
|
}
|
||||||
|
/* alias Of */
|
||||||
|
of(cls: any) {
|
||||||
|
return this.Of(cls);
|
||||||
|
}
|
||||||
Iter() {
|
Iter() {
|
||||||
const value = this.value;
|
const value = this.value;
|
||||||
const that = this;
|
const that = this;
|
||||||
|
@ -100,6 +142,10 @@ class Result<T> extends Array<T | Status> implements IResult<T> {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
/* alias Iter */
|
||||||
|
iter() {
|
||||||
|
return this.Iter();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type Unwrap<T> =
|
type Unwrap<T> =
|
||||||
|
|
Loading…
Reference in a new issue