gads
Version:
An unofficial JS client library for the SOAP-based DFP Ads API
44 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("./util");
class WsdlComplexTypeToMetaInterfaceTranslator {
constructor() { }
translate(complexType) {
return new Promise(resolve => {
const name = complexType.$.name;
const _interface = {
description: complexType.annotation ?
complexType.annotation.documentation : '',
extends: complexType.complexContent ? [
util_1.parseSoapTypeName(complexType.complexContent.extension.$.base)
] : [],
methods: {},
name,
properties: {}
};
// Define properties
let elements = [];
if (complexType.sequence) {
elements = elements.concat(util_1.toArray(complexType.sequence.element));
}
if (complexType.complexContent
&& complexType.complexContent.extension.sequence) {
elements = elements.concat(util_1.toArray(complexType.complexContent.extension.sequence.element));
}
for (const element of elements) {
const name = element.$.name;
_interface.properties[name] = {
description: element.annotation ? element.annotation.documentation : '',
isArray: element.$.maxOccurs === 'unbounded' || +element.$.maxOccurs > 1,
isOptional: !+element.$.minOccurs,
isPrimitive: element.$.type.startsWith('xsd:'),
name,
type: util_1.parseSoapTypeName(element.$.type)
};
}
resolve(_interface);
});
}
}
exports.WsdlComplexTypeToMetaInterfaceTranslator = WsdlComplexTypeToMetaInterfaceTranslator;
//# sourceMappingURL=wsdlComplexTypeToMetaInterfaceTranslator.js.map