knowmax-quest-utils
Version:
Utilities for creating a Knowmax Quest client.
24 lines • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deserializeIntelligenceCitation = exports.serializeIntelligenceCitation = void 0;
/**
* Build a stable query-string form for an intelligence citation (markdown-safe).
*/
const serializeIntelligenceCitation = (citation) => `title=${encodeMarkdownUrlParam(citation.title)}&questid=${encodeMarkdownUrlParam(citation.questId)}&booktitle=${encodeMarkdownUrlParam(citation.bookTitle)}`;
exports.serializeIntelligenceCitation = serializeIntelligenceCitation;
/**
* Parse a citation query-string into a typed citation (contents left empty).
*/
const deserializeIntelligenceCitation = (query) => {
const params = new URLSearchParams(query);
return {
title: params.get('title') || '',
questId: params.get('questid') || '',
bookTitle: params.get('booktitle') || ''
};
};
exports.deserializeIntelligenceCitation = deserializeIntelligenceCitation;
// encodeURIComponent leaves ( and ) unencoded, but CommonMark uses raw parens to
// determine link boundaries. Encode them explicitly to avoid broken markdown links.
const encodeMarkdownUrlParam = (value) => encodeURIComponent(value).replace(/\(/g, '%28').replace(/\)/g, '%29');
//# sourceMappingURL=citation.js.map