@dmgt/google-ad-manager-api
Version:
Typed Google Ad Manager API
50 lines • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const axios_1 = tslib_1.__importDefault(require("axios"));
const mkdirp_1 = require("mkdirp");
const promises_1 = require("node:fs/promises");
const wsdl_path_1 = require("./wsdl-path");
(async () => {
const { default: Crawler } = await import('crawler');
const crawler = new Crawler({
maxConnections: 1,
callback: async (error, res, done) => {
if (typeof done !== 'function')
throw new Error('`done` is not a function.');
if (error) {
console.error(error);
return done();
}
const $ = res.$;
const elements = $(`a[href$="?wsdl"]`);
if (!elements.length) {
console.error(`Cannot find any WSDLs`);
return done();
}
try {
await Promise.all(elements.toArray().map(async (element) => {
const $element = res.$(element);
const title = $element.text();
const url = wsdl_path_1.origin + $element.attr('href');
const versionRegExp = new RegExp(`${wsdl_path_1.basePath}/([v0-9]+)/`);
const versionMatch = versionRegExp.exec(url);
if (!versionMatch) {
console.error(`Could not find a version in ${url}`);
return;
}
const [, version] = versionMatch;
await (0, mkdirp_1.mkdirp)(`src/wsdl/${version}`);
const response = await axios_1.default.get(url);
await (0, promises_1.writeFile)(`src/wsdl/${version}/${title}.wsdl`, response.data);
}));
}
catch (error) {
console.error(error);
}
done();
},
});
crawler.add(wsdl_path_1.baseURL);
})();
//# sourceMappingURL=wsdl.js.map