rsocket-rxjs
Version:
RSocket Protocol Client Implementation
78 lines (77 loc) • 2.55 kB
JavaScript
export class WellKnownMimeTypes {
static getByIdentifer(identifier) {
if (WellKnownMimeTypes.initialized == false) {
this._initialize();
}
return this._identifierMap.get(identifier);
}
static getByName(name) {
if (WellKnownMimeTypes.initialized == false) {
this._initialize();
}
return this._nameMap.get(name);
}
static isWellKnown(idOrName) {
if (WellKnownMimeTypes.initialized == false) {
this._initialize();
}
if (typeof (idOrName) == 'number') {
return this._identifierMap.has(idOrName);
}
else if (typeof (idOrName) == 'string') {
return this._nameMap.has(idOrName);
}
else {
throw new Error('IdOrName must either be a number or a string');
}
}
static _initialize() {
for (let key of Object.keys(WellKnownMimeTypes)) {
if (WellKnownMimeTypes[key].name != undefined) {
let type = WellKnownMimeTypes[key];
WellKnownMimeTypes._identifierMap.set(type.identifier, type);
WellKnownMimeTypes._nameMap.set(type.name, type);
}
}
WellKnownMimeTypes.initialized = true;
}
}
WellKnownMimeTypes.TEXT_PLAIN = {
name: 'text/plain',
identifier: 0x21,
};
WellKnownMimeTypes.MESSAGE_X_RSOCKET_COMPOSITE_METADATA_V0 = {
name: 'message/x.rsocket.composite-metadata.v0',
identifier: 0x7F,
};
WellKnownMimeTypes.MESSAGE_X_RSOCKET_ROUTING_V0 = {
name: 'message/x.rsocket.routing.v0',
identifier: 0x7E
};
WellKnownMimeTypes.MESSAGE_X_RSOCKET_AUTHENTICATION_V0 = {
name: 'message/x.rsocket.authentication.v0',
identifier: 0x7C
};
WellKnownMimeTypes.MESSAGE_X_RSOCKET_MIME_TYPE_V0 = {
name: 'message/x.rsocket.mime-type.v0',
identifier: 0x7A
};
WellKnownMimeTypes.MESSAGE_X_RSOCKET_ACCEPT_MIME_TYPES_V0 = {
name: 'message/x.rsocket.accept-mime-types.v0',
identifier: 0x7B
};
WellKnownMimeTypes.APPLICATION_JSON = {
name: 'application/json',
identifier: 0x05
};
WellKnownMimeTypes.APPLICATION_OCTET_STREAM = {
name: 'application/octet-stream',
identifier: 0x06
};
WellKnownMimeTypes.APPLICATION_VND_GOOGLE_PROTOBUF = {
name: 'application/vnd.google.protobuf',
identifier: 0x09
};
WellKnownMimeTypes.initialized = false;
WellKnownMimeTypes._identifierMap = new Map();
WellKnownMimeTypes._nameMap = new Map();