dev(sourcemap-uploader): upgrade lint dependencies

This commit is contained in:
ShiKhu 2021-09-23 19:32:42 +02:00
parent afaab71bf4
commit 7819d4b921
8 changed files with 535 additions and 537 deletions

View file

@ -8,7 +8,9 @@
"module": true, "module": true,
"console": true, "console": true,
"Promise": true, "Promise": true,
"Buffer": true "Buffer": true,
"URL": true,
"global": true
}, },
"plugins": [ "plugins": [
"prettier" "prettier"

View file

@ -14,7 +14,8 @@ parser.addArgument(['-k', '--api-key'], {
help: 'API key', help: 'API key',
required: true, required: true,
}); });
parser.addArgument(['-p', '-i', '--project-key'], { // -i is depricated parser.addArgument(['-p', '-i', '--project-key'], {
// -i is depricated
help: 'Project Key', help: 'Project Key',
required: true, required: true,
}); });
@ -54,19 +55,34 @@ dir.addArgument(['-u', '--js-dir-url'], {
// TODO: exclude in dir // TODO: exclude in dir
const { command, api_key, project_key, server, verbose, ...args } = parser.parseArgs(); const { command, api_key, project_key, server, verbose, ...args } =
parser.parseArgs();
global._VERBOSE = !!verbose; global._VERBOSE = !!verbose;
(command === 'file' (command === 'file'
? uploadFile(api_key, project_key, args.sourcemap_file_path, args.js_file_url, server) ? uploadFile(
: uploadDir(api_key, project_key, args.sourcemap_dir_path, args.js_dir_url, server) api_key,
project_key,
args.sourcemap_file_path,
args.js_file_url,
server,
)
: uploadDir(
api_key,
project_key,
args.sourcemap_dir_path,
args.js_dir_url,
server,
)
) )
.then((sourceFiles) => .then((sourceFiles) =>
sourceFiles.length > 0 sourceFiles.length > 0
? console.log(`Successfully uploaded ${sourceFiles.length} sourcemap file${sourceFiles.length > 1 ? "s" : ""} for: \n` ? console.log(
+ sourceFiles.join("\t\n") `Successfully uploaded ${sourceFiles.length} sourcemap file${
sourceFiles.length > 1 ? 's' : ''
} for: \n` + sourceFiles.join('\t\n'),
)
: console.log(`No sourcemaps found in ${args.sourcemap_dir_path}`),
) )
: console.log(`No sourcemaps found in ${ args.sourcemap_dir_path }`) .catch((e) => console.error(`Sourcemap Uploader: ${e}`));
)
.catch(e => console.error(`Sourcemap Uploader: ${e}`));

View file

@ -3,11 +3,23 @@ const readFile = require('./lib/readFile.js'),
uploadSourcemaps = require('./lib/uploadSourcemaps.js'); uploadSourcemaps = require('./lib/uploadSourcemaps.js');
module.exports = { module.exports = {
async uploadFile(api_key, project_key, sourcemap_file_path, js_file_url, server) { async uploadFile(
api_key,
project_key,
sourcemap_file_path,
js_file_url,
server,
) {
const sourcemap = await readFile(sourcemap_file_path, js_file_url); const sourcemap = await readFile(sourcemap_file_path, js_file_url);
return uploadSourcemaps(api_key, project_key, [sourcemap], server); return uploadSourcemaps(api_key, project_key, [sourcemap], server);
}, },
async uploadDir(api_key, project_key, sourcemap_dir_path, js_dir_url, server) { async uploadDir(
api_key,
project_key,
sourcemap_dir_path,
js_dir_url,
server,
) {
const sourcemaps = await readDir(sourcemap_dir_path, js_dir_url); const sourcemaps = await readDir(sourcemap_dir_path, js_dir_url);
return uploadSourcemaps(api_key, project_key, sourcemaps, server); return uploadSourcemaps(api_key, project_key, sourcemaps, server);
}, },

View file

@ -3,12 +3,13 @@ const readFile = require('./readFile');
module.exports = (sourcemap_dir_path, js_dir_url) => { module.exports = (sourcemap_dir_path, js_dir_url) => {
sourcemap_dir_path = (sourcemap_dir_path + '/').replace(/\/+/g, '/'); sourcemap_dir_path = (sourcemap_dir_path + '/').replace(/\/+/g, '/');
if (js_dir_url[ js_dir_url.length - 1 ] !== '/') { // replace will break schema if (js_dir_url[js_dir_url.length - 1] !== '/') {
// replace will break schema
js_dir_url += '/'; js_dir_url += '/';
} }
return glob(sourcemap_dir_path + '**/*.map').then(sourcemap_file_paths => return glob(sourcemap_dir_path + '**/*.map').then((sourcemap_file_paths) =>
Promise.all( Promise.all(
sourcemap_file_paths.map(sourcemap_file_path => sourcemap_file_paths.map((sourcemap_file_path) =>
readFile( readFile(
sourcemap_file_path, sourcemap_file_path,
js_dir_url + sourcemap_file_path.slice(sourcemap_dir_path.length, -4), js_dir_url + sourcemap_file_path.slice(sourcemap_dir_path.length, -4),

View file

@ -1,6 +1,6 @@
const fs = require('fs').promises; const fs = require('fs').promises;
module.exports = (sourcemap_file_path, js_file_url) => module.exports = (sourcemap_file_path, js_file_url) =>
fs.readFile(sourcemap_file_path, 'utf8').then(body => { fs.readFile(sourcemap_file_path, 'utf8').then((body) => {
return { sourcemap_file_path, js_file_url, body }; return { sourcemap_file_path, js_file_url, body };
}); });

View file

@ -9,43 +9,47 @@ const getUploadURLs = (api_key, project_key, js_file_urls, server) =>
let serverURL; let serverURL;
try { try {
serverURL = new URL(server); serverURL = new URL(server);
} catch(e) { } catch (e) {
return reject(`Failed to parse server URL "${server}".`) return reject(`Failed to parse server URL "${server}".`);
} }
const pathPrefix = (serverURL.pathname + "/").replace(/\/+/g, '/'); const pathPrefix = (serverURL.pathname + '/').replace(/\/+/g, '/');
const options = { const options = {
method: 'PUT', method: 'PUT',
hostname: serverURL.host, hostname: serverURL.host,
path: pathPrefix + `${project_key}/sourcemaps/`, path: pathPrefix + `${project_key}/sourcemaps/`,
headers: { Authorization: api_key, 'Content-Type': 'application/json' }, headers: { Authorization: api_key, 'Content-Type': 'application/json' },
} };
if (global._VERBOSE) { if (global._VERBOSE) {
console.log("Request: ", options, "\nFiles: ", js_file_urls); console.log('Request: ', options, '\nFiles: ', js_file_urls);
} }
const req = https.request( const req = https.request(options, (res) => {
options, if (global._VERBOSE) {
res => { console.log(
'Response Code: ',
res.statusCode,
'\nMessage: ',
res.statusMessage,
);
}
if (res.statusCode === 403) {
reject(
'Authorisation rejected. Please, check your API_KEY and/or PROJECT_KEY.',
);
return;
} else if (res.statusCode !== 200) {
reject('Server Error. Please, contact OpenReplay support.');
return;
}
let data = '';
res.on('data', (s) => (data += s));
res.on('end', () => {
if (global._VERBOSE) { if (global._VERBOSE) {
console.log("Response Code: ", res.statusCode, "\nMessage: ", res.statusMessage); console.log('Server Response: ', data);
} }
if (res.statusCode === 403) { resolve(JSON.parse(data).data);
reject("Authorisation rejected. Please, check your API_KEY and/or PROJECT_KEY.") });
return });
} else if (res.statusCode !== 200) {
reject("Server Error. Please, contact OpenReplay support.");
return;
}
let data = '';
res.on('data', s => (data += s));
res.on('end', () => {
if (global._VERBOSE) {
console.log("Server Response: ", data)
}
resolve(JSON.parse(data).data)
});
},
);
req.on('error', reject); req.on('error', reject);
req.write(JSON.stringify({ URL: js_file_urls })); req.write(JSON.stringify({ URL: js_file_urls }));
req.end(); req.end();
@ -63,14 +67,19 @@ const uploadSourcemap = (upload_url, body) =>
'Content-Type': 'application/json', 'Content-Type': 'application/json',
}, },
}, },
res => { (res) => {
if (res.statusCode !== 200) { if (res.statusCode !== 200) {
if (global._VERBOSE) { if (global._VERBOSE) {
console.log("Response Code: ", res.statusCode, "\nMessage: ", res.statusMessage); console.log(
'Response Code: ',
res.statusCode,
'\nMessage: ',
res.statusMessage,
);
} }
reject("Unable to upload. Please, contact OpenReplay support."); reject('Unable to upload. Please, contact OpenReplay support.');
return; // TODO: report per-file errors. return; // TODO: report per-file errors.
} }
resolve(); resolve();
//res.on('end', resolve); //res.on('end', resolve);
@ -86,12 +95,13 @@ module.exports = (api_key, project_key, sourcemaps, server) =>
api_key, api_key,
project_key, project_key,
sourcemaps.map(({ js_file_url }) => js_file_url), sourcemaps.map(({ js_file_url }) => js_file_url),
server || "https://api.openreplay.com", server || 'https://api.openreplay.com',
).then(upload_urls => ).then((upload_urls) =>
Promise.all( Promise.all(
upload_urls.map((upload_url, i) => upload_urls.map((upload_url, i) =>
uploadSourcemap(upload_url, sourcemaps[i].body) uploadSourcemap(upload_url, sourcemaps[i].body).then(
.then(() => sourcemaps[i].js_file_url) () => sourcemaps[i].js_file_url,
),
), ),
), ),
); );

File diff suppressed because it is too large Load diff

View file

@ -13,10 +13,10 @@
], ],
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"eslint": "^6.8.0", "eslint": "^7.32.0",
"eslint-config-prettier": "^6.10.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.1.2", "eslint-plugin-prettier": "^4.0.0",
"prettier": "^1.19.1" "prettier": "^2.4.1"
}, },
"dependencies": { "dependencies": {
"argparse": "^1.0.10", "argparse": "^1.0.10",