fast-json-stringify
Advanced tools
Comparing version 0.12.4 to 0.13.0
50
index.js
@@ -405,3 +405,45 @@ 'use strict' | ||
var result = nested(laterCode, name, '[i]', schema.items, externalSchema, fullSchema) | ||
var result = {code: '', laterCode: ''} | ||
if (Array.isArray(schema.items)) { | ||
result = schema.items.reduce((res, item, i) => { | ||
var accessor = '[i]' | ||
const tmpRes = nested(laterCode, name, accessor, item, externalSchema, fullSchema, i) | ||
var condition | ||
switch (item.type) { | ||
case 'null': | ||
condition = `obj${accessor} === null` | ||
break | ||
case 'string': | ||
condition = `typeof obj${accessor} === 'string'` | ||
break | ||
case 'integer': | ||
condition = `Number.isInteger(obj${accessor})` | ||
break | ||
case 'number': | ||
condition = `!Number.isInteger(obj${accessor}) && Number.isFinite(obj${accessor})` | ||
break | ||
case 'boolean': | ||
condition = `typeof obj${accessor} === 'boolean'` | ||
break | ||
case 'object': | ||
condition = `obj${accessor} && typeof obj${accessor} === 'object' && obj${accessor}.constructor === Object` | ||
break | ||
case 'array': | ||
condition = `Array.isArray(obj${accessor})` | ||
break | ||
default: | ||
throw new Error(`${item.type} unsupported`) | ||
} | ||
return { | ||
code: `${res.code} | ||
if (${condition}) { | ||
${tmpRes.code} | ||
}`, | ||
laterCode: `${res.laterCode} | ||
${tmpRes.laterCode}` | ||
} | ||
}, result) | ||
} else { | ||
result = nested(laterCode, name, '[i]', schema.items, externalSchema, fullSchema) | ||
} | ||
@@ -432,3 +474,3 @@ code += ` | ||
function nested (laterCode, name, key, schema, externalSchema, fullSchema) { | ||
function nested (laterCode, name, key, schema, externalSchema, fullSchema, subKey) { | ||
var code = '' | ||
@@ -465,3 +507,3 @@ var funcName | ||
case 'object': | ||
funcName = (name + key).replace(/[-.\[\]]/g, '') // eslint-disable-line | ||
funcName = (name + key + subKey).replace(/[-.\[\]]/g, '') // eslint-disable-line | ||
laterCode = buildObject(schema, laterCode, funcName, externalSchema, fullSchema) | ||
@@ -473,3 +515,3 @@ code += ` | ||
case 'array': | ||
funcName = (name + key).replace(/[-.\[\]]/g, '') // eslint-disable-line | ||
funcName = (name + key + subKey).replace(/[-.\[\]]/g, '') // eslint-disable-line | ||
laterCode = buildArray(schema, laterCode, funcName, externalSchema, fullSchema) | ||
@@ -476,0 +518,0 @@ code += ` |
{ | ||
"name": "fast-json-stringify", | ||
"version": "0.12.4", | ||
"version": "0.13.0", | ||
"description": "Stringify your JSON at max speed", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
56249
20
1895