stripPrefix adjustment
This commit is contained in:
@@ -22,9 +22,21 @@ describe('hexStripPrefix', (): void => {
|
||||
).toEqual('1223');
|
||||
});
|
||||
|
||||
it('strips the prefix from hex strings (non 2 lnegth)', (): void => {
|
||||
expect(
|
||||
hexStripPrefix('0x123')
|
||||
).toEqual('123');
|
||||
});
|
||||
|
||||
it('returns un-prefixed hex as-is', (): void => {
|
||||
expect(
|
||||
hexStripPrefix('abcd1223')
|
||||
).toEqual('abcd1223');
|
||||
});
|
||||
|
||||
it('throws when invalid hex', (): void => {
|
||||
expect(
|
||||
() => hexStripPrefix('0x0x01ab')
|
||||
).toThrow(/Expected hex value to convert/);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
// Copyright 2017-2021 @polkadot/util authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import { REGEX_HEX_NOPREFIX_IGNORE, REGEX_HEX_PREFIXED_IGNORE } from '../is/hex';
|
||||
|
||||
/**
|
||||
* @name hexStripPrefix
|
||||
* @summary Strips any leading `0x` prefix.
|
||||
@@ -16,9 +18,13 @@
|
||||
* ```
|
||||
*/
|
||||
export function hexStripPrefix (value?: string | null): string {
|
||||
return (!value || value === '0x')
|
||||
? ''
|
||||
: value.startsWith('0x')
|
||||
? value.substr(2)
|
||||
: value;
|
||||
if (!value || value === '0x') {
|
||||
return '';
|
||||
} else if (REGEX_HEX_PREFIXED_IGNORE.test(value)) {
|
||||
return value.substr(2);
|
||||
} else if (REGEX_HEX_NOPREFIX_IGNORE.test(value)) {
|
||||
return value;
|
||||
}
|
||||
|
||||
throw new Error(`Expected hex value to convert, found '${value}'`);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,9 @@ export const REGEX_HEX_PREFIXED = /^0x([\da-fA-F]{2})+$/;
|
||||
|
||||
export const REGEX_HEX_NOPREFIX = /^([\da-fA-F]{2})+$/;
|
||||
|
||||
const REGEX_HEX_PREFIXED_IGNORE = /^0x[\da-fA-F]+$/;
|
||||
export const REGEX_HEX_PREFIXED_IGNORE = /^0x[\da-fA-F]+$/;
|
||||
|
||||
export const REGEX_HEX_NOPREFIX_IGNORE = /^[\da-fA-F]+$/;
|
||||
|
||||
/**
|
||||
* @name isHex
|
||||
|
||||
Reference in New Issue
Block a user