Skip to content

Commit

Permalink
Update to use only babel 7 and babel eslint config and prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
danez committed Mar 19, 2018
1 parent e524ed8 commit 005be65
Show file tree
Hide file tree
Showing 10 changed files with 913 additions and 1,337 deletions.
10 changes: 6 additions & 4 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
root = true

[*]
indent_style = tab
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf

[{package.json,*.yml}]
[*.{js,json}]
indent_style = space
indent_size = 2

[*.{md,markdown}]
trim_trailing_whitespace = false
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
/test/tmp
/test/fixtures
13 changes: 13 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"root": true,
"extends": "babel",
"plugins": ["prettier"],
"rules": {
"curly": ["error", "multi-line"],
"prettier/prettier": "error",
"no-case-declarations": "error"
},
"env": {
"node": true
}
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules
/test/tmp
yarn-error.log
12 changes: 12 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"arrowParens": "avoid",
"trailingComma": "es5",
"useTabs": false,
"semi": true,
"singleQuote": false,
"bracketSpacing": true,
"jsxBracketSameLine": false,
"tabWidth": 2,
"parser": "babylon",
"printWidth": 80
}
50 changes: 25 additions & 25 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
'use strict';
module.exports = function (grunt) {
grunt.initConfig({
babel: {
compile: {
options: {
sourceMap: true,
presets: ['env']
},
files: {
'test/tmp/fixture-compiled.js': 'test/fixtures/fixture.js'
}
}
},
nodeunit: {
tasks: ['test/test.js']
},
clean: {
test: ['test/tmp/**']
}
});
"use strict";
module.exports = function(grunt) {
grunt.initConfig({
babel: {
compile: {
options: {
sourceMap: true,
presets: ["@babel/preset-env"],
},
files: {
"test/tmp/fixture-compiled.js": "test/fixtures/fixture.js",
},
},
},
nodeunit: {
tasks: ["test/test.js"],
},
clean: {
test: ["test/tmp/**"],
},
});

grunt.loadTasks('tasks');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-nodeunit');
grunt.loadTasks("tasks");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-nodeunit");

grunt.registerTask('default', ['clean', 'babel', 'nodeunit', 'clean']);
grunt.registerTask("default", ["clean", "babel", "nodeunit", "clean"]);
};
17 changes: 12 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
"node": ">=4"
},
"scripts": {
"test": "xo && grunt"
"lint": "eslint .",
"format": "eslint . --fix",
"test": "yarn lint && grunt"
},
"files": [
"tasks"
Expand All @@ -32,16 +34,21 @@
"compiler"
],
"peerDependencies": {
"babel-core": "^6.0.0 || ^7.0.0-alpha",
"@babel/core": "^7.0.0-0",
"grunt": ">=0.4.0"
},
"devDependencies": {
"babel-core": "7.0.0-alpha.19",
"babel-preset-env": "2.0.0-alpha.19",
"@babel/core": "^7.0.0-beta.42",
"@babel/preset-env": "^7.0.0-beta.42",
"babel-eslint": "^8.0.0",
"eslint": "^4.19.0",
"eslint-config-babel": "^7.0.2",
"eslint-plugin-flowtype": "^2.46.1",
"eslint-plugin-prettier": "^2.6.0",
"grunt": "^1.0.1",
"grunt-cli": "^1.2.0",
"grunt-contrib-clean": "^1.0.0",
"grunt-contrib-nodeunit": "^1.0.0",
"xo": "^0.16.0"
"prettier": "^1.11.1"
}
}
85 changes: 41 additions & 44 deletions tasks/babel.js
Original file line number Diff line number Diff line change
@@ -1,45 +1,42 @@
'use strict';
var path = require('path');
var babel;
try {
babel = require('@babel/core');
} catch (error) {
try{
babel = require('babel-core');
} catch (errorSub) {
console.error('Please install @babel/core or babel-core');
throw error;
}
}

module.exports = function (grunt) {
grunt.registerMultiTask('babel', 'Use next generation JavaScript, today', function () {
var options = this.options();

this.files.forEach(function (el) {
delete options.filename;
delete options.filenameRelative;

options.sourceFileName = path.relative(path.dirname(el.dest), el.src[0]);

if (process.platform === 'win32') {
options.sourceFileName = options.sourceFileName.replace(/\\/g, '/');
}

options.sourceMapTarget = path.basename(el.dest);

var res = babel.transformFileSync(el.src[0], options);
var sourceMappingURL = '';

if (res.map) {
sourceMappingURL = '\n//# sourceMappingURL=' + path.basename(el.dest) + '.map';
}

grunt.file.write(el.dest, res.code + sourceMappingURL + '\n');

if (res.map) {
grunt.file.write(el.dest + '.map', JSON.stringify(res.map));
}
});
});
"use strict";
const path = require("path");
const babel = require("@babel/core");

module.exports = function(grunt) {
grunt.registerMultiTask(
"babel",
"Use next generation JavaScript, today",
function() {
const options = this.options();

this.files.forEach(function(el) {
delete options.filename;
delete options.filenameRelative;

options.sourceFileName = path.relative(
path.dirname(el.dest),
el.src[0]
);

if (process.platform === "win32") {
options.sourceFileName = options.sourceFileName.replace(/\\/g, "/");
}

const res = babel.transformFileSync(el.src[0], options);
let sourceMappingURL = "";

if (res.map) {
sourceMappingURL =
"\n//# sourceMappingURL=" + path.basename(el.dest) + ".map";
}

grunt.file.write(el.dest, res.code + sourceMappingURL + "\n");

if (res.map) {
res.map.file = path.basename(el.dest);
grunt.file.write(el.dest + ".map", JSON.stringify(res.map));
}
});
}
);
};
24 changes: 12 additions & 12 deletions test/test.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
'use strict';
var fs = require('fs');
"use strict";
const fs = require("fs");

exports.babel = {
compile: function (test) {
var code = fs.readFileSync('test/tmp/fixture-compiled.js', 'utf8');
test.ok(/function/.test(code));
compile: function(test) {
const code = fs.readFileSync("test/tmp/fixture-compiled.js", "utf8");
test.ok(/function/.test(code));

var map = fs.readFileSync('test/tmp/fixture-compiled.js.map', 'utf8');
var json = JSON.parse(map);
const map = fs.readFileSync("test/tmp/fixture-compiled.js.map", "utf8");
const json = JSON.parse(map);

test.deepEqual(json.sources, ['../fixtures/fixture.js']);
test.deepEqual(json.file, 'fixture-compiled.js');
test.ok(/\/\/# sourceMappingURL=fixture-compiled.js.map\n$/.test(code));
test.done();
}
test.deepEqual(json.sources, ["../fixtures/fixture.js"]);
test.deepEqual(json.file, "fixture-compiled.js");
test.ok(/\/\/# sourceMappingURL=fixture-compiled.js.map\n$/.test(code));
test.done();
},
};
Loading

0 comments on commit 005be65

Please sign in to comment.