Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// tslint:disable-next-line:no-console
console.log("cannot find schema for ", fieldTypeName);
}
}
break;
case "ua":
field.fieldType = fieldTypeName;
if (hasBuiltInType(fieldTypeName)) {
field.category = FieldCategory.basic;
field.schema = getBuildInType(fieldTypeName);
} else if (hasStructuredType(fieldTypeName)) {
field.category = FieldCategory.complex;
field.schema = getStructuredTypeSchema(fieldTypeName);
} else {
field.category = FieldCategory.basic;
// try in this
field.schema = getOrCreateStructuredTypeSchema(fieldTypeName, typeDictionary);
if (!field.schema) {
// tslint:disable-next-line:no-console
console.log("What should I do ??", fieldTypeName, " ", hasStructuredType(fieldTypeName));
} else {
if (hasBuiltInType(fieldTypeName)) {
field.category = FieldCategory.basic;
} else {
field.category = FieldCategory.complex;
}
}
}
break;
case "opc":
if ((fieldTypeName === "UAString" || fieldTypeName === "String") && field.name === "IndexRange") {
field.schema = enumeratedType;
} else {
// must be a structure then ....
field.category = FieldCategory.complex;
field.schema = getOrCreateStructuredTypeSchema(fieldTypeName, typeDictionary);
if (!field.schema) {
// tslint:disable-next-line:no-console
console.log("cannot find schema for ", fieldTypeName);
}
}
break;
case "ua":
field.fieldType = fieldTypeName;
if (hasBuiltInType(fieldTypeName)) {
field.category = FieldCategory.basic;
field.schema = getBuildInType(fieldTypeName);
} else if (hasStructuredType(fieldTypeName)) {
field.category = FieldCategory.complex;
field.schema = getStructuredTypeSchema(fieldTypeName);
} else {
field.category = FieldCategory.basic;
// try in this
field.schema = getOrCreateStructuredTypeSchema(fieldTypeName, typeDictionary);
if (!field.schema) {
// tslint:disable-next-line:no-console
console.log("What should I do ??", fieldTypeName, " ", hasStructuredType(fieldTypeName));
} else {
if (hasBuiltInType(fieldTypeName)) {
field.category = FieldCategory.basic;
} else {
// reconstruct _schema form
const fields = [];
for (const field of dataType.definition) {
const data: any = {
fieldType: field.$$dataType$$.browseName.name,
isArray: (field.valueRank === 1),
name: field.$$name$$
};
if (field.$$isEnum$$) {
data.category = FieldCategory.enumeration;
} else if (field.$$isStructure$$) {
data.category = FieldCategory.complex;
data.fieldTypeConstructor = field.$$Constructor$$;
} else {
data.category = FieldCategory.basic;
}
fields.push(data);
}
Constructor.prototype.schema = {
fields,
id: -1,
name: className
};
return Constructor;
}
stream.writeUInt32(bitField);
}
for (const field of schema.fields) {
// ignore
if (field.switchBit !== undefined && (thisAny)[field.name] === undefined) {
continue;
}
switch (field.category) {
case FieldCategory.complex:
encodeArrayOrElement(field, thisAny, stream);
break;
case FieldCategory.enumeration:
case FieldCategory.basic:
encodeArrayOrElement(field, thisAny, stream, field.schema.encode);
break;
default:
/* istanbul ignore next*/
throw new Error("Invalid category " + field.category + " " + FieldCategory[field.category]);
}
}
}
function decodeFields(
function write_expose_encoder_decoder(write: WriteFunc, schema: StructuredTypeSchema): void {
write("");
write("import { BinaryStream, OutputBinaryStream } from \"node-opcua-binary-stream\";");
write("import { ExpandedNodeId, NodeId } from \"node-opcua-nodeid\";");
const n = schema.fields.length;
const done: any = {};
for (let i = 0; i < n; i++) {
const field = schema.fields[i];
const fieldType = field.fieldType;
if (!(fieldType in done)) {
done[fieldType] = field;
switch (field.category) {
case FieldCategory.basic:
break;
case FieldCategory.enumeration:
write("const _enumeration" + field.fieldType + " = " + "getEnumeration(\"" + field.fieldType + "\");");
write("const encode" + field.fieldType + ": (value: any, stream: OutputBinaryStream) => void = getEnumeration(\"" + field.fieldType + "\").encode;");
write("const decode" + field.fieldType + ": (stream: BinaryStream) => void = getEnumeration(\"" + field.fieldType + "\").decode;");
break;
case FieldCategory.complex:
write("const encode" + field.fieldType + ": (value: any, stream: OutputBinaryStream) => void = getBuildInType(\"" + field.fieldType + "\").encode;");
write("const decode" + field.fieldType + ": (stream: BinaryStream) => void = getBuildInType(\"" + field.fieldType + "\").decode;");
break;
}
}
}
}
function write_field(field: FieldType, member: string, i: number) {
if (field.category === FieldCategory.enumeration || field.category === FieldCategory.basic) {
if (field.isArray) {
write(" this." + member + " = decodeArray(stream, decode" + field.fieldType + ");");
} else {
if (false) {
write(" this." + member + ".decode(stream);");
} else {
if (_.isFunction(field.decode)) {
write(" this." + member + " = " + "schema" + ".fields[" + i + "].decode(stream);");
} else {
write(" this." + member + " = decode" + field.fieldType + "(stream);");
}
}
}
} else {
assert(field.category === FieldCategory.complex);
if (field.isArray) {