rcs-data
Version:
RCS消息数据结构
73 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.grammar = void 0;
const common_1 = require("../common");
const SINGLE_HEADERS = {
From: true,
DateTime: true,
};
const grammar = {
headerRules: {
From: {
reg: function (value) {
return common_1.NameAddrHeader.parse(value);
},
},
To: {
reg: function (value) {
return common_1.NameAddrHeader.parse(value);
},
},
cc: {
reg: new RegExp(/^(.*[^ ])?[ ]*<(.*)>$/),
names: ['name', 'uri'],
},
DateTime: {
reg: function (value) {
let date;
if (typeof value === 'object') {
return new common_1.DateTime(value);
}
else {
date = new Date(value);
if (date) {
return new common_1.DateTime(value);
}
else {
return undefined;
}
}
},
},
NS: {
reg: new RegExp(/^([a-zA-Z0-9!#$%&'+,\-\^_`|~]+)?[ ]*<(.*)>$/),
names: ['prefix', 'uri'],
},
},
unknownHeaderRule: {
reg: new RegExp(/(.*)/),
names: ['value'],
},
isSingleHeader(name) {
return !!SINGLE_HEADERS[name];
},
NS_PREFIX_CORE: 'urn:ietf:params:cpim-headers:',
headerize(string) {
let name = string.toLowerCase().replace(/_/g, '-').split('-'), hname = '', parts = name.length, part;
for (part = 0; part < parts; part++) {
if (part !== 0) {
hname += '-';
}
hname += name[part].charAt(0).toUpperCase() + name[part].substring(1);
}
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