@jargon/platform-sdk-core
Version:
Core components of the Jargon Platform SDK for node.js
49 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.locateCrossReferences = exports.parseCrossReference = void 0;
function parseCrossReference(cr) {
if (cr.startsWith('[') && cr.endsWith(']')) {
cr = cr.substr(1, cr.length - 2);
}
const parts = cr.split(':');
if (parts.length === 1) {
throw new Error('Cross-reference missing type specifier');
}
const t = parts[0];
if (t === 'string') {
if (parts.length === 2) {
return {
type: 'String',
resource: parts[1]
};
}
else if (parts.length === 3) {
return {
type: 'StringVariant',
resource: parts[1],
variant: parts[2]
};
}
throw new Error('Invalid format for a string cross-reference');
}
else if (t === 'response') {
if (parts.length === 4) {
return {
type: 'ResponseComponent',
resource: parts[1],
variant: parts[2],
component: parts[3]
};
}
throw new Error('Invalid format for a response cross-reference');
}
throw new Error(`Unsupported cross-reference type '${t}'`);
}
exports.parseCrossReference = parseCrossReference;
const crossRefRegex = /(\[.*?\])/g;
function locateCrossReferences(msg) {
const ms = msg.match(crossRefRegex);
return ms || [];
}
exports.locateCrossReferences = locateCrossReferences;
//# sourceMappingURL=references.js.map