UNPKG

gads

Version:

An unofficial JS client library for the SOAP-based DFP Ads API

45 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require("./util"); const wsdlComplexTypeToMetaInterfaceTranslator_1 = require("./wsdlComplexTypeToMetaInterfaceTranslator"); const wsdlElementToMetaInterfaceTranslator_1 = require("./wsdlElementToMetaInterfaceTranslator"); const wsdlPortTypeOperationToMetaMethodSignature_1 = require("./wsdlPortTypeOperationToMetaMethodSignature"); const wsdlSimpleTypeToMetaTypeTranslator_1 = require("./wsdlSimpleTypeToMetaTypeTranslator"); class WsdlToMetaServiceTranslator { constructor(wsdlComplexTypeToMetaInterfaceTranslator = new wsdlComplexTypeToMetaInterfaceTranslator_1.WsdlComplexTypeToMetaInterfaceTranslator(), wsdlElementToMetaInterfaceTranslator = new wsdlElementToMetaInterfaceTranslator_1.WsdlElementToMetaInterfaceTranslator(), wsdlPortTypeOperationToMetaMethodSignature = new wsdlPortTypeOperationToMetaMethodSignature_1.WsdlPortTypeOperationToMetaMethodSignature(), wsdlSimpleTypeToMetaTypeTranslator = new wsdlSimpleTypeToMetaTypeTranslator_1.WsdlSimpleTypeToMetaTypeTranslator()) { this.wsdlComplexTypeToMetaInterfaceTranslator = wsdlComplexTypeToMetaInterfaceTranslator; this.wsdlElementToMetaInterfaceTranslator = wsdlElementToMetaInterfaceTranslator; this.wsdlPortTypeOperationToMetaMethodSignature = wsdlPortTypeOperationToMetaMethodSignature; this.wsdlSimpleTypeToMetaTypeTranslator = wsdlSimpleTypeToMetaTypeTranslator; } translate(wsdl) { return Promise.resolve().then(() => { const name = wsdl['wsdl:definitions']['wsdl:service'].$.name; const service = { description: '', name, interfaces: {}, methods: {}, types: {} }; const promises = [].concat( // Add interfaces util_1.toArray(wsdl['wsdl:definitions']['wsdl:types'].schema.complexType) .map(v => this.wsdlComplexTypeToMetaInterfaceTranslator.translate(v)) .map(p => p.then(i => { service.interfaces[i.name] = i; })), util_1.toArray(wsdl['wsdl:definitions']['wsdl:types'].schema.element) .map(v => this.wsdlElementToMetaInterfaceTranslator.translate(v)) .map(p => p.then(i => { service.interfaces[i.name] = i; })), // Add methods util_1.toArray(wsdl['wsdl:definitions']['wsdl:portType']['wsdl:operation']).map(v => this.wsdlPortTypeOperationToMetaMethodSignature.translate(v)) .map(p => p.then(m => { service.methods[m.name] = m; })), // Add types util_1.toArray(wsdl['wsdl:definitions']['wsdl:types'].schema.simpleType) .map(v => this.wsdlSimpleTypeToMetaTypeTranslator.translate(v)) .map(p => p.then(t => { service.types[t.name] = t; }))); // Return service return Promise.all(promises).then(() => service); }); } } exports.WsdlToMetaServiceTranslator = WsdlToMetaServiceTranslator; //# sourceMappingURL=wsdlToMetaServiceTranslator.js.map