27 lines
725 B
JavaScript
27 lines
725 B
JavaScript
|
var utils = require('../utils')
|
||
|
, nodes = require('../nodes');
|
||
|
|
||
|
/**
|
||
|
* Return a `Literal` `num` converted to the provided `base`, padded to `width`
|
||
|
* with zeroes (default width is 2)
|
||
|
*
|
||
|
* @param {Number} num
|
||
|
* @param {Number} base
|
||
|
* @param {Number} width
|
||
|
* @return {Literal}
|
||
|
* @api public
|
||
|
*/
|
||
|
|
||
|
(module.exports = function(num, base, width) {
|
||
|
utils.assertPresent(num, 'number');
|
||
|
utils.assertPresent(base, 'base');
|
||
|
num = utils.unwrap(num).nodes[0].val;
|
||
|
base = utils.unwrap(base).nodes[0].val;
|
||
|
width = (width && utils.unwrap(width).nodes[0].val) || 2;
|
||
|
var result = Number(num).toString(base);
|
||
|
while (result.length < width) {
|
||
|
result = '0' + result;
|
||
|
}
|
||
|
return new nodes.Literal(result);
|
||
|
}).raw = true;
|