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,
"console": true,
"Promise": true,
"Buffer": true
"Buffer": true,
"URL": true,
"global": true
},
"plugins": [
"prettier"

View file

@ -14,7 +14,8 @@ parser.addArgument(['-k', '--api-key'], {
help: 'API key',
required: true,
});
parser.addArgument(['-p', '-i', '--project-key'], { // -i is depricated
parser.addArgument(['-p', '-i', '--project-key'], {
// -i is depricated
help: 'Project Key',
required: true,
});
@ -54,19 +55,34 @@ dir.addArgument(['-u', '--js-dir-url'], {
// 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;
(command === 'file'
? uploadFile(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) =>
sourceFiles.length > 0
? console.log(`Successfully uploaded ${sourceFiles.length} sourcemap file${sourceFiles.length > 1 ? "s" : ""} for: \n`
+ sourceFiles.join("\t\n")
? uploadFile(
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,
)
: console.log(`No sourcemaps found in ${ args.sourcemap_dir_path }`)
)
.catch(e => console.error(`Sourcemap Uploader: ${e}`));
.then((sourceFiles) =>
sourceFiles.length > 0
? console.log(
`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}`),
)
.catch((e) => console.error(`Sourcemap Uploader: ${e}`));

View file

@ -3,11 +3,23 @@ const readFile = require('./lib/readFile.js'),
uploadSourcemaps = require('./lib/uploadSourcemaps.js');
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);
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);
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) => {
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 += '/';
}
return glob(sourcemap_dir_path + '**/*.map').then(sourcemap_file_paths =>
return glob(sourcemap_dir_path + '**/*.map').then((sourcemap_file_paths) =>
Promise.all(
sourcemap_file_paths.map(sourcemap_file_path =>
sourcemap_file_paths.map((sourcemap_file_path) =>
readFile(
sourcemap_file_path,
js_dir_url + sourcemap_file_path.slice(sourcemap_dir_path.length, -4),

View file

@ -1,6 +1,6 @@
const fs = require('fs').promises;
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 };
});

View file

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

File diff suppressed because it is too large Load diff

View file

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