Skip to content

Commit

Permalink
refactor(keto-relations-parser): improve errors typing
Browse files Browse the repository at this point in the history
  • Loading branch information
getlarge committed May 23, 2024
1 parent ac50408 commit 786fd9b
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 22 deletions.
3 changes: 2 additions & 1 deletion packages/base-client-wrapper/src/lib/ory-base.service.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { HttpService } from '@nestjs/axios';
import { Inject, Injectable, Logger, OnModuleInit } from '@nestjs/common';
import { setTimeout } from 'node:timers/promises';

import { isAxiosError, isOryError, OryError } from './ory-error';

Expand Down Expand Up @@ -33,7 +34,7 @@ export class OryBaseService implements OnModuleInit {
this.logger.debug(
`Retrying request to ${config.url} in ${retryDelay}ms`
);
await new Promise((resolve) => setTimeout(resolve, retryDelay));
await setTimeout(retryDelay);
return this.httpService.axiosRef(config);
}
const oryError = new OryError(error);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { defekt } from 'defekt';
import { CustomErrorConstructor, defekt } from 'defekt';

export type RelationTupleSyntaxErrorDetail = {
wholeInput: string;
Expand All @@ -7,9 +7,11 @@ export type RelationTupleSyntaxErrorDetail = {
offendingSymbol?: string;
};

export class RelationTupleSyntaxError extends defekt<
{ errors: Array<RelationTupleSyntaxErrorDetail> },
const Defekt: CustomErrorConstructor<
{
errors: Array<RelationTupleSyntaxErrorDetail>;
},
'RelationTupleSyntaxError'
>({
code: 'RelationTupleSyntaxError',
}) {}
> = defekt({ code: 'RelationTupleSyntaxError' });

export class RelationTupleSyntaxError extends Defekt {}
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
import { defekt } from 'defekt';
import { CustomErrorConstructor, defekt } from 'defekt';

export type TupleToPermissionErrorDetail = {
tuple: unknown;
};

export class TupleToPermissionError extends defekt<
{ errors: Array<TupleToPermissionErrorDetail> },
const Defekt: CustomErrorConstructor<
{
errors: Array<TupleToPermissionErrorDetail>;
},
'TupleToPermissionError'
>({
> = defekt({
code: 'TupleToPermissionError',
}) {}
});

export class TupleToPermissionError extends Defekt {}
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
import { defekt } from 'defekt';
import { CustomErrorConstructor, defekt } from 'defekt';

export type TupleToRelationshipErrorDetail = {
tuple: unknown;
};

export class TupleToRelationshipError extends defekt<
{ errors: Array<TupleToRelationshipErrorDetail> },
const Defekt: CustomErrorConstructor<
{
errors: Array<TupleToRelationshipErrorDetail>;
},
'TupleToRelationshipError'
>({
> = defekt({
code: 'TupleToRelationshipError',
}) {}
});

export class TupleToRelationshipError extends Defekt {}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { defekt } from 'defekt';
import { CustomErrorConstructor, defekt } from 'defekt';

export class UnknownError extends defekt<unknown, 'UnknownError'>({
const Defekt: CustomErrorConstructor<unknown, 'UnknownError'> = defekt({
code: 'UnknownError',
}) {}
});

export class UnknownError extends Defekt {}
8 changes: 6 additions & 2 deletions packages/keto-relations-parser/src/lib/util/get.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
export const get = <TObject extends object, TKey extends keyof TObject>(
export const get = <
TObject extends object,
TKey extends keyof TObject,
R = unknown
>(
obj: TObject,
path: TKey,
defaultValue = undefined
) => {
): R => {
const travel = (regexp: RegExp) =>
String.prototype.split
.call(path, regexp)
Expand Down

0 comments on commit 786fd9b

Please sign in to comment.