diff --git a/packages/types-codec/src/extended/Range.spec.ts b/packages/types-codec/src/extended/Range.spec.ts index cb53b752b6..bf13a54211 100644 --- a/packages/types-codec/src/extended/Range.spec.ts +++ b/packages/types-codec/src/extended/Range.spec.ts @@ -9,12 +9,7 @@ describe('Range', (): void => { let range: Range; beforeEach((): void => { - const Clazz = Range.with(U32); - - range = new Clazz( - registry, - [new U32(registry, 1), new U32(registry, 2)] - ); + range = new (Range.with(U32))(registry, [1, 2]); }); it('decodes', (): void => { diff --git a/packages/types-codec/src/extended/Range.ts b/packages/types-codec/src/extended/Range.ts index fc498b82fa..6b60756681 100644 --- a/packages/types-codec/src/extended/Range.ts +++ b/packages/types-codec/src/extended/Range.ts @@ -7,6 +7,10 @@ import { Tuple } from '../base/Tuple'; type RangeType = 'Range' | 'RangeInclusive'; +interface Options { + rangeName?: RangeType; +} + /** * @name Range * @description @@ -15,19 +19,16 @@ type RangeType = 'Range' | 'RangeInclusive'; export class Range extends Tuple { #rangeName: RangeType; - constructor (registry: Registry, Type: CodecClass | string, value?: AnyTuple, rangeName: RangeType = 'Range') { - super(registry, { - end: Type, - start: Type - }, value); + constructor (registry: Registry, Type: CodecClass | string, value?: AnyTuple, { rangeName = 'Range' }: Options = {}) { + super(registry, [Type, Type], value); this.#rangeName = rangeName; } - public static override with (Types: CodecClass | string): CodecClass> { + public static override with (Type: CodecClass | string): CodecClass> { return class extends Range { constructor (registry: Registry, value?: AnyTuple) { - super(registry, Types, value); + super(registry, Type, value); } }; } diff --git a/packages/types-codec/src/extended/RangeInclusive.ts b/packages/types-codec/src/extended/RangeInclusive.ts index 0de0608ab9..43ba0096fe 100644 --- a/packages/types-codec/src/extended/RangeInclusive.ts +++ b/packages/types-codec/src/extended/RangeInclusive.ts @@ -7,7 +7,7 @@ import { Range } from './Range'; export class RangeInclusive extends Range { constructor (registry: Registry, Type: CodecClass | string, value?: AnyTuple) { - super(registry, Type, value, 'RangeInclusive'); + super(registry, Type, value, { rangeName: 'RangeInclusive' }); } public static override with (Type: CodecClass | string): CodecClass> { diff --git a/packages/types-codec/src/extended/WrapperKeepOpaque.ts b/packages/types-codec/src/extended/WrapperKeepOpaque.ts index ee82b25316..57bbc1fb6b 100644 --- a/packages/types-codec/src/extended/WrapperKeepOpaque.ts +++ b/packages/types-codec/src/extended/WrapperKeepOpaque.ts @@ -11,6 +11,10 @@ import { Bytes } from './Bytes'; type OpaqueName = 'WrapperKeepOpaque' | 'WrapperOpaque'; +interface Options { + opaqueName?: OpaqueName; +} + function decodeRaw (registry: Registry, typeName: CodecClass | string, value?: unknown): [CodecClass, T | null, AnyU8a] { const Type = typeToConstructor(registry, typeName); @@ -38,7 +42,7 @@ export class WrapperKeepOpaque extends Bytes { readonly #opaqueName: OpaqueName; - constructor (registry: Registry, typeName: CodecClass | string, value?: unknown, opaqueName: OpaqueName = 'WrapperKeepOpaque') { + constructor (registry: Registry, typeName: CodecClass | string, value?: unknown, { opaqueName = 'WrapperKeepOpaque' }: Options = {}) { const [Type, decoded, u8a] = decodeRaw(registry, typeName, value); super(registry, u8a); diff --git a/packages/types-codec/src/extended/WrapperOpaque.ts b/packages/types-codec/src/extended/WrapperOpaque.ts index 9bbeaeb3a9..41d71fb556 100644 --- a/packages/types-codec/src/extended/WrapperOpaque.ts +++ b/packages/types-codec/src/extended/WrapperOpaque.ts @@ -7,7 +7,7 @@ import { WrapperKeepOpaque } from './WrapperKeepOpaque'; export class WrapperOpaque extends WrapperKeepOpaque { constructor (registry: Registry, typeName: CodecClass | string, value?: unknown) { - super(registry, typeName, value, 'WrapperOpaque'); + super(registry, typeName, value, { opaqueName: 'WrapperOpaque' }); } public static override with (Type: CodecClass | string): CodecClass> {