UNPKG

@barchart/common-js

Version:
78 lines (76 loc) 2.8 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var base52_exports = {}; __export(base52_exports, { fromBaseTen: () => fromBaseTen }); module.exports = __toCommonJS(base52_exports); var assert = __toESM(require("./assert.js")); var is = __toESM(require("./is.js")); const BASE = 52; const characters = []; for (let c = 97; c < 123; c++) { characters.push(String.fromCharCode(c)); } for (let c = 65; c < 91; c++) { characters.push(String.fromCharCode(c)); } function fromBaseTen(value, places) { assert.argumentIsValid(value, "value", is.large, "must be an integer"); if (places) { assert.argumentIsValid(places, "places", is.integer, "must be an integer"); assert.argumentIsValid(places, "places", is.positive, "must be positive"); } const absolute = Math.abs(value); const negative = value < 0; let placesToUse; if (places) { placesToUse = places; } else { placesToUse = 1; while (true) { if (absolute < Math.pow(BASE, placesToUse)) { break; } placesToUse = placesToUse + 1; } } const builder = []; if (negative) { builder.push("-"); } let remaining = absolute; for (let place = placesToUse; place > 0; place--) { const magnitude = Math.pow(BASE, place - 1); const multiples = Math.floor(remaining / magnitude); const character = characters[multiples]; remaining = remaining - multiples * magnitude; builder.push(character); } return builder.join(""); }