cloudfunctions/ClearingRedundantFolders/node_modules/protobufjs/src/verifier.js
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
"use strict";
module.exports = verifier;
var Enum = require("./enum"),
util = require("./util");
function invalid(field, expected) {
return field.name + ": " + expected + (field.repeated && expected !== "array" ? "[]" : field.map && expected !== "object" ? "{k:"+field.keyType+"}" : "") + " expected";
}
/**
* Generates a partial value verifier.
* @param {Codegen} gen Codegen instance
* @param {Field} field Reflected field
* @param {number} fieldIndex Field index
* @param {string} ref Variable reference
* @returns {Codegen} Codegen instance
* @ignore
*/
function genVerifyValue(gen, field, fieldIndex, ref) {
/* eslint-disable no-unexpected-multiline */
if (field.resolvedType) {
if (field.resolvedType instanceof Enum) { gen
("switch(%s){", ref)
("default:")
("return%j", invalid(field, "enum value"));
for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen
("case %i:", field.resolvedType.values[keys[j]]);
gen
("break")
("}");
} else {
gen
("{")
("var e=types[%i].verify(%s);", fieldIndex, ref)
("if(e)")
("return%j+e", field.name + ".")
("}");
}
} else {
switch (field.type) {
case "int32":
case "uint32":
case "sint32":
case "fixed32":
case "sfixed32": gen
("if(!util.isInteger(%s))", ref)
("return%j", invalid(field, "integer"));
break;
case "int64":
case "uint64":
case "sint64":
case "fixed64":
case "sfixed64": gen
("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))", ref, ref, ref, ref)
("return%j", invalid(field, "integer|Long"));
break;
case "float":
case "double": gen
("if(typeof %s!==\"number\")", ref)
后面还有 117 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
