Skip to content

Commit e747401

Browse files
committed
refactor editor actions
1 parent 07b52e6 commit e747401

File tree

15 files changed

+50
-45
lines changed

15 files changed

+50
-45
lines changed

lib/main.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use strict";
22
var render_1 = require('./components/render');
33
var root_1 = require('./components/root');
4-
var polyfills_1 = require('./services/polyfills');
4+
var polyfills_1 = require('./polyfills');
55
var subscriptions_1 = require('./subscriptions');
66
var store_1 = require('./store');
77
var actions_1 = require('./modules/setup/actions');

lib/modules/page/task-actions/handle-action-string.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ function handleActionString(actionString) {
1919
var options = obj.options;
2020
if (params.length === 1) {
2121
store_1.default.dispatch(actions_1.editorOpen(file, options));
22-
setTimeout(function () { return resolve(); }, 100);
22+
resolve();
2323
}
2424
break;
2525
case Type.SET:
2626
if (params.length === 1) {
2727
var content_1 = params[0];
2828
setTimeout(function () {
2929
store_1.default.dispatch(actions_1.editorSet(content_1));
30-
resolve(true);
30+
resolve();
3131
});
3232
}
3333
break;
@@ -36,7 +36,7 @@ function handleActionString(actionString) {
3636
var content_2 = params[0];
3737
setTimeout(function () {
3838
store_1.default.dispatch(actions_1.editorInsert(content_2));
39-
resolve(true);
39+
resolve();
4040
});
4141
}
4242
break;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"use strict";
2+
var handle_action_string_1 = require('./handle-action-string');
3+
function handleTaskActions(actions) {
4+
var next = actions.shift();
5+
if (next && next.length) {
6+
next.reduce(function (total, curr) {
7+
return total.then(function () { return handle_action_string_1.default(curr); });
8+
}, Promise.resolve());
9+
}
10+
}
11+
Object.defineProperty(exports, "__esModule", { value: true });
12+
exports.default = handleTaskActions;

lib/modules/page/task-actions/index.js

+7-15
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
11
"use strict";
22
var types_1 = require('../types');
3-
var handle_action_string_1 = require('./handle-action-string');
4-
function handleTaskActions(actions) {
5-
var next = actions.shift();
6-
if (next && next.length) {
7-
next.reduce(function (total, curr) {
8-
return total.then(function () { return handle_action_string_1.default(curr); });
9-
}, Promise.resolve());
10-
}
11-
}
12-
var taskTracker = 0;
3+
var handle_actions_1 = require('./handle-actions');
4+
var taskPositionTracker = 0;
135
function taskActionsReducer(taskActions, action) {
146
if (taskActions === void 0) { taskActions = []; }
157
var actions = null;
@@ -25,18 +17,18 @@ function taskActionsReducer(taskActions, action) {
2517
return task.actions.filter(function (a) { return !!a.match(/^open/); });
2618
});
2719
}
28-
taskTracker = 0;
29-
handleTaskActions(actions);
20+
taskPositionTracker = 0;
21+
handle_actions_1.default(actions);
3022
return actions;
3123
case 'TEST_RESULT':
3224
actions = action.payload.taskActions || [];
3325
var nextTaskPosition = action.payload.result.taskPosition;
34-
var times = nextTaskPosition - taskTracker;
26+
var times = nextTaskPosition - taskPositionTracker;
3527
if (times > 0) {
3628
for (var i = 0; i < times; i++) {
37-
handleTaskActions(actions);
29+
handle_actions_1.default(actions);
3830
}
39-
taskTracker = nextTaskPosition;
31+
taskPositionTracker = nextTaskPosition;
4032
}
4133
return actions;
4234
default:

lib/modules/setup/utils/action-setup.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
var path_1 = require('path');
3-
var editor_1 = require('../../../modules/editor');
3+
var editor_1 = require('../../editor');
44
var packageData = "{\n \"name\": \"demo\",\n \"dependencies\": {\n \"coderoad-functional-school\": \"^0.2.2\"\n }\n}";
55
function createPackageJson(dir) {
66
var packagePath = path_1.join(dir, 'package.json');
File renamed without changes.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"highlights": "1.3.1",
4343
"marked": "0.3.5",
4444
"material-ui": "0.15.0",
45-
"node-file-exists": "^1.0.0",
45+
"node-file-exists": "1.1.0",
4646
"process-console-log": "^0.1.0",
4747
"react": "15.1.0",
4848
"react-dom": "15.1.0",

src/main.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22
import render from './components/render';
33
import Root from './components/root';
4-
import loadPolyfills from './services/polyfills';
4+
import loadPolyfills from './polyfills';
55
import {onActivate, onDeactivate, addToStatusBar} from './subscriptions';
66
// activate Redux
77
import store from './store';
@@ -11,7 +11,7 @@ class Main {
1111
root: HTMLElement;
1212
statusBarTile: StatusBar.IStatusBarView;
1313
constructor() {
14-
loadPolyfills(); // remove with Chrome 50
14+
loadPolyfills();
1515
// run startup checks
1616
store.dispatch(setupVerify());
1717
this.root = Root.init();

src/modules/page/task-actions/handle-action-string.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export default function handleActionString(
1616
return new Promise((resolve, reject) => {
1717
const command: string = getCommand(actionString);
1818
const params: string[] = getParams(actionString);
19+
1920
switch (command) {
2021

2122
case Type.OPEN:
@@ -24,7 +25,7 @@ export default function handleActionString(
2425
const options = obj.options;
2526
if (params.length === 1) {
2627
store.dispatch(editorOpen(file, options));
27-
setTimeout(() => resolve(), 100);
28+
resolve();
2829
}
2930
break;
3031

@@ -33,7 +34,7 @@ export default function handleActionString(
3334
const content = params[0];
3435
setTimeout(() => {
3536
store.dispatch(editorSet(content));
36-
resolve(true);
37+
resolve();
3738
});
3839
}
3940
break;
@@ -43,7 +44,7 @@ export default function handleActionString(
4344
const content: string = params[0];
4445
setTimeout(() => {
4546
store.dispatch(editorInsert(content));
46-
resolve(true);
47+
resolve();
4748
});
4849
}
4950
break;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import handleActionString from './handle-action-string';
2+
3+
export default function handleTaskActions(actions: string[][]): void {
4+
const next = actions.shift();
5+
if (next && next.length) {
6+
// resolve promises in order
7+
next.reduce((total: Promise<any>, curr: string) => {
8+
return total.then(() => handleActionString(curr));
9+
}, Promise.resolve());
10+
}
11+
}

src/modules/page/task-actions/index.ts

+5-16
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,8 @@
11
import {PAGE_SET} from '../types';
2-
import handleActionString from './handle-action-string';
3-
4-
function handleTaskActions(actions: string[][]): void {
5-
const next = actions.shift();
6-
if (next && next.length) {
7-
// resolve promises in order
8-
next.reduce((total: Promise<any>, curr: string) => {
9-
return total.then(() => handleActionString(curr));
10-
}, Promise.resolve());
11-
}
12-
}
2+
import handleTaskActions from './handle-actions';
133

144
// trigger actions only once, moving fowards
15-
let taskTracker = 0;
5+
let taskPositionTracker = 0;
166

177
export default function taskActionsReducer(
188
taskActions = [], action: Action
@@ -32,22 +22,21 @@ export default function taskActionsReducer(
3222
return task.actions.filter(a => !!a.match(/^open/));
3323
});
3424
}
35-
taskTracker = 0;
25+
taskPositionTracker = 0;
3626
handleTaskActions(actions); // run first action
3727
return actions;
3828

3929
// run task actions
4030
case 'TEST_RESULT':
4131
actions = action.payload.taskActions || [];
4232
const nextTaskPosition = action.payload.result.taskPosition;
43-
const times: number = nextTaskPosition - taskTracker;
44-
33+
const times: number = nextTaskPosition - taskPositionTracker;
4534
if (times > 0) {
4635
// run actions for each task position passed
4736
for (let i = 0; i < times; i++) {
4837
handleTaskActions(actions); // run first action
4938
}
50-
taskTracker = nextTaskPosition;
39+
taskPositionTracker = nextTaskPosition;
5140
}
5241
return actions;
5342

src/modules/setup/utils/action-setup.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {join} from 'path';
2-
import {open, set, openFolder, openTerminal} from '../../../modules/editor';
2+
import {open, set, openFolder, openTerminal} from '../../editor';
33
import {setupVerify} from '../actions';
44

55
const packageData = `{

src/modules/tutorials/utils/check.ts

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ export function searchForTutorials(dir: string, deps: Object): Tutorial.Info[] {
1212
const pathToTutorialPackageJson = join(
1313
dir, 'node_modules', name, 'package.json'
1414
);
15-
1615
// no package.json
1716
if (!fileExists(pathToTutorialPackageJson)) {
1817
console.log(
File renamed without changes.

tsconfig.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
"src/modules/page/page-position/index.ts",
8484
"src/modules/page/page/index.ts",
8585
"src/modules/page/task-actions/handle-action-string.ts",
86+
"src/modules/page/task-actions/handle-actions.ts",
8687
"src/modules/page/task-actions/index.ts",
8788
"src/modules/page/task-actions/parse-params.ts",
8889
"src/modules/page/task-actions/parser.ts",
@@ -135,8 +136,8 @@
135136
"src/modules/window/index.ts",
136137
"src/modules/window/reducer.ts",
137138
"src/modules/window/types.ts",
139+
"src/polyfills.ts",
138140
"src/reducers.ts",
139-
"src/services/polyfills.ts",
140141
"src/store.ts",
141142
"src/subscriptions.ts",
142143
"src/typings/atom-plugin-command-line/index.ts",

0 commit comments

Comments
 (0)