auto-parse
Version:
Automatically convert any value to its best matching JavaScript type. Supports numbers, booleans, objects, arrays, BigInt, Symbol, comma-separated numbers, prefix stripping, allowed type enforcement and a plugin API.
25 lines (22 loc) • 1.73 kB
JavaScript
const autoParse = require('..')
process.env.TEST_ENV = '123'
console.log('preserveLeadingZeros:', autoParse('0005', { preserveLeadingZeros: true }))
console.log('allowedTypes:', autoParse('42', { allowedTypes: ['string'] }))
console.log('stripStartChars:', autoParse('#5', { stripStartChars: '#' }))
console.log('parseCommaNumbers:', autoParse('1,234', { parseCommaNumbers: true }))
console.log('parseCurrency:', autoParse('$9.99', { parseCurrency: true }))
console.log('currencyAsObject:', autoParse('€9.99', { parseCurrency: true, currencyAsObject: true }))
console.log('currencySymbols:', autoParse('R$5', { parseCurrency: true, currencySymbols: { 'R$': 'BRL' } }))
console.log('parsePercent:', autoParse('85%', { parsePercent: true }))
console.log('percentAsObject:', autoParse('85%', { parsePercent: true, percentAsObject: true }))
console.log('parseUnits:', autoParse('10px', { parseUnits: true }))
console.log('parseRanges:', autoParse('1..3', { parseRanges: true }))
console.log('rangeAsObject:', autoParse('1..3', { parseRanges: true, rangeAsObject: true }))
console.log('booleanSynonyms:', autoParse('yes', { booleanSynonyms: true }))
console.log('parseMapSets:', autoParse('Map:[["a",1]]', { parseMapSets: true }))
console.log('parseTypedArrays:', autoParse('Uint8Array[1,2]', { parseTypedArrays: true }))
console.log('parseExpressions:', autoParse('2 + 3 * 4', { parseExpressions: true }))
console.log('parseDates:', autoParse('2023-06-01', { parseDates: true }))
console.log('expandEnv:', autoParse('$TEST_ENV', { expandEnv: true }))
console.log('parseFunctionStrings:', autoParse('x => x * 2', { parseFunctionStrings: true })(3))
console.log('type option:', autoParse('9007199254740991', { type: BigInt }))