Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split index into smaller files #66

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Prev Previous commit
Next Next commit
fix tests after merge
  • Loading branch information
calebmchenry committed Oct 31, 2019
commit bf9a332221944d8694c71b9b0a3ce2c045a74196
3 changes: 1 addition & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "nabs",
"version": "0.4.0",
"description": "Not Another Build System - compiles YAML to scripts in package.json",
"main": "src/index.js",
"main": "dist/index.js",
"scripts": {
"build": "cross-env NODE_ENV=production webpack --config webpack/webpack.production.js --production",
"prepare": "npm run build",
Expand Down Expand Up @@ -57,7 +57,7 @@
"node": ">=10"
},
"bin": {
"nabs": "./src/index.js"
"nabs": "./dist/index.js"
},
"preferGlobal": true
}
4 changes: 2 additions & 2 deletions src/Task.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

const makeArray = require('./utils/makeArray').default;
const makeArray = require('./utils/makeArray');

class Task {
constructor(name) {
Expand Down Expand Up @@ -81,4 +81,4 @@ class Task {
}
}

export default Task;
module.exports = Task;
18 changes: 8 additions & 10 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#!/usr/bin/env node

// nabs - Not another build system. Easy management of package.json scripts.
//
// Copyright (C) 2019 James Kruth
Expand All @@ -23,13 +21,13 @@
const fs = require('fs');
const { resolve } = require('path');
const program = require('commander');
const log = require('./logger').default;
const Task = require('./Task').default;
const buildTasks = require('./utils/buildTasks').default;
const checkDependencies = require('./utils/checkDependencies').default;
const makeArray = require('./utils/makeArray').default;
const processTasks = require('./utils/process').default;
const main = require('./main').default;
const log = require('./logger');
const Task = require('./Task');
const buildTasks = require('./utils/buildTasks');
const checkDependencies = require('./utils/checkDependencies');
const makeArray = require('./utils/makeArray');
const processTasks = require('./utils/process');
const main = require('./main');

const { version } = JSON.parse(fs.readFileSync(resolve('package.json'), 'utf8'));

Expand Down Expand Up @@ -68,4 +66,4 @@ try {
process.exit(1);
}

export default nabs;
module.exports = nabs;
2 changes: 1 addition & 1 deletion src/logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ const log = winston.createLogger({
});


export default log;
module.exports = log;
7 changes: 4 additions & 3 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ const fs = require('fs');
const { resolve } = require('path');
const jsonfile = require('jsonfile');
const yaml = require('js-yaml');
const log = require('./logger').default;
const log = require('./logger');
const processTasks = require('./utils/process');

function main(options) {
const nabsFile = options.nabs || resolve('nabs.yml');
Expand All @@ -14,7 +15,7 @@ function main(options) {
log.info('Opening %s...', pkgFile);
const pkg = jsonfile.readFileSync(pkgFile, 'utf8');

pkg.scripts = process(tasks);
pkg.scripts = processTasks(tasks);

if (!options.disable && !pkg.scripts.nabs) {
pkg.scripts.nabs = 'nabs';
Expand All @@ -27,4 +28,4 @@ function main(options) {
});
}

export default main;
module.exports = main;
2 changes: 1 addition & 1 deletion src/utils/buildTasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ function buildTasks(tasks, name) {
return scripts;
}

export default buildTasks;
module.exports = buildTasks;
2 changes: 1 addition & 1 deletion src/utils/checkDependencies.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ function checkDependencies(tasks, names) {
});
}

export default checkDependencies;
module.exports = checkDependencies;
2 changes: 1 addition & 1 deletion src/utils/makeArray.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ function makeArray(item) {
throw new Error(`Item must be string, array or null: ${item}`);
}

export default makeArray;
module.exports = makeArray;
10 changes: 5 additions & 5 deletions src/utils/process.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

const buildTasks = require('./buildTasks').default;
const checkDependencies = require('./checkDependencies').default;
const log = require('../logger').default;
const buildTasks = require('./buildTasks');
const checkDependencies = require('./checkDependencies');
const log = require('../logger');

// processes tasks, returns scripts
function process(tasks) {
function processTasks(tasks) {
const scripts = {};
let taskList = [];

Expand All @@ -24,4 +24,4 @@ function process(tasks) {
return scripts;
}

export default process;
module.exports = processTasks;
2 changes: 1 addition & 1 deletion test/Task.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

const chai = require('chai');
const td = require('testdouble');
const nabs = require('../dist').default;
const nabs = require('../src');

chai.should();

Expand Down
4 changes: 2 additions & 2 deletions test/buildTasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
// along with this If not, see <http://www.gnu.org/licenses/>.

const chai = require('chai');
const nabs = require('../dist').default;
const nabs = require('../src');

chai.should();

Expand Down Expand Up @@ -111,5 +111,5 @@ describe('nabs.buildTasks', () => {
scripts[0].children[1].should.equal('test:sub2');
});

it('should call itself recursively for each key');
it('should call itself recursively for each key', () => {});
});
2 changes: 1 addition & 1 deletion test/checkDependencies.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
// along with this nabs. If not, see <http://www.gnu.org/licenses/>.

const chai = require('chai');
const nabs = require('../dist').default;
const nabs = require('../src');

const should = chai.should();

Expand Down
2 changes: 1 addition & 1 deletion test/makeArray.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
// along with this nabs. If not, see <http://www.gnu.org/licenses/>.

const chai = require('chai');
const nabs = require('../dist').default;
const nabs = require('../src');

chai.should();

Expand Down
19 changes: 12 additions & 7 deletions test/process.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,19 @@
const chai = require('chai');
const td = require('testdouble');

const nabs = require('../dist').default;
const Task = require('../src/Task');

chai.should();

let checkDependencies;
let buildTasks;
let process;
describe('process', () => {
beforeEach(() => {
nabs.buildTasks = td.function('buildTasks');
nabs.checkDependencies = td.function('checkDependdencies');
buildTasks = td.replace('../src/utils/buildTasks');
checkDependencies = td.replace('../src/utils/checkDependencies');
// eslint-disable-next-line global-require
process = require('../src/utils/process');
});

afterEach(() => {
Expand All @@ -37,17 +42,17 @@ describe('process', () => {
it('should process the tasks properly', () => {
const name = 'test';
const action = 'my action';
const task = new nabs.Task([name]);
const task = new Task([name]);

task.addAction(action);

td.when(nabs.buildTasks(td.matchers.anything(), td.matchers.isA(Array)))
td.when(buildTasks(td.matchers.anything(), td.matchers.isA(Array)))
.thenReturn([task]);

const scripts = nabs.process({ [name]: action });
const scripts = process({ [name]: action });
scripts.should.have.property(name);
scripts[name].should.equal(action);

td.verify(nabs.checkDependencies([task], ['test']));
td.verify(checkDependencies([task], ['test']));
});
});
2 changes: 1 addition & 1 deletion webpack/webpack.common.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const banner = readFileSync(resolve('webpack/file-header.txt')).toString().conca
module.exports = {
target: 'node',
entry: {
index: resolve('index.js'),
index: resolve('src/index.js'),
},
output: {
filename: '[name].js',
Expand Down