From d1a00d1af90b5e4a3e7813bc1983a02fb5a60cd6 Mon Sep 17 00:00:00 2001 From: Oskar Karlsson Date: Fri, 30 Oct 2015 19:34:55 +0100 Subject: [PATCH 1/3] refactor(util): Moved util.js in to the src folder We want to precompile all js files with babel and for simplicity we should keep all source files in the same folder. The test are using `util` but I can't see any real problems with having the tests importing a file inside the src folder --- src/cli/parsers/commitizen.js | 2 +- src/cli/parsers/git-cz.js | 2 +- src/cli/strategies/git-cz.js | 2 +- src/commitizen/adapter.js | 2 +- src/commitizen/init.js | 2 +- src/commitizen/staging.js | 2 +- {common => src/common}/util.js | 7 +++---- src/git/commit.js | 2 +- test/tester.js | 2 +- test/tests/adapter.js | 2 +- test/tests/util.js | 2 +- 11 files changed, 13 insertions(+), 14 deletions(-) rename {common => src/common}/util.js (93%) diff --git a/src/cli/parsers/commitizen.js b/src/cli/parsers/commitizen.js index 0e61fc46..4befbe75 100644 --- a/src/cli/parsers/commitizen.js +++ b/src/cli/parsers/commitizen.js @@ -1,6 +1,6 @@ import minimist from 'minimist'; -import { isString, isArray } from '../../../common/util'; +import { isString, isArray } from '../../common/util'; export { parse diff --git a/src/cli/parsers/git-cz.js b/src/cli/parsers/git-cz.js index 9b5e0fb8..f6fad8c3 100644 --- a/src/cli/parsers/git-cz.js +++ b/src/cli/parsers/git-cz.js @@ -1,6 +1,6 @@ import minimist from 'minimist'; -import { isString, isArray } from '../../../common/util'; +import { isString, isArray } from '../../common/util'; export { parse diff --git a/src/cli/strategies/git-cz.js b/src/cli/strategies/git-cz.js index 0e743a9b..3b78b4ed 100644 --- a/src/cli/strategies/git-cz.js +++ b/src/cli/strategies/git-cz.js @@ -2,7 +2,7 @@ import fs from 'fs'; import path from 'path'; import sh from 'shelljs'; import inquirer from 'inquirer'; -import {getParsedPackageJsonFromPath} from '../../../common/util'; +import {getParsedPackageJsonFromPath} from '../../common/util'; import {gitCz as gitCzParser, commitizen as commitizenParser} from '../parsers'; import {commit, staging, adapter} from '../../commitizen'; import {addPath} from '../../git'; diff --git a/src/commitizen/adapter.js b/src/commitizen/adapter.js index 569a74cb..7853c40e 100644 --- a/src/commitizen/adapter.js +++ b/src/commitizen/adapter.js @@ -2,7 +2,7 @@ import path from 'path'; import fs from 'fs'; import findNodeModules from 'find-node-modules'; -import {isFunction} from '../../common/util'; +import {isFunction} from '../common/util'; export { addPathToAdapterConfig, diff --git a/src/commitizen/init.js b/src/commitizen/init.js index a7812c83..4d8e4d82 100644 --- a/src/commitizen/init.js +++ b/src/commitizen/init.js @@ -1,6 +1,6 @@ import path from 'path'; import * as configLoader from './configLoader'; -import {executeShellCommand} from '../../common/util'; +import {executeShellCommand} from '../common/util'; import * as adapter from './adapter'; let { diff --git a/src/commitizen/staging.js b/src/commitizen/staging.js index 58895089..cdfa6e2b 100644 --- a/src/commitizen/staging.js +++ b/src/commitizen/staging.js @@ -1,5 +1,5 @@ import git from 'gulp-git'; -import {isString} from '../../common/util'; +import {isString} from '../common/util'; export {isClean}; diff --git a/common/util.js b/src/common/util.js similarity index 93% rename from common/util.js rename to src/common/util.js index 227bcc99..229c8328 100644 --- a/common/util.js +++ b/src/common/util.js @@ -16,7 +16,7 @@ export { */ function executeShellCommand(sh, path, installCommand) { sh.cd(path); - sh.exec(installCommand); + sh.exec(installCommand); } /** @@ -53,7 +53,7 @@ function isArray(arr) { } /** - * Test if the passed argument is a function + * Test if the passed argument is a function */ function isFunction(functionToCheck) { if(typeof functionToCheck === "undefined") @@ -63,7 +63,7 @@ function isFunction(functionToCheck) { return false; } else { var getType = {}; - return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; } } @@ -80,4 +80,3 @@ function isString(str) { return Object.prototype.toString.call(str) == '[object String]'; } } - diff --git a/src/git/commit.js b/src/git/commit.js index 80d4fb71..d1516266 100644 --- a/src/git/commit.js +++ b/src/git/commit.js @@ -1,7 +1,7 @@ import git from 'gulp-git'; import gulp from 'gulp'; import dedent from 'dedent'; -import {isString} from '../../common/util'; +import {isString} from '../common/util'; export { commit }; diff --git a/test/tester.js b/test/tester.js index a8f45331..363c8521 100644 --- a/test/tester.js +++ b/test/tester.js @@ -1,7 +1,7 @@ import * as repo from './tools/repo'; import * as clean from './tools/clean'; import * as files from './tools/files'; -import * as util from '../common/util'; +import * as util from '../src/common/util'; import {config as userConfig} from './config'; import * as sh from 'shelljs'; // local instance import _ from 'lodash'; diff --git a/test/tests/adapter.js b/test/tests/adapter.js index 113f164a..83f8145c 100644 --- a/test/tests/adapter.js +++ b/test/tests/adapter.js @@ -7,7 +7,7 @@ import fs from 'fs'; // in the short term import {adapter, init as commitizenInit} from '../../src/commitizen'; -import {isFunction} from '../../common/util'; +import {isFunction} from '../../src/common/util'; // Bootstrap our tester import {bootstrap} from '../tester'; diff --git a/test/tests/util.js b/test/tests/util.js index fe303420..2d6e9ee8 100644 --- a/test/tests/util.js +++ b/test/tests/util.js @@ -1,5 +1,5 @@ import {expect} from 'chai'; -import {isArray, isFunction, isString} from '../../common/util'; +import {isArray, isFunction, isString} from '../../src/common/util'; describe('common util', function() { From bb51990ec73b49a4e4e669e87452eb004552b087 Mon Sep 17 00:00:00 2001 From: Oskar Karlsson Date: Fri, 30 Oct 2015 19:56:55 +0100 Subject: [PATCH 2/3] perf(compile): Precompile ES6 code Precompiling all ES6 code to ES5 with babel to gain performance Adding a .nodeignore file as well to ignore the source code and tests files when publishing to npm See #39 --- .gitignore | 3 ++- .npmignore | 3 +++ bin/commitizen | 5 +---- bin/commitizen.js | 2 +- bin/git-cz | 5 +---- bin/git-cz.js | 5 ++--- package.json | 2 ++ 7 files changed, 12 insertions(+), 13 deletions(-) create mode 100644 .npmignore diff --git a/.gitignore b/.gitignore index f55f2af8..e0f8a208 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules/ .tmp/ coverage/ artifacts/ -npm-debug.log \ No newline at end of file +/dist +npm-debug.log diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..c8252cc6 --- /dev/null +++ b/.npmignore @@ -0,0 +1,3 @@ +/meta +/src +/test diff --git a/bin/commitizen b/bin/commitizen index 35c6def4..7b560771 100755 --- a/bin/commitizen +++ b/bin/commitizen @@ -1,6 +1,3 @@ #!/usr/bin/env node -require("babel/register")({ - ignore: /node_modules\/(?!commitizen)/ -}); -require('./commitizen.js'); \ No newline at end of file +require('./commitizen.js'); diff --git a/bin/commitizen.js b/bin/commitizen.js index 6c6627ec..b36087ab 100644 --- a/bin/commitizen.js +++ b/bin/commitizen.js @@ -1,2 +1,2 @@ -require('../src/cli/commitizen.js').bootstrap(); \ No newline at end of file +require('../dist/cli/commitizen.js').bootstrap(); diff --git a/bin/git-cz b/bin/git-cz index 96be5473..3b06e0f1 100755 --- a/bin/git-cz +++ b/bin/git-cz @@ -1,6 +1,3 @@ #!/usr/bin/env node -require("babel/register")({ - ignore: /node_modules\/(?!commitizen)/ -}); -require('./git-cz.js'); \ No newline at end of file +require('./git-cz.js'); diff --git a/bin/git-cz.js b/bin/git-cz.js index 0112d8c8..faf2ad42 100644 --- a/bin/git-cz.js +++ b/bin/git-cz.js @@ -1,5 +1,4 @@ -require("babel/register"); var path = require('path'); -require('../src/cli/git-cz.js').bootstrap({ +require('../dist/cli/git-cz.js').bootstrap({ cliPath: path.join(__dirname, '../') -}); \ No newline at end of file +}); diff --git a/package.json b/package.json index 66431d2f..b1624438 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "scripts": { "check-coverage": "istanbul check-coverage --statements 80 --branches 80 --functions 80 --lines 80 ", "commit": "git-cz", + "build": "babel src --out-dir dist", + "prepublish": "npm run build", "report-coverage": "cat ./coverage/lcov.info | codecov", "semantic-release": "semantic-release pre && npm publish && semantic-release post", "start": "npm run test:watch", From 7912c7c79cbd6b09c81096b221286edd7ba82e29 Mon Sep 17 00:00:00 2001 From: Oskar Karlsson Date: Sat, 31 Oct 2015 08:51:57 +0100 Subject: [PATCH 3/3] feat(compile): Rebuild package on file change in dev-mode Added a npm-script for watching changes and re-compile the source file --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index b1624438..dd5187c2 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "check-coverage": "istanbul check-coverage --statements 80 --branches 80 --functions 80 --lines 80 ", "commit": "git-cz", "build": "babel src --out-dir dist", + "build:watch": "babel --watch src --out-dir dist", "prepublish": "npm run build", "report-coverage": "cat ./coverage/lcov.info | codecov", "semantic-release": "semantic-release pre && npm publish && semantic-release post",