UNPKG

knowmax-quest-utils

Version:

Utilities for creating a Knowmax Quest client.

24 lines 1.28 kB
"use strict"; 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