; | |
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); | |