UNPKG

rcs-data

Version:

RCS消息数据结构

51 lines 1.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.grammar = void 0; const common_1 = require("../common"); const REGEXP_CONTENT_TRANSFER_ENCODING = new RegExp(/^([a-zA-Z0-9\-_]+)$/); let grammar = { headerRules: { 'Content-Type': { reg: function (value) { return common_1.ContentTypeHeader.parse(value); }, }, 'Content-Transfer-Encoding': { reg: function (value) { let match = value.match(REGEXP_CONTENT_TRANSFER_ENCODING); if (!match) { return undefined; } return { value: match[1].toLowerCase(), }; }, }, }, unknownHeaderRule: { reg: new RegExp(/(.*)/), names: ['value'], }, headerize: function (string) { let exceptions = { 'Mime-Version': 'MIME-Version', 'Content-Id': 'Content-ID', 'Conversation-Id': 'Conversation-ID', 'Contribution-Id': 'Contribution-ID', }; let parts = string.toLowerCase().replace(/_/g, '-').split('-'); let hname = parts.reduce((a, c, i) => (a += (i === 0 ? '' : '-') + c.charAt(0).toUpperCase() + c.slice(1)), ''); if (exceptions[hname]) { hname = exceptions[hname]; } return hname; }, }; exports.grammar = grammar; Object.keys(grammar.headerRules).forEach(function (name) { let rule = grammar.headerRules[name]; if (!rule.reg) { rule.reg = new RegExp(/(.*)/); } }); //# sourceMappingURL=grammar.js.map