amis-rpc-design/node_modules/tldjs/lib/updater.js
2023-10-07 19:42:30 +08:00

45 lines
1.0 KiB
JavaScript

"use strict";
var join = require('path').join;
var http = require('https');
var fs = require('fs');
var pkg = require('../package.json');
var providerUrl = pkg.tldjs.providers['publicsuffix-org'];
var parser = require('./parsers/publicsuffix-org.js');
module.exports = {
providerUrl: providerUrl,
run: function runUpdater(done) {
done = typeof done === 'function' ? done : function(){};
var req = http.request(providerUrl, function (res) {
var body = '';
if (res.statusCode !== 200) {
res.destroy();
return done(new Error('tldjs: remote server responded with HTTP status ' + res.statusCode));
}
res.setEncoding('utf8');
res.on('data', function(d) {
body += d;
});
res.on('end', function() {
var tlds = parser.parse(body);
var filename = 'rules.json';
var data = JSON.stringify(tlds);
fs.writeFile(join(__dirname, '..', filename), data, 'utf-8', done);
});
});
req.setTimeout(5000);
req.on('error', done);
req.end();
}
};