Skip to content

Commit 961c950

Browse files
committed
refactor tutorial, tutorials into modules
1 parent 42fed98 commit 961c950

File tree

56 files changed

+195
-94
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+195
-94
lines changed

lib/actions/_types.js

-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,3 @@ exports.PROGRESS_LOAD = 'PROGRESS_LOAD';
77
exports.PROGRESS_PAGE_POSITION_LOAD = 'PROGRESS_PAGE_POSITION_LOAD';
88
exports.SETUP_PACKAGE = 'SETUP_PACKAGE';
99
exports.SETUP_VERIFY = 'SETUP_VERIFY';
10-
exports.TUTORIAL_SET = 'TUTORIAL_SET';
11-
exports.TUTORIAL_UPDATE = 'TUTORIAL_UPDATE';
12-
exports.TUTORIALS_FIND = 'TUTORIALS_FIND';

lib/actions/index.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ exports.progressPagePositionLoad = progress_1.progressPagePositionLoad;
77
var page_1 = require('./page');
88
exports.pageSet = page_1.pageSet;
99
exports.pageNext = page_1.pageNext;
10-
var tutorial_1 = require('./tutorial');
11-
exports.tutorialsFind = tutorial_1.tutorialsFind;
12-
exports.tutorialSet = tutorial_1.tutorialSet;
13-
exports.tutorialUpdate = tutorial_1.tutorialUpdate;
1410
var toggle_1 = require('./toggle');
1511
exports.devToolsToggle = toggle_1.devToolsToggle;
1612
var actions_1 = require('../modules/alert/actions');
@@ -29,3 +25,8 @@ exports.testRun = actions_5.testRun;
2925
exports.testResult = actions_5.testResult;
3026
exports.testSave = actions_5.testSave;
3127
exports.testComplete = actions_5.testComplete;
28+
var actions_6 = require('../modules/tutorial/actions');
29+
exports.tutorialSet = actions_6.tutorialSet;
30+
var actions_7 = require('../modules/tutorials/actions');
31+
exports.tutorialsFind = actions_7.tutorialsFind;
32+
exports.tutorialUpdate = actions_7.tutorialUpdate;

lib/components/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ var Routes_1 = require('./Routes');
1111
exports.Routes = Routes_1.default;
1212
var Start_1 = require('./Start');
1313
exports.Start = Start_1.default;
14-
var Tutorials_1 = require('./Tutorials');
15-
exports.Tutorials = Tutorials_1.default;
1614
var Markdown_1 = require('./common/Markdown');
1715
exports.Markdown = Markdown_1.default;
1816
var ContentCard_1 = require('./common/ContentCard');
@@ -23,3 +21,5 @@ var route_1 = require('../modules/route');
2321
exports.RouteButton = route_1.RouteButton;
2422
var setup_1 = require('../modules/setup');
2523
exports.Checks = setup_1.Checks;
24+
var tutorials_1 = require('../modules/tutorials');
25+
exports.Tutorials = tutorials_1.Tutorials;

lib/modules/setup/utils/verify.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
var check_system_1 = require('./check-system');
3-
var check_1 = require('../../../reducers/tutorial-list/check');
3+
var check_1 = require('../../tutorials/utils/check');
44
function allTrue(obj) {
55
return Object.values(obj).every(function (x) { return x === true; });
66
}

