From 5b978246a77b98e47162d3580ad1052cfffb4e6e Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 19 Dec 2018 09:29:53 +0100 Subject: [PATCH] Remove circular imports from types (#492) * Remove circular imports from types - These are creating issues on RN and is not correct - Uint is equivalent to BN (extends it), so remove it. - Don't import all classes (it imports types itself) - CodecTypes can be exposed elsewhere if needed * Cleanup linting & imports * Cleanup compact decoding --- packages/api/src/Base.ts | 10 ++++------ packages/type-jsonrpc/src/create/param.ts | 2 +- packages/type-jsonrpc/src/types.ts | 2 +- packages/types/src/classes.ts | 7 +++++++ packages/types/src/codec/Compact.ts | 10 ++++------ packages/types/src/types.ts | 7 +------ 6 files changed, 18 insertions(+), 20 deletions(-) create mode 100644 packages/types/src/classes.ts diff --git a/packages/api/src/Base.ts b/packages/api/src/Base.ts index 237cdbc038..032d6f98f3 100644 --- a/packages/api/src/Base.ts +++ b/packages/api/src/Base.ts @@ -11,9 +11,7 @@ import extrinsicsFromMeta from '@polkadot/extrinsics/fromMetadata'; import { Storage } from '@polkadot/storage/types'; import storageFromMeta from '@polkadot/storage/fromMetadata'; import registry from '@polkadot/types/codec/typeRegistry'; -import { Hash, Method, RuntimeVersion } from '@polkadot/types/index'; -import Event from '@polkadot/types/Event'; -import RuntimeMetadata from '@polkadot/types/Metadata'; +import { Event, Hash, Metadata, Method, RuntimeVersion } from '@polkadot/types/index'; import { Extrinsics } from '@polkadot/types/Method'; import { assert, isFunction, isObject, isUndefined, logger } from '@polkadot/util'; @@ -36,7 +34,7 @@ export default abstract class ApiBase implements ApiBaseInterface implements ApiBaseInterface implements Codec { ); } else if (isNumber(value) || isBn(value)) { return new Type(bnToBn(value)); - } else if (isU8a(value)) { - const [, _value] = Compact.decodeU8a(value, new Type(0).bitLength()); - - return new Type(_value); } - return new Type(value.toBn()); + const [, _value] = Compact.decodeU8a(value, new Type(0).bitLength()); + + return new Type(_value); } /** diff --git a/packages/types/src/types.ts b/packages/types/src/types.ts index 03b11e478e..9a46279306 100644 --- a/packages/types/src/types.ts +++ b/packages/types/src/types.ts @@ -3,11 +3,8 @@ // of the Apache-2.0 license. See the LICENSE file for details. import BN from 'bn.js'; -import * as Classes from './index'; -import { UInt } from './codec'; - -export type AnyNumber = UInt | BN | Uint8Array | number | string; +export type AnyNumber = BN | Uint8Array | number | string; export type AnyString = string | String; @@ -51,8 +48,6 @@ export interface Codec { export type CodecTo = 'toHex' | 'toJSON' | 'toString' | 'toU8a'; -export type CodecTypes = keyof typeof Classes; - export type Constructor = { new(value?: any): T }; export type ConstructorDef = { [index: string]: Constructor };