knowmax-quest-utils
Version:
Utilities for creating a Knowmax Quest client.
19 lines • 977 B
JavaScript
/**
* Build a stable query-string form for an intelligence citation (markdown-safe).
*/
export const serializeIntelligenceCitation = (citation) => `title=${encodeMarkdownUrlParam(citation.title)}&questid=${encodeMarkdownUrlParam(citation.questId)}&booktitle=${encodeMarkdownUrlParam(citation.bookTitle)}`;
/**
* Parse a citation query-string into a typed citation (contents left empty).
*/
export const deserializeIntelligenceCitation = (query) => {
const params = new URLSearchParams(query);
return {
title: params.get('title') || '',
questId: params.get('questid') || '',
bookTitle: params.get('booktitle') || ''
};
};
// 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