profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/miripiruni/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Slava Oliyanchuk miripiruni Yandex St. Petersburg, Russia miripiruni.org

miripiruni/frontdesk 1607

Community driven list of useful things for Front End Developers

miripiruni/constitution-of-russia 187

Конституция Российской Федерации

anton-rudeshko/CSSReorder 60

:warning: This plugin is not maintained and may not work in modern IntelliJ IDE's. Reorder CSS properties at your needs. Right now plugin in very early dev stage, be patient and stay tuned for updates.

miripiruni/dotfiles 15

My configs: vim, bash, zsh, screen, git, pentadactyl.

enb/enb-source-map 8

ENB Source Maps Helper

gulp-bem/gulp-bem-xjst 6

DEPRECATED repository, moved to https://github.com/bem/gulp-bem/tree/master/packages/gulp-bem-xjst

dustyo-O/bem-xjst 0

bem-xjst (eXtensible JavaSctipt Templates): declarative template engine for the browser and server

dustyo-O/gulp-bem-xjst 0

gulp plugin for bem-xjst

lp-cast/album-linker 0

Fast link composer

miripiruni/3lp.11ty 0

Дилетантский подкаст про музыку

startedmoroshko/react-scanner

started time in 23 minutes

push eventcstrobbe/philosophy-and-science

cstrobbe

commit sha 23add53142004714758a408c9bc4229130f0e8ee

Various minor edits

view details

