rcs-data
Version:
RCS消息数据结构
51 lines • 1.66 kB
JavaScript
;
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