Buckets:
| ; | |
| /** | |
| * Wrappers for common types. | |
| * @type {Object.<string,IWrapper>} | |
| * @const | |
| */ | |
| var wrappers = exports; | |
| var Message = require("./message"), | |
| util = require("./util/minimal"); | |
| /** | |
| * From object converter part of an {@link IWrapper}. | |
| * @typedef WrapperFromObjectConverter | |
| * @type {function} | |
| * @param {Object.<string,*>} object Plain object | |
| * @returns {Message<{}>} Message instance | |
| * @this Type | |
| */ | |
| /** | |
| * To object converter part of an {@link IWrapper}. | |
| * @typedef WrapperToObjectConverter | |
| * @type {function} | |
| * @param {Message<{}>} message Message instance | |
| * @param {IConversionOptions} [options] Conversion options | |
| * @returns {Object.<string,*>} Plain object | |
| * @this Type | |
| */ | |
| /** | |
| * Common type wrapper part of {@link wrappers}. | |
| * @interface IWrapper | |
| * @property {WrapperFromObjectConverter} [fromObject] From object converter | |
| * @property {WrapperToObjectConverter} [toObject] To object converter | |
| */ | |
| // Custom wrapper for Any | |
| wrappers[".google.protobuf.Any"] = { | |
| fromObject: function(object, depth) { | |
| // unwrap value type if mapped | |
| if (object && object["@type"]) { | |
| // Only use fully qualified type name after the last '/' | |
| var name = object["@type"].substring(object["@type"].lastIndexOf("/") + 1); | |
| var type = this.lookup(name); | |
| /* istanbul ignore else */ | |
| if (type) { | |
| // type_url does not accept leading "." | |
| var type_url = object["@type"].charAt(0) === "." ? | |
| object["@type"].slice(1) : object["@type"]; | |
| // type_url prefix is optional, but path seperator is required | |
| if (type_url.indexOf("/") === -1) { | |
| type_url = "/" + type_url; | |
| } | |
| return this.create({ | |
| type_url: type_url, | |
| value: type.encode(type.fromObject(object, depth === undefined ? 1 : depth + 1)).finish() | |
| }); | |
| } | |
| } | |
| return this.fromObject(object, depth); | |
| }, | |
| toObject: function(message, options, depth) { | |
| if (depth === undefined) | |
| depth = 0; | |
| if (depth > util.recursionLimit) | |
| throw Error("max depth exceeded"); | |
| // Default prefix | |
| var googleApi = "type.googleapis.com/"; | |
| var prefix = ""; | |
| var name = ""; | |
| // decode value if requested and unmapped | |
| if (options && options.json && message.type_url && message.value) { | |
| // Only use fully qualified type name after the last '/' | |
| name = message.type_url.substring(message.type_url.lastIndexOf("/") + 1); | |
| // Separate the prefix used | |
| prefix = message.type_url.substring(0, message.type_url.lastIndexOf("/") + 1); | |
| var type = this.lookup(name); | |
| /* istanbul ignore else */ | |
| if (type) | |
| message = type.decode(message.value, undefined, undefined, depth + 1); | |
| } | |
| // wrap value if unmapped | |
| if (!(message instanceof this.ctor) && message instanceof Message) { | |
| var object = message.$type.toObject(message, options, depth + 1); | |
| var messageName = message.$type.fullName[0] === "." ? | |
| message.$type.fullName.slice(1) : message.$type.fullName; | |
| // Default to type.googleapis.com prefix if no prefix is used | |
| if (prefix === "") { | |
| prefix = googleApi; | |
| } | |
| name = prefix + messageName; | |
| object["@type"] = name; | |
| return object; | |
| } | |
| return this.toObject(message, options, depth); | |
| } | |
| }; | |
Xet Storage Details
- Size:
- 3.66 kB
- Xet hash:
- 20845436da6ee7c0e767ea216d99a8e77c07f72d323e763ac6302f403ba6ca03
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.