push time in an hour

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++beforeEach(function() {+    const {browser} = this;++    return browser.foo().bar().baz();+});++afterEach(function() {+    const {browser} = this;++    return browser.foo().bar().baz();+});++it('should do nothing if "browser" is not used', function() {+    return this.some.foo().bar().baz();+});++it('should make runnable async even if call with one browser command', function() {+    return this.browser.foo();+});++it('should split chained browser commands (in one line) with await', function() {+    const {browser} = this;++    return browser.foo().bar().baz();+});++it('should split chained browser commands (in few lines) with await', function() {+    return this.browser+        .foo()+        .bar()+        .baz();+});++it('should not lose commens of chained browser commands in few lines', function() {+    // before chaining+    return this.browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+});++it('should correctly split browser commands passed inside callback to another browser command', function() {+    return this.browser.foo('some-value')+        .bar(+            'another-value',+            () => {+                return this.browser.baz().qux();+            }+        )+});++it('should correctly handle mixed use of browser (await and chain)', async function() {+    await foo(this.browser);++    return this.browser+        .bar()+        .baz();+});++it('should correctly handle case when called inlined function in then', function() {+    return this.browser+        .foo()+        .then(() => someFn(this.browser))+        .then(data => this.browser.bar(data));+});++it('should add parenthesizes around conditional expression', function() {+    return this.browser+        .foo()+        .then(res => {+            return res === 'boom' ? bar() : baz();+        });+});++it('should replace return node to await inside "then" and "if" statement', function() {+    return this.browser+        .foo()+        .then(() => {+            if (a) {+                return bar();+            } else {+                return baz();+            }+        });+});++it('should replace return of browser call to await inside "then" and "if" statement', function() {+    return this.browser+        .foo()+        .then(() => {+            if (a) {+                return this.browser.bar();+            } else {+                return this.browser.baz();+            }+        })+        .qux();+});++/**+ * USING ASYNC+ */++it('should split chained browser commands to async-await calls', async function() {+    await browser.foo().bar().baz();+});++it('should split chained browser commands with "then" to async-await calls', async function() {+    await browser.foo().then(bar());+});++it('should set result to variable from last call', async function () {+    const res = await browser.foo().bar().baz();+});++it('should set result to variable from last call with using then', async function () {+    const res = await browser.foo()+        .then(() => bar());+});++it('should set result to variable from last call and do nothing with assignment expression', async function () {+    const res = await browser.foo()+        .then(() => a = b)+        .then(() => {+            bar();+            return baz();+        });+});++it('should set result to variable from last call and do nothing with binary expression', async function () {+    const res = await browser.foo()+        .then(function() {+            return a === b;+        })+        .then(function(equal) {+            return browser.bar(equal);+        })+});++/**+ * COMMENTS+ */++it('should not lost any comments around browser chaining calls', function() {

typo: should not lose и ниже поправь тоже

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+(function() {+    foo();+})();++// should do noting if there are no chained calls of browser commands+(function() {+    this.browser.foo();+    this.browser.bar();+})();++// should split chained browser commands with await and use browser with this+(function() {+    this.browser.foo().bar().baz();+})();++// should split chained browser commands with await and use browser without this+(function() {+    const {browser} = this;++    browser.foo().bar().baz();+})();++// should split only chained browser commands and do nothing with calls without chaining+(function() {+    this.browser.foo().bar();++    this.browser.baz();+})();++// should correctly split chained browser commands wrapped in additional function+(function() {+    (function() {+        this.browser.foo().bar().baz();+    })();+})();++// should correctly split chained browser commands specified in few lines+(function() {+    this.browser+        .foo()+        .bar()+        .baz();+})();++// should correctly split only chained browser commands and save comments in right place+(function() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+})();++// should correctly split chained browser commands specified in few lines with comments+(function() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+})();++// should move return statement to the last call without await+(function() {+    return this.browser.foo().bar().baz();+})();++// should move variable declaration with "var" to the last call+(function() {+    var result1 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "let" to the last call+(function() {+    let result2 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "const" to the last call+(function() {+    const result3 = this.browser.foo().bar().baz();+})();++// should move variable declaration with destructuring to the last call+(function() {+    const {some} = this.browser.foo().bar().baz();+})();++// should handle the case when use browser multiple times (with if statement)+(function() {+    const {browser} = this;++    if (someIfStatement) {+        return browser.foo().bar();+    }++    return this.browser.foz().qux();+})();++// should handle the case when used callback inside browser commands+(function() {+    const {browser} = this;++    return browser.foo().bar(function() {+        return this.browser.baz().qux();+    });+})();++/**+ * USING ASYNC+ */++// should do nothing with async-await calls without chaining browser commands+(async function() {+    await this.browser.foo();+    await this.browser.bar();+})();++// should split chained browser commands with async-await calls+(async function() {+    await this.browser.foo().bar();+})();++// should do nothing with async-await calls but transform without+(async function() {+    await this.browser.foo();++    this.browser.foo().bar();+})();++// should correctly save comments with async-await and browser chained commands+(async function() {+    // before foo+    await this.browser.foo();++    // before bar+    return this.browser.bar()+        // before then+        .then(async function() {+            // before baz+            await this.browser.baz();++            // before qux+            return this.browser.qux();+        })+        // before boom+        .boom();+})();++/**+ * USING PROMISES+ */++// should remove then and await only first browser command+(function() {+    this.browser.foo()+        .then(function() {+            this.browser.bar();+        })+})();++// should remove then and return call of browser command from it+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar();+        })+})();++// should remove then and split browser commands from it+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar().baz();+        })+})();++// should remove then and correctly use comments+(function() {+    // before chaining+    return this+        // before use browser #1+        .browser+        // before call foo+        .foo()+        // before call then #1+        // before call then #2+        .then(function() {+            return this+                // before use browser #2+                .browser+                // before call bar+                .bar()+                // before call baz+                .baz();+        });+})();++// shoult correctly save comments before few then+(function() {+    return this.browser.foo()+        // before then #1+        .then(function() {+            // before call baz+            return this.browser.baz();+        })+        // before then #2+        .then(function() {+            // before call qux+            return this.browser.qux();+        })+})()++// should remove all then calls and return only the last browser call+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar().baz();+        })+        .then(function() {+            return this.browser.qux().boom();+        });+})();++// should correctly handle the case with few nested then calls+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar().baz().then(function() {+                return this.browser.qux();+            })+        })+})();++// should correctly handle the case with one parameter in then call+(async function() {+    this.browser.foo().then(function(val) {+        return this.browser.bar(val);+    });+})();++// should correctly handle the case with one parameter as object in then call+(async function() {+    this.browser.foo().then(function({val}) {+        return this.browser.bar(val);+    });+})();++// should correctly handle the case with few parameters in then call+(async function () {+    this.browser.foo().then(function(v1, v2) {+        return this.browser.bar(v1, v2);+    });+})();++// should correctly handle the case with few thens with parameters and browser chaining calls+(function() {+    return this.browser.foo()+        .then(function(a) {+            return this.browser+                .bar(a)+                .baz()+                .then(function(b) {+                    return this.browser.qux(b).qwe();+                });+        })+        .then(function(c, d) {+            return this.browser.rty(c, d);+        })+})();++// should correctly handle the case with bind inside then (bind not called)+(function() {+    this.browser+        .foo()+        .then(foo.bind(this.browser));+})();++// should not fail when onRejected callback passed to then (TODO: fix it with transform to try catch)+(function() {+    this.browser+        .foo()+        .then(function() {+            return this.browser.bar();+        }, function() {+            throw new Error('o.O');+        });+})();++// should not fail when catch is used in browser chaining (TODO: fix it with transform to try catch)+(function() {+    this.browser+        .foo()+        .catch(function() {+            throw new Error('o.O');+        });+})();++// should not fail when finally is used in browser chaining (TODO: fix it with transform to try finally)+(function() {+    this.browser+        .foo()+        .finally(function() {+            return this.browser.bar();+        });+})();++// should not fail when used conditional expression with browser commands (TODO: fix it)

typo: conditional expression is used

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+(function() {+    foo();+})();++// should do noting if there are no chained calls of browser commands+(function() {+    this.browser.foo();+    this.browser.bar();+})();++// should split chained browser commands with await and use browser with this+(function() {+    this.browser.foo().bar().baz();+})();++// should split chained browser commands with await and use browser without this+(function() {+    const {browser} = this;++    browser.foo().bar().baz();+})();++// should split only chained browser commands and do nothing with calls without chaining+(function() {+    this.browser.foo().bar();++    this.browser.baz();+})();++// should correctly split chained browser commands wrapped in additional function+(function() {+    (function() {+        this.browser.foo().bar().baz();+    })();+})();++// should correctly split chained browser commands specified in few lines+(function() {+    this.browser+        .foo()+        .bar()+        .baz();+})();++// should correctly split only chained browser commands and save comments in right place+(function() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+})();++// should correctly split chained browser commands specified in few lines with comments+(function() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+})();++// should move return statement to the last call without await+(function() {+    return this.browser.foo().bar().baz();+})();++// should move variable declaration with "var" to the last call+(function() {+    var result1 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "let" to the last call+(function() {+    let result2 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "const" to the last call+(function() {+    const result3 = this.browser.foo().bar().baz();+})();++// should move variable declaration with destructuring to the last call+(function() {+    const {some} = this.browser.foo().bar().baz();+})();++// should handle the case when use browser multiple times (with if statement)+(function() {+    const {browser} = this;++    if (someIfStatement) {+        return browser.foo().bar();+    }++    return this.browser.foz().qux();+})();++// should handle the case when used callback inside browser commands+(function() {+    const {browser} = this;++    return browser.foo().bar(function() {+        return this.browser.baz().qux();+    });+})();++/**+ * USING ASYNC+ */++// should do nothing with async-await calls without chaining browser commands+(async function() {+    await this.browser.foo();+    await this.browser.bar();+})();++// should split chained browser commands with async-await calls+(async function() {+    await this.browser.foo().bar();+})();++// should do nothing with async-await calls but transform without+(async function() {+    await this.browser.foo();++    this.browser.foo().bar();+})();++// should correctly save comments with async-await and browser chained commands+(async function() {+    // before foo+    await this.browser.foo();++    // before bar+    return this.browser.bar()+        // before then+        .then(async function() {+            // before baz+            await this.browser.baz();++            // before qux+            return this.browser.qux();+        })+        // before boom+        .boom();+})();++/**+ * USING PROMISES+ */++// should remove then and await only first browser command+(function() {+    this.browser.foo()+        .then(function() {+            this.browser.bar();+        })+})();++// should remove then and return call of browser command from it+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar();+        })+})();++// should remove then and split browser commands from it+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar().baz();+        })+})();++// should remove then and correctly use comments+(function() {+    // before chaining+    return this+        // before use browser #1+        .browser+        // before call foo+        .foo()+        // before call then #1+        // before call then #2+        .then(function() {+            return this+                // before use browser #2+                .browser+                // before call bar+                .bar()+                // before call baz+                .baz();+        });+})();++// shoult correctly save comments before few then+(function() {+    return this.browser.foo()+        // before then #1+        .then(function() {+            // before call baz+            return this.browser.baz();+        })+        // before then #2+        .then(function() {+            // before call qux+            return this.browser.qux();+        })+})()++// should remove all then calls and return only the last browser call+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar().baz();+        })+        .then(function() {+            return this.browser.qux().boom();+        });+})();++// should correctly handle the case with few nested then calls+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar().baz().then(function() {+                return this.browser.qux();+            })+        })+})();++// should correctly handle the case with one parameter in then call+(async function() {+    this.browser.foo().then(function(val) {+        return this.browser.bar(val);+    });+})();++// should correctly handle the case with one parameter as object in then call+(async function() {+    this.browser.foo().then(function({val}) {+        return this.browser.bar(val);+    });+})();++// should correctly handle the case with few parameters in then call+(async function () {+    this.browser.foo().then(function(v1, v2) {+        return this.browser.bar(v1, v2);+    });+})();++// should correctly handle the case with few thens with parameters and browser chaining calls+(function() {+    return this.browser.foo()+        .then(function(a) {+            return this.browser+                .bar(a)+                .baz()+                .then(function(b) {+                    return this.browser.qux(b).qwe();+                });+        })+        .then(function(c, d) {+            return this.browser.rty(c, d);+        })+})();++// should correctly handle the case with bind inside then (bind not called)+(function() {+    this.browser+        .foo()+        .then(foo.bind(this.browser));+})();++// should not fail when onRejected callback passed to then (TODO: fix it with transform to try catch)

typo: is passed

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+(function() {+    foo();+})();++// should do noting if there are no chained calls of browser commands+(function() {+    this.browser.foo();+    this.browser.bar();+})();++// should split chained browser commands with await and use browser with this+(function() {+    this.browser.foo().bar().baz();+})();++// should split chained browser commands with await and use browser without this+(function() {+    const {browser} = this;++    browser.foo().bar().baz();+})();++// should split only chained browser commands and do nothing with calls without chaining+(function() {+    this.browser.foo().bar();++    this.browser.baz();+})();++// should correctly split chained browser commands wrapped in additional function+(function() {+    (function() {+        this.browser.foo().bar().baz();+    })();+})();++// should correctly split chained browser commands specified in few lines+(function() {+    this.browser+        .foo()+        .bar()+        .baz();+})();++// should correctly split only chained browser commands and save comments in right place+(function() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+})();++// should correctly split chained browser commands specified in few lines with comments+(function() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+})();++// should move return statement to the last call without await+(function() {+    return this.browser.foo().bar().baz();+})();++// should move variable declaration with "var" to the last call+(function() {+    var result1 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "let" to the last call+(function() {+    let result2 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "const" to the last call+(function() {+    const result3 = this.browser.foo().bar().baz();+})();++// should move variable declaration with destructuring to the last call+(function() {+    const {some} = this.browser.foo().bar().baz();+})();++// should handle the case when use browser multiple times (with if statement)+(function() {+    const {browser} = this;++    if (someIfStatement) {+        return browser.foo().bar();+    }++    return this.browser.foz().qux();+})();++// should handle the case when used callback inside browser commands+(function() {+    const {browser} = this;++    return browser.foo().bar(function() {+        return this.browser.baz().qux();+    });+})();++/**+ * USING ASYNC+ */++// should do nothing with async-await calls without chaining browser commands+(async function() {+    await this.browser.foo();+    await this.browser.bar();+})();++// should split chained browser commands with async-await calls+(async function() {+    await this.browser.foo().bar();+})();++// should do nothing with async-await calls but transform without+(async function() {+    await this.browser.foo();++    this.browser.foo().bar();+})();++// should correctly save comments with async-await and browser chained commands+(async function() {+    // before foo+    await this.browser.foo();++    // before bar+    return this.browser.bar()+        // before then+        .then(async function() {+            // before baz+            await this.browser.baz();++            // before qux+            return this.browser.qux();+        })+        // before boom+        .boom();+})();++/**+ * USING PROMISES+ */++// should remove then and await only first browser command+(function() {+    this.browser.foo()+        .then(function() {+            this.browser.bar();+        })+})();++// should remove then and return call of browser command from it+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar();+        })+})();++// should remove then and split browser commands from it+(function() {+    return this.browser.foo()+        .then(function() {+            return this.browser.bar().baz();+        })+})();++// should remove then and correctly use comments+(function() {+    // before chaining+    return this+        // before use browser #1+        .browser+        // before call foo+        .foo()+        // before call then #1+        // before call then #2+        .then(function() {+            return this+                // before use browser #2+                .browser+                // before call bar+                .bar()+                // before call baz+                .baz();+        });+})();++// shoult correctly save comments before few then

typo: should

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+(function() {+    foo();+})();++// should do noting if there are no chained calls of browser commands+(function() {+    this.browser.foo();+    this.browser.bar();+})();++// should split chained browser commands with await and use browser with this+(function() {+    this.browser.foo().bar().baz();+})();++// should split chained browser commands with await and use browser without this+(function() {+    const {browser} = this;++    browser.foo().bar().baz();+})();++// should split only chained browser commands and do nothing with calls without chaining+(function() {+    this.browser.foo().bar();++    this.browser.baz();+})();++// should correctly split chained browser commands wrapped in additional function+(function() {+    (function() {+        this.browser.foo().bar().baz();+    })();+})();++// should correctly split chained browser commands specified in few lines+(function() {+    this.browser+        .foo()+        .bar()+        .baz();+})();++// should correctly split only chained browser commands and save comments in right place+(function() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+})();++// should correctly split chained browser commands specified in few lines with comments+(function() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+})();++// should move return statement to the last call without await+(function() {+    return this.browser.foo().bar().baz();+})();++// should move variable declaration with "var" to the last call+(function() {+    var result1 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "let" to the last call+(function() {+    let result2 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "const" to the last call+(function() {+    const result3 = this.browser.foo().bar().baz();+})();++// should move variable declaration with destructuring to the last call+(function() {+    const {some} = this.browser.foo().bar().baz();+})();++// should handle the case when use browser multiple times (with if statement)

typo: when browser is used

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+(function() {+    foo();+})();++// should do noting if there are no chained calls of browser commands+(function() {+    this.browser.foo();+    this.browser.bar();+})();++// should split chained browser commands with await and use browser with this+(function() {+    this.browser.foo().bar().baz();+})();++// should split chained browser commands with await and use browser without this+(function() {+    const {browser} = this;++    browser.foo().bar().baz();+})();++// should split only chained browser commands and do nothing with calls without chaining+(function() {+    this.browser.foo().bar();++    this.browser.baz();+})();++// should correctly split chained browser commands wrapped in additional function+(function() {+    (function() {+        this.browser.foo().bar().baz();+    })();+})();++// should correctly split chained browser commands specified in few lines+(function() {+    this.browser+        .foo()+        .bar()+        .baz();+})();++// should correctly split only chained browser commands and save comments in right place+(function() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+})();++// should correctly split chained browser commands specified in few lines with comments+(function() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+})();++// should move return statement to the last call without await+(function() {+    return this.browser.foo().bar().baz();+})();++// should move variable declaration with "var" to the last call+(function() {+    var result1 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "let" to the last call+(function() {+    let result2 = this.browser.foo().bar().baz();+})();++// should move variable declaration with "const" to the last call+(function() {+    const result3 = this.browser.foo().bar().baz();+})();++// should move variable declaration with destructuring to the last call+(function() {+    const {some} = this.browser.foo().bar().baz();+})();++// should handle the case when use browser multiple times (with if statement)+(function() {+    const {browser} = this;++    if (someIfStatement) {+        return browser.foo().bar();+    }++    return this.browser.foz().qux();+})();++// should handle the case when used callback inside browser commands

typo: when callback is used

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+(function() {+    foo();+})();++// should do noting if there are no chained calls of browser commands

typo: nothing

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+() => {+    foo();+};++// should do noting if there are no chained calls of browser commands

typo: nothing

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used

typo: nothing

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands+function some_2() {+    this.browser.foo();+    this.browser.bar();+}++// should split chained browser commands with await and use browser with this+function some_3() {+    this.browser.foo().bar().baz();+}++// should split chained browser commands with await and use browser without this+function some_4() {+    const {browser} = this;++    browser.foo().bar().baz();+}++// should split only chained browser commands and do nothing with calls without chaining+function some_5() {+    this.browser.foo().bar();++    this.browser.baz();+}++// should correctly split chained browser commands wrapped in additional function+function some_6() {+    function some_6_1() {+        this.browser.foo().bar().baz();+    }+}++// should correctly split chained browser commands specified in few lines+function some_7() {+    this.browser+        .foo()+        .bar()+        .baz();+}++// should correctly split only chained browser commands and save comments in right place+function some_8() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+}++// should correctly split chained browser commands specified in few lines with comments+function some_9() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+}++// should move return statement to the last call without await+function some_10() {+    return this.browser.foo().bar().baz();+}++// should move variable declaration with "var" to the last call+function some_11() {+    var result1 = this.browser.foo().bar().baz();+}++// should move variable declaration with "let" to the last call+function some_12() {+    let result2 = this.browser.foo().bar().baz();+}++// should move variable declaration with "const" to the last call+function some_13() {+    const result3 = this.browser.foo().bar().baz();+}++// should move variable declaration with destructuring to the last call+function some_14() {+    const {some} = this.browser.foo().bar().baz();+}++// should handle the case when use browser multiple times (with if statement)+function some_15() {+    const {browser} = this;++    if (someIfStatement) {+        return browser.foo().bar();+    }++    return this.browser.foz().qux();+}++// should handle the case when used callback inside browser commands+function some_16() {+    const {browser} = this;++    return browser.foo().bar(function some_16_1() {+        return this.browser.baz().qux();+    });+}++/**+ * USING ASYNC+ */++// should do nothing with async-await calls without chaining browser commands+async function some_17() {+    await this.browser.foo();+    await this.browser.bar();+}++// should split chained browser commands with async-await calls+async function some_18() {+    await this.browser.foo().bar();+}++// should do nothing with async-await calls but transform without+async function some_19() {+    await this.browser.foo();++    this.browser.foo().bar();+}++// should correctly save comments with async-await and browser chained commands+async function some_20() {+    // before foo+    await this.browser.foo();++    // before bar+    return this.browser.bar()+        // before then+        .then(async function some_20_1() {+            // before baz+            await this.browser.baz();++            // before qux+            return this.browser.qux();+        })+        // before boom+        .boom();+}++/**+ * USING PROMISES+ */++// should remove then and await only first browser command+function some_21() {+    this.browser.foo()+        .then(function some_21_1() {+            this.browser.bar();+        });+}++// should remove then and return call of browser command from it+function some_22() {+    return this.browser.foo()+        .then(function some_22_1() {+            return this.browser.bar();+        });+}++// should remove then and split browser commands from it+function some_23() {+    return this.browser.foo()+        .then(function some_23_1() {+            return this.browser.bar().baz();+        })+}++// should remove then and correctly use comments+function some_24() {+    // before chaining+    return this+        // before use browser #1+        .browser+        // before call foo+        .foo()+        // before call then #1+        // before call then #2+        .then(function some_24_1() {+            return this+                // before use browser #2+                .browser+                // before call bar+                .bar()+                // before call baz+                .baz();+        });+}++// shoult correctly save comments before few then+function some_25() {+    return this.browser.foo()+        // before then #1+        .then(function some_25_1() {+            // before call baz+            return this.browser.baz();+        })+        // before then #2+        .then(function some_25_2() {+            // before call qux+            return this.browser.qux();+        })+}++// should remove all then calls and return only the last browser call+function some_26() {+    return this.browser.foo()+        .then(function some_26_1() {+            return this.browser.bar().baz();+        })+        .then(function some_26_2() {+            return this.browser.qux().boom();+        });+}++// should correctly handle the case with few nested then calls+function some_27() {+    return this.browser.foo()+        .then(function some_27_1() {+            return this.browser.bar().baz().then(function some_27_2() {+                return this.browser.qux();+            })+        })+}++// should correctly handle the case with one parameter in then call+async function some_28() {+    this.browser.foo().then(function some_28_1(val) {+        return this.browser.bar(val);+    });+}++// should correctly handle the case with one parameter as object in then call+async function some_29() {+    this.browser.foo().then(function some_29_1({val}) {+        return this.browser.bar(val);+    });+}++// should correctly handle the case with few parameters in then call+async function some_30() {+    this.browser.foo().then(function some_30_1(v1, v2) {+        return this.browser.bar(v1, v2);+    });+}++// should correctly handle the case with few thens with parameters and browser chaining calls+function some_31() {+    return this.browser.foo()+        .then(function some_31_1(a) {+            return this.browser+                .bar(a)+                .baz()+                .then(function some_31_2(b) {+                    return this.browser.qux(b).qwe();+                });+        })+        .then(function some_31_3(c, d) {+            return this.browser.rty(c, d);+        })+}++// should correctly handle the case with bind inside then (bind not called)+function some_32() {+    this.browser+        .foo()+        .then(foo.bind(this.browser));+}++// should not fail when onRejected callback passed to then (TODO: fix it with transform to try catch)

typo: is passed

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands+function some_2() {+    this.browser.foo();+    this.browser.bar();+}++// should split chained browser commands with await and use browser with this+async function some_3() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+}++// should split chained browser commands with await and use browser without this+async function some_4() {+    const {browser} = this;++    await browser.foo();+    await browser.bar();+    await browser.baz();+}++// should split only chained browser commands and do nothing with calls without chaining+async function some_5() {+    await this.browser.foo();+    await this.browser.bar();++    this.browser.baz();+}++// should correctly split chained browser commands wrapped in additional function+function some_6() {+    async function some_6_1() {+        await this.browser.foo();+        await this.browser.bar();+        await this.browser.baz();+    }+}++// should correctly split chained browser commands specified in few lines+async function some_7() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+}++// should correctly split only chained browser commands and save comments in right place+async function some_8() {+    // before foo+    await this.browser.foo();++    await this.browser.bar();++    // before baz+    return this.browser.baz();+}++// should correctly split chained browser commands specified in few lines with comments+async function some_9() {+    // before chaining+    // before use browser+    // before call foo+    await this.browser.foo();++    // before call bar+    await this.browser.bar();++    // before call baz+    await this.browser.baz();+}++// should move return statement to the last call without await+async function some_10() {+    await this.browser.foo();+    await this.browser.bar();+    return this.browser.baz();+}++// should move variable declaration with "var" to the last call+async function some_11() {+    await this.browser.foo();+    await this.browser.bar();+    var result1 = await this.browser.baz();+}++// should move variable declaration with "let" to the last call+async function some_12() {+    await this.browser.foo();+    await this.browser.bar();+    let result2 = await this.browser.baz();+}++// should move variable declaration with "const" to the last call+async function some_13() {+    await this.browser.foo();+    await this.browser.bar();+    const result3 = await this.browser.baz();+}++// should move variable declaration with destructuring to the last call+async function some_14() {+    await this.browser.foo();+    await this.browser.bar();+    const {some} = await this.browser.baz();+}++// should handle the case when use browser multiple times (with if statement)+async function some_15() {+    const {browser} = this;++    if (someIfStatement) {+        await browser.foo();+        return browser.bar();+    }++    await this.browser.foz();+    return this.browser.qux();+}++// should handle the case when used callback inside browser commands+async function some_16() {+    const {browser} = this;++    await browser.foo();++    return browser.bar(async function some_16_1() {+        await this.browser.baz();+        return this.browser.qux();+    });+}++/**+ * USING ASYNC+ */++// should do nothing with async-await calls without chaining browser commands+async function some_17() {+    await this.browser.foo();+    await this.browser.bar();+}++// should split chained browser commands with async-await calls+async function some_18() {+    await this.browser.foo();+    await this.browser.bar();+}++// should do nothing with async-await calls but transform without+async function some_19() {+    await this.browser.foo();++    await this.browser.foo();+    await this.browser.bar();+}++// should correctly save comments with async-await and browser chained commands+async function some_20() {+    // before foo+    await this.browser.foo();++    // before bar+    await this.browser.bar();++    // before then+    // before baz+    await this.browser.baz();++    // before qux+    await this.browser.qux();++    // before boom+    return this.browser.boom();+}++/**+ * USING PROMISES+ */++// should remove then and await only first browser command+async function some_21() {+    await this.browser.foo();+    this.browser.bar();+}++// should remove then and return call of browser command from it+async function some_22() {+    await this.browser.foo();+    return this.browser.bar();+}++// should remove then and split browser commands from it+async function some_23() {+    await this.browser.foo();+    await this.browser.bar();+    return this.browser.baz();+}++// should remove then and correctly use comments+async function some_24() {+    // before chaining+    // before use browser #1+    // before call foo+    await this.browser.foo();++    // before call then #1+    // before call then #2+    // before use browser #2+    // before call bar+    await this.browser.bar();++    // before call baz+    return this.browser.baz();+}++// shoult correctly save comments before few then+async function some_25() {+    await this.browser.foo();++    // before then #1+    // before call baz+    await this.browser.baz();++    // before then #2+    // before call qux+    return this.browser.qux();+}++// should remove all then calls and return only the last browser call+async function some_26() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+    await this.browser.qux();+    return this.browser.boom();+}++// should correctly handle the case with few nested then calls+async function some_27() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+    return this.browser.qux();+}++// should correctly handle the case with one parameter in then call+async function some_28() {+    const val = await this.browser.foo();+    return this.browser.bar(val);+}++// should correctly handle the case with one parameter as object in then call+async function some_29() {+    const {val} = await this.browser.foo();+    return this.browser.bar(val);+}++// should correctly handle the case with few parameters in then call+async function some_30() {+    const [v1, v2] = await this.browser.foo();+    return this.browser.bar(v1, v2);+}++// should correctly handle the case with few thens with parameters and browser chaining calls+async function some_31() {+    const a = await this.browser.foo();+    await this.browser.bar(a);+    const b = await this.browser.baz();+    await this.browser.qux(b);+    const [c, d] = await this.browser.qwe();+    return this.browser.rty(c, d);+}++// should correctly handle the case with bind inside then (bind not called)+async function some_32() {+    await this.browser.foo();+    return foo.bind(this.browser);+}++// should not fail when onRejected callback passed to then (TODO: fix it with transform to try catch)

typo: is passed

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands+function some_2() {+    this.browser.foo();+    this.browser.bar();+}++// should split chained browser commands with await and use browser with this+async function some_3() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+}++// should split chained browser commands with await and use browser without this+async function some_4() {+    const {browser} = this;++    await browser.foo();+    await browser.bar();+    await browser.baz();+}++// should split only chained browser commands and do nothing with calls without chaining+async function some_5() {+    await this.browser.foo();+    await this.browser.bar();++    this.browser.baz();+}++// should correctly split chained browser commands wrapped in additional function+function some_6() {+    async function some_6_1() {+        await this.browser.foo();+        await this.browser.bar();+        await this.browser.baz();+    }+}++// should correctly split chained browser commands specified in few lines+async function some_7() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+}++// should correctly split only chained browser commands and save comments in right place+async function some_8() {+    // before foo+    await this.browser.foo();++    await this.browser.bar();++    // before baz+    return this.browser.baz();+}++// should correctly split chained browser commands specified in few lines with comments+async function some_9() {+    // before chaining+    // before use browser+    // before call foo+    await this.browser.foo();++    // before call bar+    await this.browser.bar();++    // before call baz+    await this.browser.baz();+}++// should move return statement to the last call without await+async function some_10() {+    await this.browser.foo();+    await this.browser.bar();+    return this.browser.baz();+}++// should move variable declaration with "var" to the last call+async function some_11() {+    await this.browser.foo();+    await this.browser.bar();+    var result1 = await this.browser.baz();+}++// should move variable declaration with "let" to the last call+async function some_12() {+    await this.browser.foo();+    await this.browser.bar();+    let result2 = await this.browser.baz();+}++// should move variable declaration with "const" to the last call+async function some_13() {+    await this.browser.foo();+    await this.browser.bar();+    const result3 = await this.browser.baz();+}++// should move variable declaration with destructuring to the last call+async function some_14() {+    await this.browser.foo();+    await this.browser.bar();+    const {some} = await this.browser.baz();+}++// should handle the case when use browser multiple times (with if statement)+async function some_15() {+    const {browser} = this;++    if (someIfStatement) {+        await browser.foo();+        return browser.bar();+    }++    await this.browser.foz();+    return this.browser.qux();+}++// should handle the case when used callback inside browser commands

typo: when callback is used

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+() => {+    foo();+};++// should do noting if there are no chained calls of browser commands

typo: nothing

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands+function some_2() {+    this.browser.foo();+    this.browser.bar();+}++// should split chained browser commands with await and use browser with this+async function some_3() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+}++// should split chained browser commands with await and use browser without this+async function some_4() {+    const {browser} = this;++    await browser.foo();+    await browser.bar();+    await browser.baz();+}++// should split only chained browser commands and do nothing with calls without chaining+async function some_5() {+    await this.browser.foo();+    await this.browser.bar();++    this.browser.baz();+}++// should correctly split chained browser commands wrapped in additional function+function some_6() {+    async function some_6_1() {+        await this.browser.foo();+        await this.browser.bar();+        await this.browser.baz();+    }+}++// should correctly split chained browser commands specified in few lines+async function some_7() {+    await this.browser.foo();+    await this.browser.bar();+    await this.browser.baz();+}++// should correctly split only chained browser commands and save comments in right place+async function some_8() {+    // before foo+    await this.browser.foo();++    await this.browser.bar();++    // before baz+    return this.browser.baz();+}++// should correctly split chained browser commands specified in few lines with comments+async function some_9() {+    // before chaining+    // before use browser+    // before call foo+    await this.browser.foo();++    // before call bar+    await this.browser.bar();++    // before call baz+    await this.browser.baz();+}++// should move return statement to the last call without await+async function some_10() {+    await this.browser.foo();+    await this.browser.bar();+    return this.browser.baz();+}++// should move variable declaration with "var" to the last call+async function some_11() {+    await this.browser.foo();+    await this.browser.bar();+    var result1 = await this.browser.baz();+}++// should move variable declaration with "let" to the last call+async function some_12() {+    await this.browser.foo();+    await this.browser.bar();+    let result2 = await this.browser.baz();+}++// should move variable declaration with "const" to the last call+async function some_13() {+    await this.browser.foo();+    await this.browser.bar();+    const result3 = await this.browser.baz();+}++// should move variable declaration with destructuring to the last call+async function some_14() {+    await this.browser.foo();+    await this.browser.bar();+    const {some} = await this.browser.baz();+}++// should handle the case when use browser multiple times (with if statement)

typo: when browser is used

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands+function some_2() {+    this.browser.foo();+    this.browser.bar();+}++// should split chained browser commands with await and use browser with this+function some_3() {+    this.browser.foo().bar().baz();+}++// should split chained browser commands with await and use browser without this+function some_4() {+    const {browser} = this;++    browser.foo().bar().baz();+}++// should split only chained browser commands and do nothing with calls without chaining+function some_5() {+    this.browser.foo().bar();++    this.browser.baz();+}++// should correctly split chained browser commands wrapped in additional function+function some_6() {+    function some_6_1() {+        this.browser.foo().bar().baz();+    }+}++// should correctly split chained browser commands specified in few lines+function some_7() {+    this.browser+        .foo()+        .bar()+        .baz();+}++// should correctly split only chained browser commands and save comments in right place+function some_8() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+}++// should correctly split chained browser commands specified in few lines with comments+function some_9() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+}++// should move return statement to the last call without await+function some_10() {+    return this.browser.foo().bar().baz();+}++// should move variable declaration with "var" to the last call+function some_11() {+    var result1 = this.browser.foo().bar().baz();+}++// should move variable declaration with "let" to the last call+function some_12() {+    let result2 = this.browser.foo().bar().baz();+}++// should move variable declaration with "const" to the last call+function some_13() {+    const result3 = this.browser.foo().bar().baz();+}++// should move variable declaration with destructuring to the last call+function some_14() {+    const {some} = this.browser.foo().bar().baz();+}++// should handle the case when use browser multiple times (with if statement)+function some_15() {+    const {browser} = this;++    if (someIfStatement) {+        return browser.foo().bar();+    }++    return this.browser.foz().qux();+}++// should handle the case when used callback inside browser commands

typo: when callback is used

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands

typo: nothing

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used

typo: nothing

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands+function some_2() {+    this.browser.foo();+    this.browser.bar();+}++// should split chained browser commands with await and use browser with this+function some_3() {+    this.browser.foo().bar().baz();+}++// should split chained browser commands with await and use browser without this+function some_4() {+    const {browser} = this;++    browser.foo().bar().baz();+}++// should split only chained browser commands and do nothing with calls without chaining+function some_5() {+    this.browser.foo().bar();++    this.browser.baz();+}++// should correctly split chained browser commands wrapped in additional function+function some_6() {+    function some_6_1() {+        this.browser.foo().bar().baz();+    }+}++// should correctly split chained browser commands specified in few lines+function some_7() {+    this.browser+        .foo()+        .bar()+        .baz();+}++// should correctly split only chained browser commands and save comments in right place+function some_8() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+}++// should correctly split chained browser commands specified in few lines with comments+function some_9() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+}++// should move return statement to the last call without await+function some_10() {+    return this.browser.foo().bar().baz();+}++// should move variable declaration with "var" to the last call+function some_11() {+    var result1 = this.browser.foo().bar().baz();+}++// should move variable declaration with "let" to the last call+function some_12() {+    let result2 = this.browser.foo().bar().baz();+}++// should move variable declaration with "const" to the last call+function some_13() {+    const result3 = this.browser.foo().bar().baz();+}++// should move variable declaration with destructuring to the last call+function some_14() {+    const {some} = this.browser.foo().bar().baz();+}++// should handle the case when use browser multiple times (with if statement)+function some_15() {+    const {browser} = this;++    if (someIfStatement) {+        return browser.foo().bar();+    }++    return this.browser.foz().qux();+}++// should handle the case when used callback inside browser commands+function some_16() {+    const {browser} = this;++    return browser.foo().bar(function some_16_1() {+        return this.browser.baz().qux();+    });+}++/**+ * USING ASYNC+ */++// should do nothing with async-await calls without chaining browser commands+async function some_17() {+    await this.browser.foo();+    await this.browser.bar();+}++// should split chained browser commands with async-await calls+async function some_18() {+    await this.browser.foo().bar();+}++// should do nothing with async-await calls but transform without+async function some_19() {+    await this.browser.foo();++    this.browser.foo().bar();+}++// should correctly save comments with async-await and browser chained commands+async function some_20() {+    // before foo+    await this.browser.foo();++    // before bar+    return this.browser.bar()+        // before then+        .then(async function some_20_1() {+            // before baz+            await this.browser.baz();++            // before qux+            return this.browser.qux();+        })+        // before boom+        .boom();+}++/**+ * USING PROMISES+ */++// should remove then and await only first browser command+function some_21() {+    this.browser.foo()+        .then(function some_21_1() {+            this.browser.bar();+        });+}++// should remove then and return call of browser command from it+function some_22() {+    return this.browser.foo()+        .then(function some_22_1() {+            return this.browser.bar();+        });+}++// should remove then and split browser commands from it+function some_23() {+    return this.browser.foo()+        .then(function some_23_1() {+            return this.browser.bar().baz();+        })+}++// should remove then and correctly use comments+function some_24() {+    // before chaining+    return this+        // before use browser #1+        .browser+        // before call foo+        .foo()+        // before call then #1+        // before call then #2+        .then(function some_24_1() {+            return this+                // before use browser #2+                .browser+                // before call bar+                .bar()+                // before call baz+                .baz();+        });+}++// shoult correctly save comments before few then

typo: should

DudaGod

comment created time in 2 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands

typo: nothing

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+function some_1() {+    foo();+}++// should do noting if there are no chained calls of browser commands+function some_2() {+    this.browser.foo();+    this.browser.bar();+}++// should split chained browser commands with await and use browser with this+function some_3() {+    this.browser.foo().bar().baz();+}++// should split chained browser commands with await and use browser without this+function some_4() {+    const {browser} = this;++    browser.foo().bar().baz();+}++// should split only chained browser commands and do nothing with calls without chaining+function some_5() {+    this.browser.foo().bar();++    this.browser.baz();+}++// should correctly split chained browser commands wrapped in additional function+function some_6() {+    function some_6_1() {+        this.browser.foo().bar().baz();+    }+}++// should correctly split chained browser commands specified in few lines+function some_7() {+    this.browser+        .foo()+        .bar()+        .baz();+}++// should correctly split only chained browser commands and save comments in right place+function some_8() {+    // before foo+    this.browser.foo().bar();++    // before baz+    return this.browser.baz();+}++// should correctly split chained browser commands specified in few lines with comments+function some_9() {+    // before chaining+    this+        // before use browser+        .browser+        // before call foo+        .foo()+        // before call bar+        .bar()+        // before call baz+        .baz();+}++// should move return statement to the last call without await+function some_10() {+    return this.browser.foo().bar().baz();+}++// should move variable declaration with "var" to the last call+function some_11() {+    var result1 = this.browser.foo().bar().baz();+}++// should move variable declaration with "let" to the last call+function some_12() {+    let result2 = this.browser.foo().bar().baz();+}++// should move variable declaration with "const" to the last call+function some_13() {+    const result3 = this.browser.foo().bar().baz();+}++// should move variable declaration with destructuring to the last call+function some_14() {+    const {some} = this.browser.foo().bar().baz();+}++// should handle the case when use browser multiple times (with if statement)

typo: when browser is used

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

-# hermione-codemod+# hermione-codemod [![Build Status](https://travis-ci.com/gemini-testing/hermione-codemod.svg)](https://travis-ci.com/gemini-testing/hermione-codemod) -Hermione codemod scripts+This repository contains a collection of codemod scripts for use with [JSCodeshift](https://github.com/facebook/jscodeshift) that help update Hermione APIs.

to be used with ... that helps to update

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+() => {+    foo();+};++// should do noting if there are no chained calls of browser commands+() => {+    this.browser.foo();+    this.browser.bar();+};++// should split chained browser commands with await and return for last command+async () => {+    await this.browser.foo();+    await this.browser.bar();+    return this.browser.baz();+};++// ANOTHER TESTS++// should use return statement when calling on command inside then+async () => {+    const dataset = await this.browser.foo();+    return this.browser.yaParseUrl(dataset[0].url);+};++// should correctly handle the case with assignment expression in "then" with arrow func+async () => {+    let firstBreadcrumbText;++    const text = await this.browser.foo();+    firstBreadcrumbText = text;+};++// should not fail when used logical expression with browser commands (TODO: fix it with transform to ifStatement)

typo: when logical expression is used

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used

typo: nothing

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+() => {+    foo();+};++// should do noting if there are no chained calls of browser commands+() => {+    this.browser.foo();+    this.browser.bar();+};++// should split chained browser commands with await and return for last command

typo: return result of last command

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used

typo: nothing

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+() => {+    foo();+};++// should do noting if there are no chained calls of browser commands+() => {+    this.browser.foo();+    this.browser.bar();+};++// should split chained browser commands with await and return for last command+() => this.browser.foo().bar().baz();++// ANOTHER TESTS++// should use return statement when calling on command inside then+() => {+    return this.browser.foo()+        .then(dataset => this.browser.yaParseUrl(dataset[0].url));+};++// should correctly handle the case with assignment expression in "then" with arrow func+() => {+    let firstBreadcrumbText;++    return this.browser.foo()+        .then(text => firstBreadcrumbText = text);+};++// should not fail when used logical expression with browser commands (TODO: fix it with transform to ifStatement)

typo: when logical expression is used

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used+() => {+    foo();+};++// should do noting if there are no chained calls of browser commands+() => {+    this.browser.foo();+    this.browser.bar();+};++// should split chained browser commands with await and return for last command

typo: return result of last command?

DudaGod

comment created time in 3 days

Pull request review commentgemini-testing/hermione-codemod

feat: main functionality

+'use strict';++// should do noting if "browser" identifier is not used

typo: nothing

DudaGod

comment created time in 3 days