@darkgl/slow-json-stringify
Version:
The fastest JSON stringifier
24 lines • 938 B
JavaScript
import { _makeChunks } from './_makeChunks.js';
import { _makeQueue } from './_makeQueue.js';
import { _prepare } from './_prepare.js';
import { _select } from './_select.js';
import { attr, escape } from './_utils.js';
const sjs = (schema) => {
const { preparedString, preparedSchema } = _prepare(schema);
const queue = _makeQueue(preparedSchema, schema);
const chunks = _makeChunks(preparedString, queue);
const chunkLength = chunks.length - 1;
const queueLength = queue.length;
const selectChunk = _select(chunks);
return (obj) => {
let temp = '';
for (let i = 0; i < queueLength; ++i) {
const { serializer, find } = queue[i];
temp += selectChunk(serializer(find(obj)), i);
}
const { flag, pure, prevUndef } = chunks[chunkLength];
return temp + (flag ? prevUndef : pure);
};
};
export { sjs, attr, escape };
//# sourceMappingURL=sjs.js.map