File: extract-method46.ts

package info (click to toggle)
node-typescript 4.8.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 523,068 kB
  • sloc: javascript: 1,735,777; makefile: 7; sh: 1
file content (54 lines) | stat: -rw-r--r-- 1,190 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/// <reference path="fourslash.ts" />

////export function fn(m: number, n: number) {
////    const mode = m >= 0 ? "a" : "b";
////    let result: number = 0;
////
////    if (mode === "a") {
////        /*a*/for (let i = 0; i < n; i++) {
////            const rand = Math.random();
////            if (rand > 0.5) {
////                result = rand;
////                break;
////            }
////        }/*b*/
////    }
////    else {
////        result = 0;
////    }
////
////    return result;
////}

goTo.select("a", "b");
edit.applyRefactor({
    refactorName: "Extract Symbol",
    actionName: "function_scope_1",
    actionDescription: "Extract to function in module scope",
    newContent:
`export function fn(m: number, n: number) {
    const mode = m >= 0 ? "a" : "b";
    let result: number = 0;

    if (mode === "a") {
        result = /*RENAME*/newFunction(n, result);
    }
    else {
        result = 0;
    }

    return result;
}

function newFunction(n: number, result: number) {
    for (let i = 0; i < n; i++) {
        const rand = Math.random();
        if (rand > 0.5) {
            result = rand;
            break;
        }
    }
    return result;
}
`
});