-
Notifications
You must be signed in to change notification settings - Fork 505
Closed
Labels
kind: bugSomething isn't workingSomething isn't workingscope: upstreamIssue in upstream dependencyIssue in upstream dependencytopic: async-to-promisesRelated to bugs with babel-plugin-async-to-promisesRelated to bugs with babel-plugin-async-to-promises
Description
Current Behavior
My function
export async function getAccount(provider: Provider): Promise<string | null> {
try {
const accounts: string[] = await provider.send('eth_accounts'); // 1. provider.send returns undefined
return accounts[0] || null; // 2. throw error 'Cannot read property '0' of undefined'
} catch {
warning('Some text'); // 3. log warning
}
return 'fallback account'; // 4. return 'fallback account'
}
compiled to
var getAccount = function getAccount(provider) {
try {
var _exit2 = false;
var _temp2 = _catch(function () {
return Promise.resolve(provider.send('eth_accounts')).then(function (accounts) { // 1. accounts === undefined
_exit2 = true;
return accounts[0] || null; // 2. throw error 'Cannot read property '0' of undefined'
});
}, function () {
process.env.NODE_ENV !== "production" ? warning('Some text') : void 0; // 3. log warning
});
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function (_result) {
return _exit2 ? _result : 'fallback account'; // 4. return undefined because _exit2 === true and _result === undefined
}) : _exit2 ? _temp2 : 'fallback account');
} catch (e) {
return Promise.reject(e);
}
};
Expected behavior
compiled to
var getAccount = function getAccount(provider) {
try {
var _exit2 = false;
var _temp2 = _catch(function () {
return Promise.resolve(provider.send('eth_accounts')).then(function (accounts) { // 1. accounts === undefined
- _exit2 = true;
return accounts[0] || null; // 2. throw error 'Cannot read property '0' of undefined'
+ }).then(function () {
+ _exit2 = true;
});
}, function () {
process.env.NODE_ENV !== "production" ? warning('Some text') : void 0; // 3. log warning
});
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function (_result) {
- return _exit2 ? _result : 'fallback account'; // 4. return undefined because _exit2 === true and _result === undefined
+ return _exit2 ? _result : 'fallback account'; // 4. return 'fallback account' because _exit2 === false
}) : _exit2 ? _temp2 : 'fallback account');
} catch (e) {
return Promise.reject(e);
}
};
Your environment
Software | Version(s) |
---|---|
TSDX | 0.12.0 |
TypeScript | 3.7.2 |
npm/Yarn | npm 6.12.0/yarn 1.21.1 |
Node | v10.15.0 |
Operating System | macOS Catalina 10.15.2 |
Metadata
Metadata
Assignees
Labels
kind: bugSomething isn't workingSomething isn't workingscope: upstreamIssue in upstream dependencyIssue in upstream dependencytopic: async-to-promisesRelated to bugs with babel-plugin-async-to-promisesRelated to bugs with babel-plugin-async-to-promises