Skip to content

Commit 47b51ec

Browse files
committed
Shrinked bundle size - a bit
1 parent fed2000 commit 47b51ec

26 files changed

+310
-330
lines changed

dist/protobuf.js

+149-160
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/protobuf.min.js.gz

99 Bytes
Binary file not shown.

dist/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/runtime/protobuf.js

+4-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/runtime/protobuf.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/runtime/protobuf.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/runtime/protobuf.min.js.gz

8 Bytes
Binary file not shown.

dist/runtime/protobuf.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/class.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var Message = require("./message"),
66

77
var Type; // cyclic
88

9-
var _TypeError = util._TypeError;
9+
var TypeError = util._TypeError;
1010

1111
/**
1212
* Constructs a class instance, which is also a message prototype.
@@ -15,23 +15,25 @@ var _TypeError = util._TypeError;
1515
* @param {Type} type Reflected type
1616
*/
1717
function Class(type) {
18-
return Class.create(type);
18+
return create(type);
1919
}
2020

21+
Class.create =
2122
/**
2223
* Constructs a new message prototype for the specified reflected type and sets up its constructor.
24+
* @memberof Class
2325
* @param {Type} type Reflected message type
2426
* @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted
2527
* @returns {Message} Message prototype
2628
*/
27-
Class.create = function create(type, ctor) {
29+
function create(type, ctor) {
2830
if (!Type)
2931
Type = require("./type");
3032
if (!(type instanceof Type))
31-
throw _TypeError("type", "a Type");
33+
throw TypeError("type", "a Type");
3234
if (ctor) {
3335
if (typeof ctor !== "function")
34-
throw _TypeError("ctor", "a function");
36+
throw TypeError("ctor", "a function");
3537
} else
3638
ctor = (function(MessageCtor) { // eslint-disable-line wrap-iife
3739
return function Message(properties) {

src/decode.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,16 @@ function decode(readerOrBuffer, length) {
2121
limit = length === undefined ? reader.len : reader.pos + length,
2222
message = new (this.getCtor())();
2323
while (reader.pos < limit) {
24-
var tag = reader.uint32(),
24+
var tag = reader.uint32(),
2525
wireType = tag & 7;
2626

2727
// End group
2828
if (wireType === 4)
2929
break;
3030

31-
var field = fields[tag >>> 3].resolve(),
32-
type = field.resolvedType instanceof Enum ? "uint32" : field.type;
31+
var field = fields[tag >>> 3].resolve(),
32+
type = field.resolvedType instanceof Enum ? "uint32" : field.type,
33+
resolvedType = field.resolvedType;
3334

3435
// Known fields
3536
if (field) {
@@ -46,7 +47,7 @@ function decode(readerOrBuffer, length) {
4647
key = util.longToHash(key);
4748
reader.pos++; // assumes id 2
4849
message[field.name][key] = types.basic[type] === undefined
49-
? field.resolvedType.decode(reader, reader.uint32())
50+
? resolvedType.decode(reader, reader.uint32())
5051
: reader[type]();
5152

5253
// Repeated fields
@@ -61,13 +62,13 @@ function decode(readerOrBuffer, length) {
6162

6263
// Non-packed
6364
} else if (types.basic[type] === undefined)
64-
values.push(field.resolvedType.decode(reader, field.resolvedType.group ? undefined : reader.uint32()));
65+
values.push(resolvedType.decode(reader, resolvedType.group ? undefined : reader.uint32()));
6566
else
6667
values.push(reader[type]());
6768

6869
// Non-repeated
6970
} else if (types.basic[type] === undefined)
70-
message[field.name] = field.resolvedType.decode(reader, field.resolvedType.group ? undefined : reader.uint32());
71+
message[field.name] = resolvedType.decode(reader, resolvedType.group ? undefined : reader.uint32());
7172
else
7273
message[field.name] = reader[type]();
7374

@@ -122,7 +123,7 @@ decode.generate = function generate(mtype) {
122123
("k=util.longToHash(k)")
123124
("r.pos++");
124125
if (types.basic[type] === undefined) gen
125-
("m%s[k]=types[%d].decode(r,r.uint32())", prop, i);
126+
("m%s[k]=types[%d].decode(r,r.uint32())", prop, i); // can't be groups
126127
else gen
127128
("m%s[k]=r.%s()", prop, type);
128129

src/encode.js

+9-9
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,10 @@ encode.generate = function generate(mtype) {
160160

161161
("if(m%s)", prop)
162162
("for(var i=0;i<m%s.length;++i)", prop);
163-
if (wireType !== undefined) gen
164-
("w.uint32(%d).%s(m%s[i])", (field.id << 3 | wireType) >>> 0, type, prop);
165-
else
163+
if (wireType === undefined)
166164
genEncodeType(gen, field, i, "m" + prop + "[i]", true);
165+
else gen
166+
("w.uint32(%d).%s(m%s[i])", (field.id << 3 | wireType) >>> 0, type, prop);
167167

168168
}
169169

@@ -179,10 +179,10 @@ encode.generate = function generate(mtype) {
179179

180180
}
181181

182-
if (wireType !== undefined) gen
182+
if (wireType === undefined)
183+
genEncodeType(gen, field, i, "m" + prop);
184+
else gen
183185
("w.uint32(%d).%s(m%s)", (field.id << 3 | wireType) >>> 0, type, prop);
184-
else
185-
genEncodeType(gen, field, i, "m" + prop);
186186

187187
}
188188
}
@@ -200,10 +200,10 @@ encode.generate = function generate(mtype) {
200200
gen
201201
("case%j:", field.name);
202202

203-
if (wireType !== undefined) gen
204-
("w.uint32(%d).%s(m%s)", (field.id << 3 | wireType) >>> 0, type, prop);
205-
else
203+
if (wireType === undefined)
206204
genEncodeType(gen, field, fields.indexOf(field), "m" + prop);
205+
else gen
206+
("w.uint32(%d).%s(m%s)", (field.id << 3 | wireType) >>> 0, type, prop);
207207

208208
gen
209209
("break;");

src/enum.js

+7-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ Enum.className = "Enum";
99

1010
var util = require("./util");
1111

12-
var _TypeError = util._TypeError;
12+
var isString = util.isString,
13+
TypeError = util._TypeError;
1314

1415
/**
1516
* Constructs a new enum instance.
@@ -112,10 +113,10 @@ EnumPrototype.toJSON = function toJSON() {
112113
* @throws {Error} If there is already a value with this name or id
113114
*/
114115
EnumPrototype.add = function(name, id) {
115-
if (!util.isString(name))
116-
throw _TypeError("name");
116+
if (!isString(name))
117+
throw TypeError("name");
117118
if (!util.isInteger(id) || id < 0)
118-
throw _TypeError("id", "a non-negative integer");
119+
throw TypeError("id", "a non-negative integer");
119120
if (this.values[name] !== undefined)
120121
throw Error("duplicate name '" + name + "' in " + this);
121122
if (this.getValuesById()[id] !== undefined)
@@ -132,8 +133,8 @@ EnumPrototype.add = function(name, id) {
132133
* @throws {Error} If `name` is not a name of this enum
133134
*/
134135
EnumPrototype.remove = function(name) {
135-
if (!util.isString(name))
136-
throw _TypeError("name");
136+
if (!isString(name))
137+
throw TypeError("name");
137138
if (this.values[name] === undefined)
138139
throw Error("'" + name + "' is not a name of " + this);
139140
delete this.values[name];

src/field.js

+11-9
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ var Message = require("./message"),
1515
var Type, // cyclic
1616
MapField; // cyclic
1717

18-
var _TypeError = util._TypeError;
18+
var isObject = util.isObject,
19+
isString = util.isString,
20+
TypeError = util._TypeError;
1921

2022
/**
2123
* Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.
@@ -30,22 +32,22 @@ var _TypeError = util._TypeError;
3032
* @param {Object} [options] Declared options
3133
*/
3234
function Field(name, id, type, rule, extend, options) {
33-
if (util.isObject(rule)) {
35+
if (isObject(rule)) {
3436
options = rule;
3537
rule = extend = undefined;
36-
} else if (util.isObject(extend)) {
38+
} else if (isObject(extend)) {
3739
options = extend;
3840
extend = undefined;
3941
}
4042
ReflectionObject.call(this, name, options);
4143
if (!util.isInteger(id) || id < 0)
42-
throw _TypeError("id", "a non-negative integer");
43-
if (!util.isString(type))
44-
throw _TypeError("type");
45-
if (extend !== undefined && !util.isString(extend))
46-
throw _TypeError("extend");
44+
throw TypeError("id", "a non-negative integer");
45+
if (!isString(type))
46+
throw TypeError("type");
47+
if (extend !== undefined && !isString(extend))
48+
throw TypeError("extend");
4749
if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))
48-
throw _TypeError("rule", "a valid rule string");
50+
throw TypeError("rule", "a valid rule string");
4951

5052
/**
5153
* Field rule, if any.

src/index.js

+4-6
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,10 @@ protobuf.tokenize = require("./tokenize");
7878
protobuf.parse = require("./parse");
7979

8080
// Serialization
81-
var Writer =
82-
protobuf.Writer = require("./writer");
83-
protobuf.BufferWriter = Writer.BufferWriter;
84-
var Reader =
85-
protobuf.Reader = require("./reader");
86-
protobuf.BufferReader = Reader.BufferReader;
81+
protobuf.BufferWriter = (
82+
protobuf.Writer = require("./writer")).BufferWriter;
83+
protobuf.BufferReader = (
84+
protobuf.Reader = require("./reader")).BufferReader;
8785
protobuf.encode = require("./encode");
8886
protobuf.decode = require("./decode");
8987
protobuf.verify = require("./verify");

src/mapfield.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ MapFieldPrototype.resolve = function resolve() {
9090
if (keyWireType === undefined) {
9191
var resolved = this.parent.lookup(this.keyType);
9292
if (!(resolved instanceof Enum))
93-
throw Error("unresolvable map key type: " + this.keyType);
93+
throw Error("unresolvable key type: " + this.keyType);
9494
this.resolvedKeyType = resolved;
9595
}
9696

src/message.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"use strict";
22
module.exports = Message;
33

4+
var Object_keys = Object.keys;
5+
46
/**
57
* Constructs a new message instance.
68
*
@@ -14,7 +16,7 @@ module.exports = Message;
1416
*/
1517
function Message(properties) {
1618
if (properties) {
17-
var keys = Object.keys(properties);
19+
var keys = Object_keys(properties);
1820
for (var i = 0; i < keys.length; ++i)
1921
this[keys[i]] = properties[keys[i]];
2022
}
@@ -46,9 +48,9 @@ MessagePrototype.asJSON = function asJSON(options) {
4648
json = {};
4749
var keys;
4850
if (options.defaults) {
49-
keys = Object.keys(fields);
51+
keys = Object_keys(fields);
5052
} else
51-
keys = Object.keys(this);
53+
keys = Object_keys(this);
5254
for (var i = 0, key; i < keys.length; ++i) {
5355
var field = fields[key = keys[i]],
5456
value = this[key];

src/method.js

+13-11
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ Method.className = "Method";
1010
var Type = require("./type"),
1111
util = require("./util");
1212

13-
var _TypeError = util._TypeError;
13+
var isObject = util.isObject,
14+
isString = util.isString,
15+
TypeError = util._TypeError;
1416

1517
/**
1618
* Constructs a new service method instance.
@@ -26,19 +28,19 @@ var _TypeError = util._TypeError;
2628
* @param {Object} [options] Declared options
2729
*/
2830
function Method(name, type, requestType, responseType, requestStream, responseStream, options) {
29-
if (util.isObject(requestStream)) {
31+
if (isObject(requestStream)) {
3032
options = requestStream;
3133
requestStream = responseStream = undefined;
32-
} else if (util.isObject(responseStream)) {
34+
} else if (isObject(responseStream)) {
3335
options = responseStream;
3436
responseStream = undefined;
3537
}
36-
if (type && !util.isString(type))
37-
throw _TypeError("type");
38-
if (!util.isString(requestType))
39-
throw _TypeError("requestType");
40-
if (!util.isString(responseType))
41-
throw _TypeError("responseType");
38+
if (type && !isString(type))
39+
throw TypeError("type");
40+
if (!isString(requestType))
41+
throw TypeError("requestType");
42+
if (!isString(responseType))
43+
throw TypeError("responseType");
4244

4345
ReflectionObject.call(this, name, options);
4446

@@ -112,9 +114,9 @@ MethodPrototype.toJSON = function toJSON() {
112114
return {
113115
type : this.type !== "rpc" && this.type || undefined,
114116
requestType : this.requestType,
115-
requestStream : this.requestStream,
117+
requestStream : this.requestStream || undefined,
116118
responseType : this.responseType,
117-
responseStream : this.responseStream,
119+
responseStream : this.responseStream || undefined,
118120
options : this.options
119121
};
120122
};

src/namespace.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ function initNested() {
2525
nestedError = "one of " + nestedTypes.map(function(ctor) { return ctor.name; }).join(", ");
2626
}
2727

28-
var _TypeError = util._TypeError;
28+
var TypeError = util._TypeError,
29+
Object_keys = Object.keys;
2930

3031
/**
3132
* Constructs a new namespace instance.
@@ -137,12 +138,12 @@ NamespacePrototype.addJSON = function addJSON(nestedJson) {
137138
if (nestedJson) {
138139
if (!nestedTypes)
139140
initNested();
140-
Object.keys(nestedJson).forEach(function(nestedName) {
141+
Object_keys(nestedJson).forEach(function(nestedName) {
141142
var nested = nestedJson[nestedName];
142143
for (var j = 0; j < nestedTypes.length; ++j)
143144
if (nestedTypes[j].testJSON(nested))
144145
return ns.add(nestedTypes[j].fromJSON(nestedName, nested));
145-
throw _TypeError("nested." + nestedName, "JSON for " + nestedError);
146+
throw TypeError("nested." + nestedName, "JSON for " + nestedError);
146147
});
147148
}
148149
return this;
@@ -170,9 +171,9 @@ NamespacePrototype.add = function add(object) {
170171
if (!nestedTypes)
171172
initNested();
172173
if (!object || nestedTypes.indexOf(object.constructor) < 0)
173-
throw _TypeError("object", nestedError);
174+
throw TypeError("object", nestedError);
174175
if (object instanceof Field && object.extend === undefined)
175-
throw _TypeError("object", "an extension field when not part of a type");
176+
throw TypeError("object", "an extension field when not part of a type");
176177
if (!this.nested)
177178
this.nested = {};
178179
else {
@@ -209,11 +210,11 @@ NamespacePrototype.add = function add(object) {
209210
*/
210211
NamespacePrototype.remove = function remove(object) {
211212
if (!(object instanceof ReflectionObject))
212-
throw _TypeError("object", "a ReflectionObject");
213+
throw TypeError("object", "a ReflectionObject");
213214
if (object.parent !== this || !this.nested)
214215
throw Error(object + " is not a member of " + this);
215216
delete this.nested[object.name];
216-
if (!Object.keys(this.nested).length)
217+
if (!Object_keys(this.nested).length)
217218
this.nested = undefined;
218219
object.onRemove(this);
219220
return clearCache(this);

0 commit comments

Comments
 (0)