UNPKG

locutus

Version:

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

27 lines (26 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParseInt = ParseInt; function ParseInt(s, base, _bitSize) { // discuss at: https://locutus.io/golang/strconv/ParseInt // parity verified: Go 1.23 // original by: Kevin van Zonneveld (https://kvz.io) // note 1: Interprets a string s in the given base (0, 2 to 36). // note 1: Returns [value, null] on success, [0, error] on failure. // example 1: ParseInt('42', 10, 64)[0] // returns 1: 42 // example 2: ParseInt('ff', 16, 64)[0] // returns 2: 255 // example 3: ParseInt('1010', 2, 64)[0] // returns 3: 10 s = (s + '').trim(); base = Number.parseInt(String(base), 10) || 10; if (base < 2 || base > 36) { return [0, new Error('strconv.ParseInt: invalid base ' + base)]; } const result = parseInt(s, base); if (isNaN(result)) { return [0, new Error('strconv.ParseInt: parsing "' + s + '": invalid syntax')]; } return [result, null]; }