@multiplayer-app/session-recorder-common
Version:
Multiplayer Fullstack Session Recorder - opentelemetry
50 lines • 1.43 kB
JavaScript
import * as _toJsonSchema from 'to-json-schema';
// @ts-ignore
var toJsonSchema = (_toJsonSchema === null || _toJsonSchema === void 0 ? void 0 : _toJsonSchema.default) || _toJsonSchema;
var defaultSchemifyOptions = {
strings: {
preProcessFnc: function (value, defaultFnc) {
if ((value === null || value === void 0 ? void 0 : value.length) >= 30) {
return defaultFnc('some_string');
}
return defaultFnc(value);
},
},
arrays: {
mode: 'first',
},
};
export default (function (payload, stringify, options) {
if (stringify === void 0) { stringify = true; }
if (options === void 0) { options = defaultSchemifyOptions; }
if (!payload) {
return '';
}
var payloadJson;
if (typeof payload === 'string') {
try {
payloadJson = JSON.parse(payload);
}
catch (_a) {
return payload;
}
}
else if (typeof payload === 'object') {
payloadJson = payload;
}
else {
return payload;
}
try {
var schema = toJsonSchema(payloadJson, options);
if (stringify) {
return JSON.stringify(schema);
}
return schema;
}
catch (err) {
// error can happen when array has items like ['test', 'asd', '1'], type for '1' is null
return '';
}
});
//# sourceMappingURL=schemify.js.map