@kpi4me/golden-layout
Version:
A multi-screen javascript Layout manager https://golden-layout.com
307 lines (306 loc) • 12.2 kB
JavaScript
// Generated by CoffeeScript 2.0.0-beta8
var $0, $0, additionalArgs, CoffeeScript, concat, cscodegen, escodegen, esmangle, foldl, fs, humanReadable, input, input, inputName, inputSource, inspect, knownOpts, nopt, numberLines, optAliases, Optimiser, option, options, output, parameter, path, pkg, positionalArgs, Preprocessor, processInput, Repl, runMain;
fs = require('fs');
path = require('path');
cache$ = require('./functional-helpers');
concat = cache$.concat;
foldl = cache$.foldl;
cache$1 = require('./helpers');
numberLines = cache$1.numberLines;
humanReadable = cache$1.humanReadable;
Preprocessor = require('./preprocessor').Preprocessor;
Optimiser = require('./optimiser').Optimiser;
runMain = require('./run').runMain;
CoffeeScript = require('./module');
Repl = require('./repl');
nopt = require('nopt');
cscodegen = function () {
try {
return require('cscodegen');
} catch (e$) {
return;
}
}.call(this);
escodegen = function () {
try {
return require('escodegen');
} catch (e$1) {
return;
}
}.call(this);
esmangle = function () {
try {
return require('esmangle');
} catch (e$2) {
return;
}
}.call(this);
inspect = function (o) {
return require('util').inspect(o, false, 9e9, true);
};
knownOpts = {};
option = function () {
var o;
for (var i$ = 0, length$ = arguments.length; i$ < length$; ++i$) {
o = arguments[i$];
knownOpts[o] = Boolean;
}
};
parameter = function () {
var p;
for (var i$ = 0, length$ = arguments.length; i$ < length$; ++i$) {
p = arguments[i$];
knownOpts[p] = String;
}
};
optAliases = {
b: '--bare',
c: '--compile',
e: '--eval',
f: '--cscodegen',
I: '--require',
i: '--input',
j: '--js',
l: '--literate',
m: '--minify',
o: '--output',
p: '--parse',
v: '--version',
w: '--watch'
};
option('parse', 'compile', 'optimise', 'debug', 'literate', 'raw', 'version', 'help');
parameter('cli', 'input', 'nodejs', 'output', 'watch');
if (null != escodegen) {
option('bare', 'js', 'source-map', 'eval', 'repl');
parameter('source-map-file', 'require');
if (null != esmangle)
option('minify');
}
if (null != cscodegen)
option('cscodegen');
options = nopt(knownOpts, optAliases, process.argv, 2);
positionalArgs = options.argv.remain;
delete options.argv;
if (null != options.optimise)
options.optimise;
else
options.optimise = true;
options.sourceMap = options['source-map'];
options.sourceMapFile = options['source-map-file'];
if (!(options.compile || options.js || options.sourceMap || options.parse || options['eval'] || options.cscodegen))
if (!(null != escodegen)) {
options.compile = true;
} else if (positionalArgs.length) {
options['eval'] = true;
options.input = positionalArgs.shift();
additionalArgs = positionalArgs;
} else {
options.repl = true;
}
if (1 !== (null != options.parse ? options.parse : 0) + (null != options.compile ? options.compile : 0) + (null != options.js ? options.js : 0) + (null != options.sourceMap ? options.sourceMap : 0) + (null != options['eval'] ? options['eval'] : 0) + (null != options.cscodegen ? options.cscodegen : 0) + (null != options.repl ? options.repl : 0)) {
console.error('Error: At most one of --parse (-p), --compile (-c), --js (-j), --source-map, --eval (-e), --cscodegen, or --repl may be used.');
process.exit(1);
}
if (1 < (null != options.input) + (null != options.watch) + (null != options.cli)) {
console.error('Error: At most one of --input (-i), --watch (-w), or --cli may be used.');
process.exit(1);
}
if (null != options.require && !options['eval']) {
console.error('Error: --require (-I) depends on --eval (-e)');
process.exit(1);
}
if (options.minify && !(options.js || options['eval'])) {
console.error('Error: --minify does not make sense without --js or --eval');
process.exit(1);
}
if (options.bare && !(options.compile || options.js || options.sourceMap || options['eval'])) {
console.error('Error: --bare does not make sense without --compile, --js, --source-map, or --eval');
process.exit(1);
}
if (options.sourceMapFile && !options.js) {
console.error('Error: --source-map-file depends on --js');
process.exit(1);
}
if (null != options.input && fs.statSync(options.input).isDirectory() && (!(null != options.output) || (null != (cache$2 = fs.statSync(options.output)) ? cache$2.isFile() : void 0))) {
console.error('Error: when --input is a directory, --output must be provided, and --output must not reference a file');
process.exit(1);
}
if (options.cscodegen && !(null != cscodegen)) {
console.error('Error: cscodegen must be installed to use --cscodegen');
process.exit(1);
}
output = function (out) {
if (options.output) {
return fs.writeFile(options.output, '' + out + '\n', function (err) {
if (null != err)
throw err;
});
} else {
return process.stdout.write('' + out + '\n');
}
};
if (options.help) {
$0 = process.argv[0] === 'node' ? process.argv[1] : process.argv[0];
$0 = path.basename($0);
console.log('\n Usage: (OPT is interpreted by ' + $0 + ', ARG is passed to FILE)\n\n ' + $0 + ' OPT* -{p,c,j,f} OPT*\n example: ' + $0 + ' --js --no-optimise <input.coffee >output.js\n ' + $0 + ' [-e] FILE {OPT,ARG}* [-- ARG*]\n example: ' + $0 + ' myfile.coffee arg0 arg1\n ' + $0 + ' OPT* [--repl] OPT*\n example: ' + $0 + '\n\n -b, --bare omit the top-level function wrapper\n -c, --compile output a JSON-serialised AST representation of the output\n -e, --eval evaluate compiled JavaScript\n -f, --cscodegen output cscodegen-generated CoffeeScript code\n -i, --input FILE file to be used as input instead of STDIN\n -I, --require FILE require a library before a script is executed\n -j, --js generate JavaScript output\n -l, --literate treat the input as literate CoffeeScript code\n -m, --minify run compiled javascript output through a JS minifier\n -o, --output FILE file to be used as output instead of STDOUT\n -p, --parse output a JSON-serialised AST representation of the input\n -v, --version display the version number\n -w, --watch FILE watch the given file/directory for changes\n --cli INPUT pass a string from the command line as input\n --debug output intermediate representations on stderr for debug\n --help display this help message\n --nodejs OPTS pass options through to the node binary\n --optimise enable optimisations (default: on)\n --raw preserve source position and raw parse information\n --repl run an interactive CoffeeScript REPL\n --source-map generate source map\n --source-map-file FILE file used as output for source map when using --js\n\n Unless given --input or --cli flags, `' + $0 + '` will operate on stdin/stdout.\n When none of --{parse,compile,js,source-map,eval,cscodegen,repl} are given,\n If positional arguments were given\n * --eval is implied\n * the first positional argument is used as an input filename\n * additional positional arguments are passed as arguments to the script\n Else --repl is implied\n');
} else if (options.version) {
pkg = require('./../package.json');
console.log('CoffeeScript version ' + pkg.version);
} else if (options.repl) {
CoffeeScript.register();
process.argv.shift();
Repl.start();
} else {
input = '';
inputName = null != options.input ? options.input : options.cli && 'cli' || 'stdin';
inputSource = null != options.input ? fs.realpathSync(options.input) : options.cli && '(cli)' || '(stdin)';
processInput = function (err) {
var cache$3, e, js, jsAST, preprocessed, result, sourceMap, sourceMappingUrl;
if (null != err)
throw err;
result = null;
input = input.toString();
if (65279 === input.charCodeAt(0))
input = input.slice(1);
if (options.debug)
try {
console.error('### PREPROCESSED CS ###');
preprocessed = Preprocessor.process(input, { literate: options.literate });
console.error(numberLines(humanReadable(preprocessed)));
} catch (e$3) {
}
try {
result = CoffeeScript.parse(input, {
optimise: false,
raw: options.raw || options.sourceMap || options.sourceMapFile || options['eval'],
inputSource: inputSource,
literate: options.literate
});
} catch (e$4) {
e = e$4;
console.error(e.message);
process.exit(1);
}
if (options.debug && options.optimise && null != result) {
console.error('### PARSED CS-AST ###');
console.error(inspect(result.toBasicObject()));
}
if (options.optimise && null != result)
result = Optimiser.optimise(result);
if (options.parse)
if (null != result) {
output(inspect(result.toBasicObject()));
return;
} else {
process.exit(1);
}
if (options.debug && null != result) {
console.error('### ' + (options.optimise ? 'OPTIMISED' : 'PARSED') + ' CS-AST ###');
console.error(inspect(result.toBasicObject()));
}
if (options.cscodegen) {
try {
result = cscodegen.generate(result);
} catch (e$5) {
e = e$5;
console.error(e.stack || e.message);
process.exit(1);
}
if (null != result) {
output(result);
return;
} else {
process.exit(1);
}
}
jsAST = CoffeeScript.compile(result, { bare: options.bare });
if (options.compile)
if (null != jsAST) {
output(inspect(jsAST));
return;
} else {
process.exit(1);
}
if (options.debug && null != jsAST) {
console.error('### COMPILED JS-AST ###');
console.error(inspect(jsAST));
}
if (options.minify)
try {
jsAST = esmangle.mangle(esmangle.optimize(jsAST), { destructive: true });
} catch (e$6) {
e = e$6;
console.error(e.stack || e.message);
process.exit(1);
}
if (options.sourceMap) {
try {
sourceMap = CoffeeScript.sourceMap(jsAST, inputName, { compact: options.minify });
} catch (e$7) {
e = e$7;
console.error(e.stack || e.message);
process.exit(1);
}
if (null != sourceMap) {
output('' + sourceMap);
return;
} else {
process.exit(1);
}
}
try {
cache$3 = CoffeeScript.jsWithSourceMap(jsAST, inputName, { compact: options.minify });
js = cache$3.code;
sourceMap = cache$3.map;
cache$3;
} catch (e$8) {
e = e$8;
console.error(e.stack || e.message);
process.exit(1);
}
if (options.js) {
if (options.sourceMapFile) {
fs.writeFileSync(options.sourceMapFile, '' + sourceMap);
sourceMappingUrl = options.output ? path.relative(path.dirname(options.output), options.sourceMapFile) : options.sourceMapFile;
js = '' + js + '\n\n//# sourceMappingURL=' + sourceMappingUrl + '';
}
output(js);
return;
}
if (options['eval']) {
CoffeeScript.register();
process.argv = [
process.argv[1],
options.input
].concat(additionalArgs);
runMain(input, js, jsAST, inputSource);
return;
}
};
if (null != options.input) {
fs.stat(options.input, function (err, stats) {
if (null != err)
throw err;
if (stats.isDirectory())
options.input = path.join(options.input, 'index.coffee');
return fs.readFile(options.input, function (err, contents) {
if (null != err)
throw err;
input = contents;
return processInput();
});
});
} else if (null != options.watch) {
options.watch;
} else if (null != options.cli) {
input = options.cli;
processInput();
} else {
process.stdin.on('data', function (data) {
return input += data;
});
process.stdin.on('end', processInput);
process.stdin.setEncoding('utf8');
process.stdin.resume();
}
}