mem100x
Version:
⚡ The FASTEST MCP memory server ever built - 66k+ entities/sec with intelligent context detection
78 lines • 2.41 kB
JavaScript
;
/**
* Optimized JSON utilities
* Uses native JSON with additional validation and error handling
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringifyObservations = stringifyObservations;
exports.parseObservations = parseObservations;
exports.stringifyToolResponse = stringifyToolResponse;
exports.stringifyGeneric = stringifyGeneric;
exports.parseJSON = parseJSON;
exports.stringifyEntityResult = stringifyEntityResult;
exports.parseEntityResult = parseEntityResult;
// Optimized stringify for observation arrays with validation
function stringifyObservations(observations) {
return JSON.stringify(observations);
}
// Optimized parse for observations with validation
function parseObservations(json) {
try {
if (!json || json === null || json === undefined) {
return [];
}
const parsed = JSON.parse(json);
if (!Array.isArray(parsed)) {
return [];
}
// Ensure all items are strings
return parsed.map(item => String(item));
}
catch {
return [];
}
}
// Optimized stringifier for tool responses
function stringifyToolResponse(obj) {
return JSON.stringify(obj);
}
// Generic stringify with pretty print support
function stringifyGeneric(obj, pretty = false) {
return pretty ? JSON.stringify(obj, null, 2) : JSON.stringify(obj);
}
// Parse with error handling
function parseJSON(json) {
try {
return JSON.parse(json);
}
catch (error) {
throw new Error(`Invalid JSON: ${error instanceof Error ? error.message : 'Unknown error'}`);
}
}
// Stringify EntityResult
function stringifyEntityResult(entity) {
return JSON.stringify(entity);
}
// Parse EntityResult with validation
function parseEntityResult(json) {
try {
const parsed = JSON.parse(json);
if (parsed?.type !== 'entity' || !parsed.name || !parsed.entityType) {
return null;
}
// Ensure observations is an array
if (!parsed.observations || !Array.isArray(parsed.observations)) {
parsed.observations = [];
}
return {
type: 'entity',
name: parsed.name,
entityType: parsed.entityType,
observations: parsed.observations.map((o) => String(o))
};
}
catch {
return null;
}
}
//# sourceMappingURL=fast-json.js.map