ionic
Version:
A tool for creating and developing Ionic Framework mobile apps.
94 lines (87 loc) • 2.85 kB
JavaScript
// Generated by CoffeeScript 1.9.2
(function() {
var JS_EXTENSIONS, endsWith, isArray, path;
path = require('path');
JS_EXTENSIONS = [".js", ".coffee", ".coffee.md", ".litcoffee", "._js", "._coffee", ".jsx", ".es", ".es6"];
isArray = function(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
};
endsWith = function(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
};
module.exports = function(file, configData, options) {
var appliesTo, extension, fileToTest, i, includeExtensions, includeThisFile, j, k, l, len, len1, len2, len3, ref, ref1, regex, regexes, skip;
if (configData == null) {
configData = {};
}
if (options == null) {
options = {};
}
file = path.resolve(file);
skip = false;
appliesTo = configData.appliesTo;
if ((appliesTo == null) || ((appliesTo.includeExtensions == null) && (appliesTo.excludeExtensions == null) && (appliesTo.regex == null) && (appliesTo.files == null))) {
appliesTo = options;
}
includeExtensions = appliesTo != null ? appliesTo.includeExtensions : void 0;
if ((appliesTo != null ? appliesTo.jsFilesOnly : void 0) && !includeExtensions) {
includeExtensions = JS_EXTENSIONS;
}
if (appliesTo.regex != null) {
regexes = appliesTo.regex;
includeThisFile = false;
if (!isArray(regexes)) {
regexes = [regexes];
}
for (i = 0, len = regexes.length; i < len; i++) {
regex = regexes[i];
if (!regex.test) {
regex = new RegExp(regex);
}
if (regex.test(file)) {
includeThisFile = true;
break;
}
}
if (!includeThisFile) {
skip = true;
}
} else if (appliesTo.files != null) {
includeThisFile = false;
ref = appliesTo.files;
for (j = 0, len1 = ref.length; j < len1; j++) {
fileToTest = ref[j];
fileToTest = path.resolve(configData.configDir, fileToTest);
if (fileToTest === file) {
includeThisFile = true;
break;
}
}
if (!includeThisFile) {
skip = true;
}
} else if (appliesTo.excludeExtensions != null) {
ref1 = appliesTo.excludeExtensions;
for (k = 0, len2 = ref1.length; k < len2; k++) {
extension = ref1[k];
if (endsWith(file, extension)) {
skip = true;
break;
}
}
} else if (includeExtensions != null) {
includeThisFile = false;
for (l = 0, len3 = includeExtensions.length; l < len3; l++) {
extension = includeExtensions[l];
if (endsWith(file, extension)) {
includeThisFile = true;
break;
}
}
if (!includeThisFile) {
skip = true;
}
}
return skip;
};
}).call(this);