UNPKG

992 BJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.createBaseFormatterFactory = createBaseFormatterFactory;
7
8var _factory = require("../../utils/factory.js");
9
10var _number = require("../../utils/number.js");
11
12function baseFormatter(base) {
13 var prefixes = {
14 2: '0b',
15 8: '0o',
16 16: '0x'
17 };
18 var prefix = prefixes[base];
19 return function (n) {
20 if (n > Math.pow(2, 31) - 1 || n < -Math.pow(2, 31)) {
21 throw new Error('Value must be in range [-2^31, 2^31-1]');
22 }
23
24 if (!(0, _number.isInteger)(n)) {
25 throw new Error('Value must be an integer');
26 }
27
28 if (n < 0) {
29 n = n + Math.pow(2, 32);
30 }
31
32 return "".concat(prefix).concat(n.toString(base));
33 };
34}
35
36var dependencies = ['typed'];
37
38function createBaseFormatterFactory(name, base) {
39 return (0, _factory.factory)(name, dependencies, function (_ref) {
40 var typed = _ref.typed;
41 return typed(name, {
42 number: baseFormatter(base)
43 });
44 });
45}
\No newline at end of file