Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
processFile = file => ({
...file,
name: basename(file.path),
// BitBucket does not return file SHAs, but it does give us the
// commit SHA. Since the commit SHA will change if any files do,
// we can construct an ID using the commit SHA and the file path
// that will help with caching (though not as well as a normal
// SHA, since it will change even if the individual file itself
// doesn't.)
...(file.commit && file.commit.hash ? { id: `${file.commit.hash}/${file.path}` } : {}),
});
processFiles = files => files.filter(this.isFile).map(this.processFile);
uploadBlob = (item, { commitMessage, branch = this.branch } = {}) => {
const contentBlob = get(item, 'fileObj', new Blob([item.raw]));
const formData = new FormData();
// Third param is filename header, in case path is `message`, `branch`, etc.
formData.append(item.path, contentBlob, basename(item.path));
formData.append('branch', branch);
if (commitMessage) {
formData.append('message', commitMessage);
}
if (this.commitAuthor) {
const { name, email } = this.commitAuthor;
formData.append('author', `${name} <${email}>`);
}
return flow([
unsentRequest.withMethod('POST'),
unsentRequest.withBody(formData),
this.request,
then(() => ({ ...item })),
])(`${this.repoURL}/src`);
};
async getMediaFile(path) {
const asset = this.assets.find(asset => asset.path === path);
const name = basename(path);
const blob = await fetch(asset.url).then(res => res.blob());
const fileObj = new File([blob], name);
return {
displayURL: asset.url,
path,
name,
size: fileObj.size,
file: fileObj,
url: asset.url,
};
}
files.map(async file => {
if (client.matchPath(file.path)) {
const { sha: id, path } = file;
const largeMediaDisplayURLs = await this.getLargeMediaDisplayURLs([{ ...file, id }]);
const url = await client.getDownloadURL(largeMediaDisplayURLs[id]);
return {
...file,
id,
name: basename(path),
path,
url,
displayURL: url,
};
} else {
return this.backend.loadMediaFile(file);
}
}),
);
async getMediaFile(path) {
const client = await this.getLargeMediaClient();
if (client.enabled && client.matchPath(path)) {
const largeMediaDisplayURLs = await this.getLargeMediaDisplayURLs([{ path }]);
const url = await client.getDownloadURL(Object.values(largeMediaDisplayURLs)[0]);
return {
name: basename(path),
path,
url,
displayURL: url,
};
}
return this.backend.getMediaFile(path);
}
return this.api.getMediaAsBlob(file.sha, file.path).then(blob => {
const name = basename(file.path);
const fileObj = new File([blob], name);
return {
id: file.sha,
sha: file.sha,
displayURL: URL.createObjectURL(fileObj),
path: file.path,
name,
size: fileObj.size,
file: fileObj,
};
});
}
async getMediaFile(path) {
const name = basename(path);
const blob = await this.getMediaAsBlob(path, null, name);
const fileObj = new File([blob], name);
const url = URL.createObjectURL(fileObj);
return {
displayURL: url,
path,
name,
size: fileObj.size,
file: fileObj,
url,
};
}
.map(file => ({
...file,
name: basename(file.path),
path: `${folder}/${file.path}`,
})),
)
async getMediaFile(path) {
const blob = await this.api.getMediaAsBlob(null, path);
const name = basename(path);
const fileObj = new File([blob], name);
const url = URL.createObjectURL(fileObj);
return {
displayURL: url,
path,
name,
size: fileObj.size,
file: fileObj,
url,
};
}
async getMediaFile(path) {
const name = basename(path);
const blob = await this.getMediaAsBlob(path, null);
const fileObj = new File([blob], name);
const url = URL.createObjectURL(fileObj);
return {
displayURL: url,
path,
name,
size: fileObj.size,
file: fileObj,
url,
};
}