fix(errors): show verbose error for duplicate files

progress #14
This commit is contained in:
Mahdi Dibaiee 2015-10-24 20:24:15 +03:30
parent 629b6f7e61
commit f0f6a684a7
5 changed files with 25 additions and 6 deletions

View File

@ -41075,6 +41075,12 @@ var readFile = _asyncToGenerator(function* (path) {
exports.readFile = readFile; exports.readFile = readFile;
var writeFile = _asyncToGenerator(function* (path, content) { var writeFile = _asyncToGenerator(function* (path, content) {
try {
var file = yield getFile(path);
return Promise.reject(new Error('File already exists: ' + path));
} catch (e) {}
var request = sdcard().addNamed(content, path); var request = sdcard().addNamed(content, path);
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
@ -41258,7 +41264,6 @@ var Breadcrumb = (function (_Component) {
var els = []; var els = [];
if (this.props.search) { if (this.props.search) {
console.log('search');
els = [_react2['default'].createElement( els = [_react2['default'].createElement(
'span', 'span',
{ key: '000' }, { key: '000' },
@ -43434,18 +43439,20 @@ exports['default'] = function (state, action) {
}); });
} }
console.log('readFile', path);
return (0, _apiFiles.readFile)(path).then(function (content) { return (0, _apiFiles.readFile)(path).then(function (content) {
console.log('readFile done', path);
archive.file(archivePath + '/' + file.name, content); archive.file(archivePath + '/' + file.name, content);
}); });
})); }));
all.then(function () { all.then(function () {
var buffer = archive.generate({ type: 'nodebuffer' }); var buffer = archive.generate({ type: 'nodebuffer' });
console.log(buffer);
var blob = new Blob([buffer], { type: 'application/zip' }); var blob = new Blob([buffer], { type: 'application/zip' });
var cwd = _store2['default'].getState().get('cwd'); var cwd = _store2['default'].getState().get('cwd');
var path = (0, _utils.normalize)(cwd + '/' + action.name); var path = (0, _utils.normalize)(cwd + '/' + action.name);
console.log(path);
return (0, _apiFiles.writeFile)(path, blob); return (0, _apiFiles.writeFile)(path, blob);
}).then(boundRefresh)['catch'](_utils.reportError); }).then(boundRefresh)['catch'](_utils.reportError);
@ -44021,7 +44028,8 @@ function getKey(object, key) {
function reportError(err) { function reportError(err) {
console.error(err); console.error(err);
var action = (0, _actionsDialog.show)('errorDialog', { description: err.message }); var msg = err.message || err.target.error.message;
var action = (0, _actionsDialog.show)('errorDialog', { description: msg });
_store2['default'].dispatch(action); _store2['default'].dispatch(action);
} }

View File

@ -92,6 +92,15 @@ export async function readFile(path) {
} }
export async function writeFile(path, content) { export async function writeFile(path, content) {
try {
let file = await getFile(path);
return Promise.reject(new Error('File already exists: ' + path));
} catch(e) {
}
let request = sdcard().addNamed(content, path); let request = sdcard().addNamed(content, path);
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

View File

@ -9,7 +9,6 @@ export default class Breadcrumb extends Component {
let els = []; let els = [];
if (this.props.search) { if (this.props.search) {
console.log('search');
els = [ els = [
<span key='000'>Search: {this.props.search}</span> <span key='000'>Search: {this.props.search}</span>
] ]

View File

@ -107,18 +107,20 @@ export default function(state = [], action) {
}) })
} }
console.log('readFile', path);
return readFile(path).then(content => { return readFile(path).then(content => {
console.log('readFile done', path);
archive.file(archivePath + '/' + file.name, content); archive.file(archivePath + '/' + file.name, content);
}); });
})) }))
all.then(() => { all.then(() => {
let buffer = archive.generate({ type: 'nodebuffer' }); let buffer = archive.generate({ type: 'nodebuffer' });
console.log(buffer);
let blob = new Blob([buffer], { type: 'application/zip' }); let blob = new Blob([buffer], { type: 'application/zip' });
let cwd = store.getState().get('cwd'); let cwd = store.getState().get('cwd');
let path = normalize(cwd + '/' + action.name); let path = normalize(cwd + '/' + action.name);
console.log(path);
return writeFile(path, blob); return writeFile(path, blob);
}).then(boundRefresh).catch(reportError); }).then(boundRefresh).catch(reportError);

View File

@ -27,7 +27,8 @@ export function getKey(object = store.getState().toJS(), key) {
export function reportError(err) { export function reportError(err) {
console.error(err); console.error(err);
let action = show('errorDialog', {description: err.message}); let msg = err.message || err.target.error.message;
let action = show('errorDialog', {description: msg});
store.dispatch(action); store.dispatch(action);
} }