UNPKG

rsuite-theme

Version:
51 lines (38 loc) 925 B
'use strict'; var own = {}.hasOwnProperty; module.exports = stringify; function stringify(value) { /* Nothing. */ if (!value || typeof value !== 'object') { return null; } /* Node. */ if (own.call(value, 'position') || own.call(value, 'type')) { return location(value.position); } /* Location. */ if (own.call(value, 'start') || own.call(value, 'end')) { return location(value); } /* Position. */ if (own.call(value, 'line') || own.call(value, 'column')) { return position(value); } /* ? */ return null; } function position(pos) { if (!pos || typeof pos !== 'object') { pos = {}; } return index(pos.line) + ':' + index(pos.column); } function location(loc) { if (!loc || typeof loc !== 'object') { loc = {}; } return position(loc.start) + '-' + position(loc.end); } function index(value) { return value && typeof value === 'number' ? value : 1; }