| "use strict"; |
| var protobuf = module.exports = require("./index-minimal"); |
| |
| protobuf.build = "light"; |
| |
| /** |
| * A node-style callback as used by {@link load} and {@link Root#load}. |
| * @typedef LoadCallback |
| * @type {function} |
| * @param {Error|null} error Error, if any, otherwise `null` |
| * @param {Root} [root] Root, if there hasn't been an error |
| * @returns {undefined} |
| */ |
| |
| /** |
| * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. |
| * @param {string|string[]} filename One or multiple files to load |
| * @param {Root} root Root namespace, defaults to create a new one if omitted. |
| * @param {LoadCallback} callback Callback function |
| * @returns {undefined} |
| * @see {@link Root#load} |
| */ |
| function load(filename, root, callback) { |
| if (typeof root === "function") { |
| callback = root; |
| root = new protobuf.Root(); |
| } else if (!root) |
| root = new protobuf.Root(); |
| return root.load(filename, callback); |
| } |
| |
| /** |
| * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback. |
| * @name load |
| * @function |
| * @param {string|string[]} filename One or multiple files to load |
| * @param {LoadCallback} callback Callback function |
| * @returns {undefined} |
| * @see {@link Root#load} |
| * @variation 2 |
| */ |
| // function load(filename:string, callback:LoadCallback):undefined |
| |
| /** |
| * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise. |
| * @name load |
| * @function |
| * @param {string|string[]} filename One or multiple files to load |
| * @param {Root} [root] Root namespace, defaults to create a new one if omitted. |
| * @returns {Promise<Root>} Promise |
| * @see {@link Root#load} |
| * @variation 3 |
| */ |
| // function load(filename:string, [root:Root]):Promise<Root> |
| |
| protobuf.load = load; |
| |
| /** |
| * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only). |
| * @param {string|string[]} filename One or multiple files to load |
| * @param {Root} [root] Root namespace, defaults to create a new one if omitted. |
| * @returns {Root} Root namespace |
| * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid |
| * @see {@link Root#loadSync} |
| */ |
| function loadSync(filename, root) { |
| if (!root) |
| root = new protobuf.Root(); |
| return root.loadSync(filename); |
| } |
| |
| protobuf.loadSync = loadSync; |
| |
| // Serialization |
| protobuf.encoder = require("./encoder"); |
| protobuf.decoder = require("./decoder"); |
| protobuf.verifier = require("./verifier"); |
| protobuf.converter = require("./converter"); |
| |
| // Reflection |
| protobuf.ReflectionObject = require("./object"); |
| protobuf.Namespace = require("./namespace"); |
| protobuf.Root = require("./root"); |
| protobuf.Enum = require("./enum"); |
| protobuf.Type = require("./type"); |
| protobuf.Field = require("./field"); |
| protobuf.OneOf = require("./oneof"); |
| protobuf.MapField = require("./mapfield"); |
| protobuf.Service = require("./service"); |
| protobuf.Method = require("./method"); |
| |
| // Runtime |
| protobuf.Message = require("./message"); |
| protobuf.wrappers = require("./wrappers"); |
| |
| // Utility |
| protobuf.types = require("./types"); |
| protobuf.util = require("./util"); |
| |
| // Set up possibly cyclic reflection dependencies |
| protobuf.ReflectionObject._configure(protobuf.Root); |
| protobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum); |
| protobuf.Root._configure(protobuf.Type); |
| protobuf.Field._configure(protobuf.Type); |