mirror of
https://github.com/wahyd4/cdnjs.git
synced 2026-08-22 03:06:20 +10:00
69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
var con = console,
|
|
vm = require("vm"),
|
|
fs = require("fs"),
|
|
path = require('path'),
|
|
linter = require('./linter.js'),
|
|
LintStream = require('./lintstream.js');
|
|
|
|
exports.LintStream = LintStream;
|
|
|
|
exports.linter = linter;
|
|
|
|
exports.setConsole = function (c) {
|
|
'use strict';
|
|
con = c;
|
|
};
|
|
|
|
function looksLikeFileName(edition) {
|
|
'use strict';
|
|
|
|
// contains .js or a path separator character '/' or '\'
|
|
return (/\.js|\/|\\/).test(edition);
|
|
}
|
|
exports.looksLikeFileName = looksLikeFileName;
|
|
|
|
exports.load = function (edition) {
|
|
'use strict';
|
|
|
|
var ctx = vm.createContext(),
|
|
fileName,
|
|
jslintSource;
|
|
|
|
function makePathFromName(name) {
|
|
/*jslint nomen: true */
|
|
return path.join(__dirname, name) + ".js";
|
|
}
|
|
|
|
function makePathFromEdition(edition) {
|
|
return makePathFromName("jslint-" + edition);
|
|
}
|
|
|
|
function read(name) {
|
|
/*jslint stupid: true */
|
|
return fs.readFileSync(name);
|
|
}
|
|
|
|
|
|
if (edition) {
|
|
if (looksLikeFileName(edition)) {
|
|
fileName = edition;
|
|
} else {
|
|
fileName = makePathFromEdition(edition);
|
|
}
|
|
|
|
try {
|
|
jslintSource = read(fileName);
|
|
} catch (err) {
|
|
con.warn("Unable to load edition " + edition + ", reverting to default. " + err);
|
|
}
|
|
}
|
|
|
|
if (!jslintSource) {
|
|
jslintSource = read(makePathFromName("jslint"));
|
|
}
|
|
|
|
vm.runInContext(jslintSource, ctx);
|
|
|
|
return ctx.JSLINT;
|
|
};
|