lib/modules/tests/task-position/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
var types_1 = require('../types');
3-
function taskPositionReducer(taskPosition, action) {
3+
function taskPosition(taskPosition, action) {
44
if (taskPosition === void 0) { taskPosition = 0; }
55
switch (action.type) {
66
case 'PAGE_SET':
@@ -12,4 +12,4 @@ function taskPositionReducer(taskPosition, action) {
1212
}
1313
}
1414
Object.defineProperty(exports, "__esModule", { value: true });
15-
exports.default = taskPositionReducer;
15+
exports.default = taskPosition;

lib/modules/tests/test-run/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var run_1 = require('../utils/run');
44
var editor_1 = require('../../../atom/editor');
55
var pageTimeout = 800;
66
var previous = new Date().getTime();
7-
function runTestReducer(testRun, action) {
7+
function runTest(testRun, action) {
88
if (testRun === void 0) { testRun = false; }
99
switch (action.type) {
1010
case types_1.TEST_RUN:
@@ -27,4 +27,4 @@ function runTestReducer(testRun, action) {
2727
}
2828
}
2929
Object.defineProperty(exports, "__esModule", { value: true });
30-
exports.default = runTestReducer;
30+
exports.default = runTest;

lib/modules/tutorial/actions.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"use strict";
2+
var types_1 = require('./types');
3+
var actions_1 = require('../../actions');
4+
function tutorialSet(name) {
5+
return function (dispatch, getState) {
6+
var dir = getState().dir;
7+
dispatch({ type: types_1.TUTORIAL_SET, payload: { name: name, dir: dir } });
8+
dispatch(actions_1.progressLoad());
9+
dispatch(actions_1.routeSet('progress'));
10+
};
11+
}
12+
exports.tutorialSet = tutorialSet;

lib/modules/tutorial/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
"use strict";
2+
var reducer_1 = require('./reducer');
3+
exports.reducer = reducer_1.default;

lib/reducers/tutorial/index.js renamed to lib/modules/tutorial/reducer.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
"use strict";
22
var path_1 = require('path');
3-
var tutorial_config_1 = require('./tutorial-config');
4-
var _types_1 = require('../../actions/_types');
5-
var config_paths_1 = require('./config-paths');
3+
var tutorial_config_1 = require('./utils/tutorial-config');
4+
var types_1 = require('./types');
5+
var config_paths_1 = require('./utils/config-paths');
66
var _tutorial = {
77
name: null,
88
info: null,
@@ -13,7 +13,7 @@ var _tutorial = {
1313
function tutorialReducer(tutorial, action) {
1414
if (tutorial === void 0) { tutorial = _tutorial; }
1515
switch (action.type) {
16-
case _types_1.TUTORIAL_SET:
16+
case types_1.TUTORIAL_SET:
1717
var _a = action.payload, name_1 = _a.name, dir = _a.dir;
1818
var packagePath = path_1.join(dir, 'node_modules', name_1);
1919
var packageJson = require(path_1.join(packagePath, 'package.json'));

lib/modules/tutorial/types.js

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"use strict";
2+
exports.TUTORIAL_SET = 'TUTORIAL_SET';

lib/reducers/tutorial/config-paths.js renamed to lib/modules/tutorial/utils/config-paths.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 system_1 = require('../../services/system');
3+
var system_1 = require('../../../services/system');
44
function configTestString(dir, name, config, testPath) {
55
if (system_1.isWindows) {
66
testPath = testPath.split('/').join('\\');

lib/reducers/tutorial/tutorial-config.js renamed to lib/modules/tutorial/utils/tutorial-config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use strict";
22
var path_1 = require('path');
3-
var exists_1 = require('../../services/exists');
4-
var system_1 = require('../../services/system');
3+
var exists_1 = require('../../../services/exists');
4+
var system_1 = require('../../../services/system');
55
function tutorialConfig(tutorialPj, dir) {
66
var config = tutorialPj.config, name = tutorialPj.name;
77
var repo = loadRepo(tutorialPj.repo);

lib/components/Tutorials/LoadTutorials/index.js renamed to lib/modules/tutorials/Tutorials/LoadTutorials/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1515
};
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
18-
var actions_1 = require('../../../actions');
18+
var actions_1 = require('../../actions');
1919
var FlatButton_1 = require('material-ui/FlatButton');
2020
var LoadTutorials = (function (_super) {
2121
__extends(LoadTutorials, _super);

lib/components/Tutorials/SelectTutorial/index.js renamed to lib/modules/tutorials/Tutorials/SelectTutorial/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1515
};
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
18+
var actions_1 = require('../../../../actions');
1819
var FlatButton_1 = require('material-ui/FlatButton');
19-
var actions_1 = require('../../../actions');
2020
function displayName(name) {
2121
if (name.match(/^coderoad-tutorial-/)) {
2222
return name.slice(18);

lib/components/Tutorials/UpdateTutorial/index.js renamed to lib/modules/tutorials/Tutorials/UpdateTutorial/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1515
};
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
18+
var actions_1 = require('../../actions');
1819
var update_1 = require('material-ui/svg-icons/action/update');
19-
var actions_1 = require('../../../actions');
2020
var colors_1 = require('material-ui/styles/colors');
2121
var styles = {
2222
width: '18px',

lib/components/Tutorials/index.js renamed to lib/modules/tutorials/Tutorials/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var Table_1 = require('material-ui/Table');
1919
var LoadTutorials_1 = require('./LoadTutorials');
2020
var UpdateTutorial_1 = require('./UpdateTutorial');
2121
var SelectTutorial_1 = require('./SelectTutorial');
22-
var actions_1 = require('../../actions');
22+
var actions_1 = require('../actions');
2323
var styles = {
2424
padding: '10px',
2525
textAlign: 'center',
@@ -33,8 +33,8 @@ var Tutorials = (function (_super) {
3333
this.props.loadTutorials();
3434
};
3535
Tutorials.prototype.render = function () {
36-
var tutorialList = this.props.tutorialList;
37-
return (React.createElement("div", {style: styles}, React.createElement(Table_1.Table, null, React.createElement(Table_1.TableHeader, {displaySelectAll: false, adjustForCheckbox: false}, React.createElement(Table_1.TableRow, null, React.createElement(Table_1.TableHeaderColumn, null, "Tutorial"), React.createElement(Table_1.TableHeaderColumn, null, "Version"))), React.createElement(Table_1.TableBody, {displayRowCheckbox: false}, tutorialList.map(function tutorialRow(tutorial, index) {
36+
var tutorials = this.props.tutorials;
37+
return (React.createElement("div", {style: styles}, React.createElement(Table_1.Table, null, React.createElement(Table_1.TableHeader, {displaySelectAll: false, adjustForCheckbox: false}, React.createElement(Table_1.TableRow, null, React.createElement(Table_1.TableHeaderColumn, null, "Tutorial"), React.createElement(Table_1.TableHeaderColumn, null, "Version"))), React.createElement(Table_1.TableBody, {displayRowCheckbox: false}, tutorials.map(function tutorialRow(tutorial, index) {
3838
return (React.createElement(Table_1.TableRow, {key: index}, React.createElement(Table_1.TableRowColumn, null, React.createElement(SelectTutorial_1.default, {tutorial: tutorial})), React.createElement(Table_1.TableRowColumn, null, tutorial.version, !!tutorial.latest
3939
? React.createElement(UpdateTutorial_1.default, {tutorial: tutorial})
4040
: null)));

lib/modules/tutorials/actions.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"use strict";
2+
var types_1 = require('./types');
3+
var actions_1 = require('../../actions');
4+
function tutorialUpdate(name) {
5+
return function (dispatch, getState) {
6+
var alert = {
7+
message: "run `npm install --save-dev " + name + "`",
8+
action: 'note',
9+
duration: 3000,
10+
};
11+
dispatch({ type: types_1.TUTORIAL_UPDATE, payload: { name: name } });
12+
dispatch(actions_1.alertOpen(alert));
13+
};
14+
}
15+
exports.tutorialUpdate = tutorialUpdate;
16+
function tutorialsFind() {
17+
return function (dispatch, getState) {
18+
var _a = getState(), packageJson = _a.packageJson, dir = _a.dir;
19+
dispatch({ type: types_1.TUTORIALS_FIND, payload: { packageJson: packageJson, dir: dir } });
20+
};
21+
}
22+
exports.tutorialsFind = tutorialsFind;

lib/modules/tutorials/index.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"use strict";
2+
var reducer_1 = require('./reducer');
3+
exports.reducer = reducer_1.default;
4+
var Tutorials_1 = require('./Tutorials');
5+
exports.Tutorials = Tutorials_1.default;
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
"use strict";
2-
var check_1 = require('./check');
3-
var _types_1 = require('../../actions/_types');
4-
function tutorialListReducer(tutorialList, action) {
5-
if (tutorialList === void 0) { tutorialList = []; }
2+
var check_1 = require('./utils/check');
3+
var types_1 = require('./types');
4+
function tutorials(tutorials, action) {
5+
if (tutorials === void 0) { tutorials = []; }
66
switch (action.type) {
7-
case _types_1.TUTORIALS_FIND:
7+
case types_1.TUTORIALS_FIND:
88
var _a = action.payload, packageJson = _a.packageJson, dir = _a.dir;
99
return ([]
1010
.concat(check_1.searchForTutorials(dir, packageJson.dependencies))
1111
.concat(check_1.searchForTutorials(dir, packageJson.devDependencies)));
1212
default:
13-
return tutorialList;
13+
return tutorials;
1414
}
1515
}
1616
Object.defineProperty(exports, "__esModule", { value: true });
17-
exports.default = tutorialListReducer;
17+
exports.default = tutorials;

lib/modules/tutorials/types.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
"use strict";
2+
exports.TUTORIAL_UPDATE = 'TUTORIAL_UPDATE';
3+
exports.TUTORIALS_FIND = 'TUTORIALS_FIND';

lib/reducers/tutorial-list/check.js renamed to lib/modules/tutorials/utils/check.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use strict";
22
var path_1 = require('path');
33
var fs_1 = require('fs');
4-
var exists_1 = require('../../services/exists');
4+
var exists_1 = require('../../../services/exists');
55
var is_tutorial_1 = require('./is-tutorial');
66
var update_1 = require('./update');
77
function searchForTutorials(dir, deps) {

lib/reducers/tutorial-list/is-tutorial.js renamed to lib/modules/tutorials/utils/is-tutorial.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use strict";
22
var path_1 = require('path');
33
var fs_1 = require('fs');
4-
var exists_1 = require('../../services/exists');
4+
var exists_1 = require('../../../services/exists');
55
exports.tutorialError = 'This is an error with the tutorial itself';
66
function isTutorial(dir, name) {
77
var pathToTutorialPackageJson = path_1.join(dir, 'node_modules', name, 'package.json');

lib/reducers/tutorial-list/update.js renamed to lib/modules/tutorials/utils/update.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"use strict";
2-
var command_line_1 = require('../../services/command-line');
2+
var command_line_1 = require('../../../services/command-line');
33
function tutorialUpdate(name) {
44
console.log("run \"npm install --save-dev " + name + "\"");
55
}

lib/reducers/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ var progress_1 = require('./progress');
99
var tasks_1 = require('./tasks');
1010
var task_actions_1 = require('./task-actions');
1111
var task_tests_1 = require('./task-tests');
12-
var tutorial_1 = require('./tutorial');
13-
var tutorial_list_1 = require('./tutorial-list');
1412
var alert_1 = require('../modules/alert');
1513
var setup_1 = require('../modules/setup');
1614
var hints_1 = require('../modules/hints');
1715
var route_1 = require('../modules/route');
1816
var tests_1 = require('../modules/tests');
17+
var tutorial_1 = require('../modules/tutorial');
18+
var tutorials_1 = require('../modules/tutorials');
1919
var window_1 = require('../modules/window');
2020
Object.defineProperty(exports, "__esModule", { value: true });
2121
exports.default = redux_1.combineReducers({
2222
alert: alert_1.reducer, checks: setup_1.reducer, devToolsToggle: devTools_toggle_1.default, dir: dir_1.default, hintPosition: hints_1.reducer,
2323
packageJson: package_json_1.default, page: page_1.default, pagePosition: page_position_1.default, progress: progress_1.default, route: route_1.reducer, tasks: tasks_1.default,
24-
tutorial: tutorial_1.default, tutorialList: tutorial_list_1.default,
24+
tutorial: tutorial_1.reducer, tutorials: tutorials_1.reducer,
2525
taskActions: task_actions_1.default, taskPosition: tests_1.taskPosition, taskTests: task_tests_1.default, testRun: tests_1.testRun, windowToggle: window_1.reducer
2626
});

src/actions/_types.ts

-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,3 @@ export const PROGRESS_LOAD = 'PROGRESS_LOAD';
66
export const PROGRESS_PAGE_POSITION_LOAD = 'PROGRESS_PAGE_POSITION_LOAD';
77
export const SETUP_PACKAGE = 'SETUP_PACKAGE';
88
export const SETUP_VERIFY = 'SETUP_VERIFY';
9-
export const TUTORIAL_SET = 'TUTORIAL_SET';
10-
export const TUTORIAL_UPDATE = 'TUTORIAL_UPDATE';
11-
export const TUTORIALS_FIND = 'TUTORIALS_FIND';

src/actions/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ export {
44
progressPagePositionLoad
55
} from './progress';
66
export {pageSet, pageNext} from './page';
7-
export {
8-
tutorialsFind, tutorialSet, tutorialUpdate
9-
} from './tutorial';
7+
108
export {devToolsToggle} from './toggle';
119

1210
// Modules
@@ -15,3 +13,5 @@ export {routeSet} from '../modules/route/actions';
1513
export {setupVerify, setupPackage} from '../modules/setup/actions';
1614
export {hintPositionSet} from '../modules/hints/actions';
1715
export {testRun, testResult, testSave, testComplete} from '../modules/tests/actions';
16+
export {tutorialSet} from '../modules/tutorial/actions';
17+
export {tutorialsFind, tutorialUpdate} from '../modules/tutorials/actions';

src/components/Routes/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react';
22
import {Page, Progress, Tutorials, Start, FinalPage} from '../index';
33

44
export default class Routes extends React.Component<{
5-
route: string, progress: CR.Progress, page: CR.Page, tutorialList: Tutorial.Info[],
5+
route: string, progress: CR.Progress, page: CR.Page, tutorials: Tutorial.Info[],
66
testRun: boolean, checks: CR.Checks, pagePosition: CR.PagePosition, tasks: CR.Task[],
77
taskPosition: number, hintPosition: number, tutorial: CR.Tutorial
88
}, {}> {

src/components/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ export {default as Page} from './Page';
44
export {default as Progress} from './Progress';
55
export {default as Routes} from './Routes';
66
export {default as Start} from './Start';
7-
export {default as Tutorials} from './Tutorials';
87
export {default as Markdown} from './common/Markdown';
98
export {default as ContentCard} from './common/ContentCard';
109

1110
export {Alert} from '../modules/alert';
1211
export {RouteButton} from '../modules/route';
1312
export {Checks} from '../modules/setup';
13+
export {Tutorials} from '../modules/tutorials';

src/modules/setup/deps.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
ContentCard
1+
components: ContentCard
2+
23
atom
3-
commandLine
4-
searchForTutorials
54

6-
Todo: refactor out deps
5+
services: commandLine
6+
7+
tutorials/searchForTutorials

src/modules/setup/utils/verify.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {npmMinVersion, nodeMinVersion, requiresXCode} from './check-system';
2-
import {searchForTutorials} from '../../../reducers/tutorial-list/check';
2+
import {searchForTutorials} from '../../tutorials/utils/check';
33

44
function allTrue(obj: Object): boolean {
55
return Object.values(obj).every(x => x === true);

src/modules/tests/deps.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
store
2+
3+
atom: save
4+
5+
actions: hintPositionSet, alertOpen, completePage, testComplete

src/modules/tests/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
// reducers
12
export {default as testRun} from './test-run';
23
export {default as taskPosition} from './task-position'

src/modules/tests/task-position/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {TEST_RESULT} from '../types';
22

3-
export default function taskPositionReducer(
3+
export default function taskPosition(
44
taskPosition = 0, action: Action
55
): number {
66
switch (action.type) {

src/modules/tests/test-run/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const pageTimeout = 800;
66

77
let previous: number = new Date().getTime();
88

9-
export default function runTestReducer(
9+
export default function runTest(
1010
testRun = false, action: Action
1111
): boolean {
1212
switch (action.type) {

src/modules/tutorial/actions.ts

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import {TUTORIAL_SET} from './types';
2+
import {progressLoad, routeSet} from '../../actions';
3+
4+
export function tutorialSet(name: string): ReduxThunk.ThunkInterface {
5+
return (dispatch, getState) => {
6+
const {dir} = getState();
7+
dispatch({ type: TUTORIAL_SET, payload: {name, dir }});
8+
dispatch(progressLoad());
9+
dispatch(routeSet('progress'));
10+
};
11+
}

src/modules/tutorial/deps.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
services/system
2+
services/exists
3+
4+
actions: progressLoad, routeSet

0 commit comments

Comments
 (0)