Skip to content

Commit

Permalink
chore(lint): lint using standard
Browse files Browse the repository at this point in the history
  • Loading branch information
bahmutov committed May 4, 2017
1 parent 8a39c47 commit 7ca6029
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 52 deletions.
102 changes: 52 additions & 50 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,96 +1,98 @@
'use strict'

// based on https://github.com/gotwarlost/istanbul/blob/master/lib/hook.js
'use strict'; //catch errors more easily

/*
Copyright (c) 2012, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
*/
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

var fs = require('fs'),
Module = require('module');
const fs = require('fs')
let Module = require('module')

//dummy definition in case module is not available:
if (!Module) Module = {};
if (!Module._extensions) { console.log("dummy module def"); Module._extensions = []; }
// dummy definition in case module is not available:
if (!Module) Module = {}
if (!Module._extensions) { console.log('dummy module def'); Module._extensions = [] }

var originalLoaders = {};
var nestedTransforms = {}; //allow nested transforms
var originalLoaders = {}
var nestedTransforms = {} // allow nested transforms

var verify = {
extension: function (str) {
if (typeof str !== 'string') {
throw new Error('expected string extension, have ' + str);
throw new Error('expected string extension, have ' + str)
}
if (str[0] !== '.') {
throw new Error('Extension should start with dot, for example .js, have ' + str);
throw new Error('Extension should start with dot, for example .js, have ' + str)
}
},
transform: function (fn) {
if (typeof fn !== 'function') {
throw new Error('Transform should be a function, have ' + fn);
throw new Error('Transform should be a function, have ' + fn)
}
}
};
}

function hook(extension, transform, options) {
options = options || {};
function hook (extension, transform, options) {
options = options || {}
if (typeof extension === 'function' &&
typeof transform === 'undefined') {
transform = extension;
extension = '.js';
transform = extension
extension = '.js'
}
if (options.verbose) {
console.log('hooking transform', transform.name, 'for', extension);
console.log('hooking transform', transform.name, 'for', extension)
}

verify.extension(extension);
verify.transform(transform);

if (!nestedTransforms[extension]) nestedTransforms[extension] = [];
if (!nestedTransforms[extension].length) //only store the first one -DJ
originalLoaders[extension] = Module._extensions[extension];
nestedTransforms[extension].push(transform); //allow nested transforms -DJ
verify.extension(extension)
verify.transform(transform)

if (!nestedTransforms[extension]) {
nestedTransforms[extension] = []
}
if (!nestedTransforms[extension].length) {
// only store the first one -DJ
originalLoaders[extension] = Module._extensions[extension]
}
nestedTransforms[extension].push(transform) // allow nested transforms -DJ

Module._extensions[extension] = function (module, filename) {
if (options.verbose) {
console.log('transforming', filename);
console.log('transforming', filename)
}
var source = fs.readFileSync(filename, 'utf8');
var ret = null; //transform(source, filename);
nestedTransforms[extension].every(function(nested) //nesting order performs earlier first, later last
{
// console.log("IN: " + source);
ret = nested(source, filename);
// console.log("OUT: " + ret);
// if (typeof ret !== 'string') return false; //break
// if (!options.toString) return false; //stop here
source = ret + ""; //convert to string and keep going
return true; //continue
});
var source = fs.readFileSync(filename, 'utf8')
var ret = null // transform(source, filename);
nestedTransforms[extension].every(function (nested) {
// nesting order performs earlier first, later last
ret = nested(source, filename)
source = ret + '' // convert to string and keep going
return true // continue
})
if (typeof ret === 'string') {
module._compile(ret, filename);
module._compile(ret, filename)
} else if (options.verbose) {
console.error('transforming source from', filename, 'has not returned a string');
console.error('transforming source from', filename, 'has not returned a string')
}
};
}
if (options.verbose) {
console.log('hooked function');
console.log('hooked function')
}
}

function unhook(extension) {
function unhook (extension) {
if (typeof extension === 'undefined') {
extension = '.js';
extension = '.js'
}
verify.extension(extension)
nestedTransforms[extension].pop() // assumes no stack underflow
if (!nestedTransforms[extension].length) {
// restore original only once
Module._extensions[extension] = originalLoaders[extension]
}
verify.extension(extension);
nestedTransforms[extension].pop(); //assumes no stack underflow
if (!nestedTransforms[extension].length) //restore original only once
Module._extensions[extension] = originalLoaders[extension];
}

module.exports = {
hook: hook,
unhook: unhook
};
}
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"check": "autochecker 0.12.9 4.0 5.0 6",
"check-0.12": "autochecker 0.12.6",
"commit": "commit-wizard",
"size": "t=\"$(npm pack .)\"; wc -c \"${t}\"; tar tvf \"${t}\"; rm \"${t}\";"
"size": "t=\"$(npm pack .)\"; wc -c \"${t}\"; tar tvf \"${t}\"; rm \"${t}\";",
"lint": "standard --verbose --fix index.js",
"pretest": "npm run lint"
},
"repository": {
"type": "git",
Expand All @@ -32,7 +34,8 @@
"git-issues": "1.3.1",
"gt": "0.10.0",
"pre-git": "3.14.0",
"semantic-release": "6.3.6"
"semantic-release": "6.3.6",
"standard": "10.0.2"
},
"files": [
"index.js",
Expand Down

0 comments on commit 7ca6029

Please sign in to comment.