Skip to content

Commit 34422a5

Browse files
committed
read/write tutorialConfig package.json
1 parent 6b6a98c commit 34422a5

File tree

15 files changed

+97
-11
lines changed

15 files changed

+97
-11
lines changed

lib/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
"use strict";
2-
var render_1 = require('./components/render');
3-
var render_2 = require('./components/top-panel/render');
42
var Root_1 = require('./components/Root');
3+
var render_1 = require('./components/render');
54
var Top_1 = require('./components/TopPanel/Top');
5+
var render_2 = require('./components/TopPanel/render');
66
var polyfills_1 = require('core-coderoad/lib/polyfills');
77
var subscriptions_1 = require('./subscriptions');
88
var store_1 = require('./store');

lib/modules/setup/package-json/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ function packageJson(pj, action) {
1010
var dir = action.payload.dir;
1111
var pathToPackageJson = path_1.join(dir, 'package.json');
1212
if (node_file_exists_1.default(pathToPackageJson)) {
13-
return JSON.parse(fs_1.readFileSync(pathToPackageJson, 'utf8'));
13+
try {
14+
return JSON.parse(fs_1.readFileSync(pathToPackageJson, 'utf8'));
15+
}
16+
catch (e) {
17+
return null;
18+
}
1419
}
1520
return null;
1621
default:
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
"use strict";
22
var types_1 = require('./types');
33
function tutorialConfigSave(config) {
4-
return { type: types_1.TUTORIAL_CONFIG_SAVE, payload: { config: config } };
4+
return function (dispatch, getState) {
5+
var dir = getState().dir;
6+
dispatch({ type: types_1.TUTORIAL_CONFIG_SAVE, payload: { config: config, dir: dir } });
7+
};
58
}
69
exports.tutorialConfigSave = tutorialConfigSave;

lib/modules/tutorial-config/reducer.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
11
"use strict";
22
var types_1 = require('./types');
3+
var packageJson_1 = require('./utils/packageJson');
34
var _config = {
45
name: 'coderoad-',
56
repo: '',
67
language: 'JS',
78
runner: 'mocha-coderoad',
89
runnerOptions: {}
910
};
11+
var defaultPJ = {};
1012
function tutorialConfig(c, action) {
1113
if (c === void 0) { c = _config; }
1214
switch (action.type) {
1315
case types_1.TUTORIAL_CONFIG_SAVE:
16+
var pj = packageJson_1.readPackageJson(action.payload.dir);
17+
var content = {};
18+
if (pj) {
19+
content = Object.assign({}, pj, action.payload.config);
20+
console.log(content);
21+
}
22+
else {
23+
content = action.payload.config;
24+
}
25+
packageJson_1.writePackageJson(action.payload.dir, content);
1426
return action.payload.config;
1527
default:
1628
return c;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"use strict";
2+
var path_1 = require('path');
3+
var node_file_exists_1 = require('node-file-exists');
4+
function hasPackageJson(dir) {
5+
return node_file_exists_1.default(path_1.join(dir, './package.json'));
6+
}
7+
Object.defineProperty(exports, "__esModule", { value: true });
8+
exports.default = hasPackageJson;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"use strict";
2+
var path_1 = require('path');
3+
var fs_1 = require('fs');
4+
var node_file_exists_1 = require('node-file-exists');
5+
function readPackageJson(dir) {
6+
var pathToPJ = path_1.join(dir, './package.json');
7+
if (!node_file_exists_1.default(pathToPJ)) {
8+
return false;
9+
}
10+
try {
11+
return JSON.parse(fs_1.readFileSync(pathToPJ, 'utf8'));
12+
}
13+
catch (e) {
14+
return null;
15+
}
16+
}
17+
exports.readPackageJson = readPackageJson;
18+
function writePackageJson(dir, content) {
19+
fs_1.writeFileSync(path_1.join(dir, './package.json'), JSON.stringify(content, null, 2));
20+
}
21+
exports.writePackageJson = writePackageJson;

lib/subscriptions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
var CompositeDisposable = require('atom').CompositeDisposable;
33
var store_1 = require('./store');
44
var Root_1 = require('./components/Root');
5-
var Top_1 = require('./components/top-panel/Top');
5+
var Top_1 = require('./components/TopPanel/Top');
66
var subscriptions = null;
77
function onActivate() {
88
subscriptions = new CompositeDisposable;

src/components/TutorialConfig/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {connect} from 'react-redux';
33
import TextField from 'material-ui/TextField';
44
import SelectField from 'material-ui/SelectField';
55
import MenuItem from 'material-ui/MenuItem';
6-
import {Card, CardHeader} from 'material-ui/Card'
6+
import {Card, CardHeader} from 'material-ui/Card';
77
import RaisedButton from 'material-ui/RaisedButton';
88
import {tutorialConfigSave, routeSet} from '../../actions';
99
import languageItems from './languageItems';

src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as React from 'react';
2-
import render from './components/render';
3-
import renderTop from './components/top-panel/render';
42
import Root from './components/Root';
3+
import render from './components/render';
54
import Top from './components/TopPanel/Top';
5+
import renderTop from './components/TopPanel/render';
66
import loadPolyfills from 'core-coderoad/lib/polyfills';
77
import {onActivate, onDeactivate} from './subscriptions';
88
import store from './store';

src/modules/setup/package-json/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ export default function packageJson(
1212
const {dir} = action.payload;
1313
const pathToPackageJson = join(dir, 'package.json');
1414
if (fileExists(pathToPackageJson)) {
15-
return JSON.parse(readFileSync(pathToPackageJson, 'utf8'));
15+
try {
16+
return JSON.parse(readFileSync(pathToPackageJson, 'utf8'));
17+
} catch (e) {
18+
return null;
19+
}
1620
}
1721
return null;
1822

0 commit comments

Comments
 (0)