Skip to content

Commit

Permalink
Fix circular dependencies and add madge check to CI (#323)
Browse files Browse the repository at this point in the history
* Add circular dependencies check to CI

* Fix circular dependencies
  • Loading branch information
dzikowski authored Jul 22, 2024
1 parent d293c6d commit fbb073f
Show file tree
Hide file tree
Showing 31 changed files with 88 additions and 67 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/test-on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ jobs:
run: npm run build
- name: Lint
run: npm run lint
- name: Circular dependencies
run: npm run madge
- name: Test
run: npm run test

Expand Down
3 changes: 1 addition & 2 deletions chain-api/src/types/BurnTokenQuantity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ import BigNumber from "bignumber.js";
import { Type } from "class-transformer";
import { IsNotEmpty, ValidateNested } from "class-validator";

import { BigNumberProperty } from "../utils";
import { BigNumberIsNotNegative } from "../validators";
import { BigNumberIsNotNegative, BigNumberProperty } from "../validators";
import { TokenInstanceKey } from "./TokenInstance";

export class BurnTokenQuantity {
Expand Down
3 changes: 2 additions & 1 deletion chain-api/src/types/ChainObject.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
import { BigNumber } from "bignumber.js";
import { Transform } from "class-transformer";

import { BigNumberProperty, ChainKey } from "../utils";
import { ChainKey } from "../utils";
import { BigNumberProperty } from "../validators";
import { ChainObject } from "./ChainObject";

class TestClass extends ChainObject {
Expand Down
3 changes: 1 addition & 2 deletions chain-api/src/types/GrantAllowance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
import BigNumber from "bignumber.js";
import { IsNotEmpty } from "class-validator";

import { BigNumberProperty } from "../utils";
import { BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";

export class GrantAllowanceQuantity {
@IsNotEmpty()
Expand Down
3 changes: 1 addition & 2 deletions chain-api/src/types/LockTokenQuantity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ import { Type } from "class-transformer";
import { IsNotEmpty, IsOptional, ValidateNested } from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { BigNumberProperty } from "../utils";
import { BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { TokenInstanceKey } from "./TokenInstance";

export class LockTokenQuantity {
Expand Down
11 changes: 9 additions & 2 deletions chain-api/src/types/TokenAllowance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,15 @@ import { BigNumber } from "bignumber.js";
import { Exclude } from "class-transformer";
import { IsDefined, IsInt, IsNotEmpty, IsOptional, IsPositive, Min } from "class-validator";

import { BigNumberProperty, ChainKey, ConstructorArgs, EnumProperty } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, BigNumberIsPositive, IsUserAlias } from "../validators";
import { ChainKey, ConstructorArgs } from "../utils";
import {
BigNumberIsInteger,
BigNumberIsNotNegative,
BigNumberIsPositive,
BigNumberProperty,
EnumProperty,
IsUserAlias
} from "../validators";
import { ChainObject } from "./ChainObject";
import { AllowanceType } from "./common";

Expand Down
10 changes: 5 additions & 5 deletions chain-api/src/types/TokenBalance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ import {
} from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { ChainKey, ConstructorArgs, ValidationFailedError } from "../utils";
import {
BigNumberArrayProperty,
BigNumberIsNotNegative,
BigNumberIsPositive,
BigNumberProperty,
ChainKey,
ConstructorArgs,
ValidationFailedError
} from "../utils";
import { BigNumberIsNotNegative, BigNumberIsPositive, IsUserAlias } from "../validators";
IsUserAlias
} from "../validators";
import { ChainObject, ObjectValidationFailedError } from "./ChainObject";
import { TokenClassKey, TokenClassKeyProperties } from "./TokenClass";
import { TokenInstance, TokenInstanceKey } from "./TokenInstance";
Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/TokenBurn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import { BigNumber } from "bignumber.js";
import { Exclude } from "class-transformer";
import { IsDefined, IsInt, IsNotEmpty, IsPositive } from "class-validator";

import { BigNumberProperty, ChainKey, ConstructorArgs } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ChainKey, ConstructorArgs } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";

export type TokenBurnBody = ConstructorArgs<TokenBurn>;
Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/TokenBurnCounter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import { BigNumber } from "bignumber.js";
import { Exclude } from "class-transformer";
import { IsDefined, IsNotEmpty } from "class-validator";

import { BigNumberProperty, ChainKey } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ChainKey } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";
import { RangedChainObject } from "./RangedChainObject";

Expand Down
10 changes: 8 additions & 2 deletions chain-api/src/types/TokenClaim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,14 @@ import { BigNumber } from "bignumber.js";
import { Exclude } from "class-transformer";
import { IsDefined, IsInt, IsNotEmpty, IsPositive } from "class-validator";

import { BigNumberProperty, ChainKey, EnumProperty } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ChainKey } from "../utils";
import {
BigNumberIsInteger,
BigNumberIsNotNegative,
BigNumberProperty,
EnumProperty,
IsUserAlias
} from "../validators";
import { ChainObject } from "./ChainObject";
import { AllowanceType } from "./common";

Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/TokenClass.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ import {
} from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { BigNumberProperty, ChainKey, ConstructorArgs } from "../utils";
import { BigNumberIsPositive, IsUserAlias } from "../validators";
import { ChainKey, ConstructorArgs } from "../utils";
import { BigNumberIsPositive, BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";
import { GC_NETWORK_ID } from "./contract";
import { ChainCallDTO } from "./dtos";
Expand Down
7 changes: 2 additions & 5 deletions chain-api/src/types/TokenInstance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,8 @@ import {
} from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { ConstructorArgs } from "../utils";
import { ChainKey } from "../utils/chain-decorators";
import { BigNumberProperty } from "../utils/transform-decorators";
import { IsUserAlias } from "../validators";
import { BigNumberIsInteger, BigNumberIsNotNegative } from "../validators/decorators";
import { ChainKey, ConstructorArgs } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";
import { TokenClass, TokenClassKey, TokenClassKeyProperties } from "./TokenClass";
import { ChainCallDTO } from "./dtos";
Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/TokenMintAllowance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
import BigNumber from "bignumber.js";
import { IsDefined, IsNotEmpty } from "class-validator";

import { BigNumberProperty, ChainKey } from "../utils";
import { IsUserAlias } from "../validators";
import { ChainKey } from "../utils";
import { BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";

// Replaces singular TokenClass property totalMintAllowance
Expand Down
8 changes: 4 additions & 4 deletions chain-api/src/types/TokenMintAllowanceRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@
import { BigNumber } from "bignumber.js";
import { IsDefined, IsNotEmpty, IsOptional } from "class-validator";

import { TokenAllowance } from "../types/TokenAllowance";
import { AllowanceType, TokenMintStatus } from "../types/common";
import { BigNumberProperty, ChainKey } from "../utils";
import { BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ChainKey } from "../utils";
import { BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";
import { RangedChainObject } from "./RangedChainObject";
import { TokenAllowance } from "./TokenAllowance";
import { TokenMintAllowance } from "./TokenMintAllowance";
import { AllowanceType, TokenMintStatus } from "./common";

export class TokenMintAllowanceRequest extends RangedChainObject {
public static INDEX_KEY = "GCTMAR";
Expand Down
6 changes: 3 additions & 3 deletions chain-api/src/types/TokenMintFulfillment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
import BigNumber from "bignumber.js";
import { IsDefined, IsNotEmpty } from "class-validator";

import { TokenMintStatus } from "../types";
import { BigNumberProperty, ChainKey } from "../utils";
import { BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ChainKey } from "../utils";
import { BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";
import { TokenMintStatus } from "./common";

export class TokenMintFulfillment extends ChainObject {
public static INDEX_KEY = "GCTMF";
Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/TokenMintRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import BigNumber from "bignumber.js";
import { Type } from "class-transformer";
import { IsDefined, IsNotEmpty, IsOptional } from "class-validator";

import { BigNumberProperty, ChainKey } from "../utils";
import { BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ChainKey } from "../utils";
import { BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { ChainObject } from "./ChainObject";
import { RangedChainObject } from "./RangedChainObject";
import { TokenMintFulfillment } from "./TokenMintFulfillment";
Expand Down
11 changes: 9 additions & 2 deletions chain-api/src/types/allowance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,15 @@ import {
} from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { BigNumberProperty, ConstructorArgs, EnumProperty } from "../utils";
import { ArrayUniqueObjects, BigNumberIsInteger, BigNumberIsPositive, IsUserAlias } from "../validators";
import { ConstructorArgs } from "../utils";
import {
ArrayUniqueObjects,
BigNumberIsInteger,
BigNumberIsPositive,
BigNumberProperty,
EnumProperty,
IsUserAlias
} from "../validators";
import { GrantAllowanceQuantity } from "./GrantAllowance";
import { TokenAllowance } from "./TokenAllowance";
import { TokenInstance, TokenInstanceKey, TokenInstanceQueryKey } from "./TokenInstance";
Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/burn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ import {
} from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { BigNumberProperty, ConstructorArgs } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ConstructorArgs } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { BurnTokenQuantity } from "./BurnTokenQuantity";
import { TokenBurnCounter } from "./TokenBurnCounter";
import { TokenInstance } from "./TokenInstance";
Expand Down
10 changes: 7 additions & 3 deletions chain-api/src/types/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,13 @@ import { Type } from "class-transformer";
import { IsDefined, IsInt, IsNotEmpty, IsOptional, IsPositive } from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { BigNumberProperty, EnumProperty } from "../utils/transform-decorators";
import { IsUserAlias } from "../validators";
import { BigNumberIsInteger, BigNumberIsNotNegative } from "../validators/decorators";
import {
BigNumberIsInteger,
BigNumberIsNotNegative,
BigNumberProperty,
EnumProperty,
IsUserAlias
} from "../validators";
import { ChainCallDTO } from "./dtos";

export enum AllowanceType {
Expand Down
3 changes: 2 additions & 1 deletion chain-api/src/types/contract.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
*/
import BigNumber from "bignumber.js";

import { BigNumberProperty, NotFoundError } from "../utils";
import { NotFoundError } from "../utils";
import { BigNumberProperty } from "../validators";
import { ChainObject } from "./ChainObject";
import { GalaChainResponse } from "./contract";

Expand Down
3 changes: 2 additions & 1 deletion chain-api/src/types/dtos.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ import { classToPlain as instanceToPlain, plainToClass as plainToInstance } from
import { ArrayMinSize, ArrayNotEmpty, IsString } from "class-validator";
import { ec as EC } from "elliptic";

import { BigNumberArrayProperty, BigNumberProperty, getValidationErrorMessages } from "../utils";
import { getValidationErrorMessages } from "../utils";
import { BigNumberArrayProperty, BigNumberProperty } from "../validators";
import { ChainCallDTO, ClassConstructor } from "./dtos";

const getInstanceOrErrorInfo = async <T extends ChainCallDTO>(
Expand Down
8 changes: 4 additions & 4 deletions chain-api/src/types/lock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ import {
} from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { TokenInstance, TokenInstanceKey } from "../types/TokenInstance";
import { ChainCallDTO } from "../types/dtos";
import { BigNumberProperty, ConstructorArgs } from "../utils";
import { BigNumberIsNotNegative, BigNumberIsPositive, IsUserAlias } from "../validators";
import { ConstructorArgs } from "../utils";
import { BigNumberIsNotNegative, BigNumberIsPositive, BigNumberProperty, IsUserAlias } from "../validators";
import { LockTokenQuantity } from "./LockTokenQuantity";
import { TokenInstance, TokenInstanceKey } from "./TokenInstance";
import { ChainCallDTO } from "./dtos";

export type LockTokenRequestParams = ConstructorArgs<LockTokenDto>;

Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/mint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import { Type } from "class-transformer";
import { ArrayMaxSize, ArrayNotEmpty, IsNotEmpty, IsOptional, ValidateNested } from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { BigNumberProperty, ConstructorArgs } from "../utils";
import { ArrayUniqueObjects, BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ConstructorArgs } from "../utils";
import { ArrayUniqueObjects, BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { TokenClassKey } from "./TokenClass";
import { AllowanceKey, MintRequestDto } from "./common";
import { ChainCallDTO } from "./dtos";
Expand Down
4 changes: 2 additions & 2 deletions chain-api/src/types/token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ import {
} from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { BigNumberProperty, ConstructorArgs } from "../utils";
import { BigNumberIsNotNegative, BigNumberIsPositive, IsUserAlias } from "../validators";
import { ConstructorArgs } from "../utils";
import { BigNumberIsNotNegative, BigNumberIsPositive, BigNumberProperty, IsUserAlias } from "../validators";
import { TokenBalance } from "./TokenBalance";
import { TokenClass, TokenClassKey } from "./TokenClass";
import { TokenInstance, TokenInstanceKey } from "./TokenInstance";
Expand Down
8 changes: 4 additions & 4 deletions chain-api/src/types/use.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ import { Type } from "class-transformer";
import { ArrayNotEmpty, IsNotEmpty, IsOptional, IsString, ValidateNested } from "class-validator";
import { JSONSchema } from "class-validator-jsonschema";

import { TokenInstance, TokenInstanceKey } from "../types/TokenInstance";
import { ChainCallDTO } from "../types/dtos";
import { BigNumberProperty, ConstructorArgs } from "../utils";
import { BigNumberIsNotNegative, IsUserAlias } from "../validators";
import { ConstructorArgs } from "../utils";
import { BigNumberIsNotNegative, BigNumberProperty, IsUserAlias } from "../validators";
import { TokenInstance, TokenInstanceKey } from "./TokenInstance";
import { ChainCallDTO } from "./dtos";

export type ReleaseTokenParams = ConstructorArgs<ReleaseTokenDto>;

Expand Down
3 changes: 1 addition & 2 deletions chain-api/src/utils/generate-schema.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,8 @@ import { ArrayNotEmpty, IsNotEmpty, IsOptional, ValidateNested } from "class-val
import { JSONSchema } from "class-validator-jsonschema";

import { ChainCallDTO } from "../types";
import { BigNumberIsPositive } from "../validators";
import { BigNumberIsPositive, BigNumberProperty, EnumProperty } from "../validators";
import { generateResponseSchema, generateSchema } from "./generate-schema";
import { BigNumberProperty, EnumProperty } from "./transform-decorators";

enum YesNoEnum {
Yes,
Expand Down
1 change: 0 additions & 1 deletion chain-api/src/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import signatures from "./signatures";

export * from "./chain-decorators";
export * from "./error";
export * from "./transform-decorators";
export * from "./type-utils";

export {
Expand Down
2 changes: 1 addition & 1 deletion chain-api/src/utils/serialize.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ import BigNumber from "bignumber.js";
import { ArrayMinSize, IsString } from "class-validator";

import { ChainCallDTO, ChainObject } from "../types";
import { BigNumberProperty } from "../validators";
import serialize from "./serialize";
import { BigNumberProperty } from "./transform-decorators";

class TestDTO extends ChainCallDTO {
@BigNumberProperty()
Expand Down
1 change: 1 addition & 0 deletions chain-api/src/validators/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@

export * from "./decorators";
export * from "./IsUserAlias";
export * from "./transform-decorators";
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@ import BigNumber from "bignumber.js";
import { IsOptional } from "class-validator";

import { ChainCallDTO } from "../types";
import { BigNumberIsInteger, BigNumberIsNotNegative } from "../validators";
import deserialize from "./deserialize";
import serialize from "./serialize";
import { deserialize, serialize } from "../utils";
import { BigNumberIsInteger, BigNumberIsNotNegative } from "./decorators";
import { BigNumberProperty } from "./transform-decorators";

describe("infinity", () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import { Transform, Type } from "class-transformer";
import { IsIn, ValidateBy, ValidationOptions, buildMessage } from "class-validator";
import "reflect-metadata";

import { BigNumberIsNotInfinity, IsBigNumber } from "../validators";
import { BigNumberIsNotInfinity, IsBigNumber } from "./decorators";

type ClassConstructor<Signature = unknown[]> = {
new (args: Signature): unknown;
Expand Down

0 comments on commit fbb073f

Please sign in to comment.