UNPKG

rcs-data

Version:

RCS消息数据结构

73 lines 2.13 kB
"use strict"; 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