UNPKG

@nearform/heap-profiler

Version:

Heap dump, sample profiler and allocation timeline generator for Node.

55 lines (50 loc) 1.31 kB
const Ajv = require('ajv') const profileNode = { $id: 'node', type: 'object', properties: { callFrame: { type: 'object', properties: { functionName: { type: 'string' }, scriptId: { type: 'string' }, url: { type: 'string' }, lineNumber: { type: 'number' }, columnNumber: { type: 'number' } }, required: ['functionName', 'scriptId', 'url', 'lineNumber', 'columnNumber'], additionalProperties: false }, selfSize: { type: 'number' }, id: { type: 'number' }, children: { type: 'array', items: { $ref: 'node' } } }, required: ['callFrame', 'selfSize', 'id', 'children'], additionalProperties: false } const profileSample = { $id: 'sample', type: 'array', items: { type: 'object', properties: { size: { type: 'number' }, nodeId: { type: 'number' }, ordinal: { type: 'number' } }, required: ['size', 'nodeId', 'ordinal'], additionalProperties: false } } const profile = { $id: 'profile', type: 'object', properties: { head: { $ref: 'node' }, samples: { $ref: 'sample' } }, required: ['head', 'samples'], additionalProperties: false } const ajv = new Ajv({ schemas: [profileNode, profileSample, profile] }) module.exports = ajv.getSchema('profile')