@andersbakken/fisk 4.0.28 → 4.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3225,17 +3225,17 @@ class Compile extends EventEmitter__default["default"] {
3225
3225
  proc.on("exit", (exitCode) => {
3226
3226
  // try {
3227
3227
  const files = [];
3228
- const addDir = (dir, prefix) => {
3228
+ const addDir = (directory, prefix) => {
3229
3229
  try {
3230
- fs.readdirSync(dir).forEach((file) => {
3230
+ fs.readdirSync(directory).forEach((file) => {
3231
3231
  if (file === "sourcefile") {
3232
3232
  return;
3233
3233
  }
3234
3234
  try {
3235
3235
  assert__default["default"](output !== undefined, "Must have output");
3236
- const stat = fs.statSync(path__default["default"].join(dir, file));
3236
+ const stat = fs.statSync(path__default["default"].join(directory, file));
3237
3237
  if (stat.isDirectory()) {
3238
- addDir(path__default["default"].join(dir, file), prefix ? prefix + file + "/" : file + "/");
3238
+ addDir(path__default["default"].join(directory, file), prefix ? prefix + file + "/" : file + "/");
3239
3239
  }
3240
3240
  else if (stat.isFile()) {
3241
3241
  if (file === outputFileName) {
@@ -3310,255 +3310,267 @@ class Compile extends EventEmitter__default["default"] {
3310
3310
  // });
3311
3311
  module.exports = Compile;
3312
3312
 
3313
+ function hasKey(obj, keys) {
3314
+ var o = obj;
3315
+ keys.slice(0, -1).forEach(function (key) {
3316
+ o = o[key] || {};
3317
+ });
3318
+
3319
+ var key = keys[keys.length - 1];
3320
+ return key in o;
3321
+ }
3322
+
3323
+ function isNumber(x) {
3324
+ if (typeof x === 'number') { return true; }
3325
+ if ((/^0x[0-9a-f]+$/i).test(x)) { return true; }
3326
+ return (/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/).test(x);
3327
+ }
3328
+
3329
+ function isConstructorOrProto(obj, key) {
3330
+ return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';
3331
+ }
3332
+
3313
3333
  var minimist = function (args, opts) {
3314
- if (!opts) opts = {};
3315
-
3316
- var flags = { bools : {}, strings : {}, unknownFn: null };
3334
+ if (!opts) { opts = {}; }
3317
3335
 
3318
- if (typeof opts['unknown'] === 'function') {
3319
- flags.unknownFn = opts['unknown'];
3320
- }
3336
+ var flags = {
3337
+ bools: {},
3338
+ strings: {},
3339
+ unknownFn: null,
3340
+ };
3321
3341
 
3322
- if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
3323
- flags.allBools = true;
3324
- } else {
3325
- [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
3326
- flags.bools[key] = true;
3327
- });
3328
- }
3329
-
3330
- var aliases = {};
3331
- Object.keys(opts.alias || {}).forEach(function (key) {
3332
- aliases[key] = [].concat(opts.alias[key]);
3333
- aliases[key].forEach(function (x) {
3334
- aliases[x] = [key].concat(aliases[key].filter(function (y) {
3335
- return x !== y;
3336
- }));
3337
- });
3338
- });
3342
+ if (typeof opts.unknown === 'function') {
3343
+ flags.unknownFn = opts.unknown;
3344
+ }
3339
3345
 
3340
- [].concat(opts.string).filter(Boolean).forEach(function (key) {
3341
- flags.strings[key] = true;
3342
- if (aliases[key]) {
3343
- flags.strings[aliases[key]] = true;
3344
- }
3345
- });
3346
+ if (typeof opts.boolean === 'boolean' && opts.boolean) {
3347
+ flags.allBools = true;
3348
+ } else {
3349
+ [].concat(opts.boolean).filter(Boolean).forEach(function (key) {
3350
+ flags.bools[key] = true;
3351
+ });
3352
+ }
3346
3353
 
3347
- var defaults = opts['default'] || {};
3348
-
3349
- var argv = { _ : [] };
3350
- Object.keys(flags.bools).forEach(function (key) {
3351
- setArg(key, defaults[key] === undefined ? false : defaults[key]);
3352
- });
3353
-
3354
- var notFlags = [];
3354
+ var aliases = {};
3355
3355
 
3356
- if (args.indexOf('--') !== -1) {
3357
- notFlags = args.slice(args.indexOf('--')+1);
3358
- args = args.slice(0, args.indexOf('--'));
3359
- }
3356
+ function aliasIsBoolean(key) {
3357
+ return aliases[key].some(function (x) {
3358
+ return flags.bools[x];
3359
+ });
3360
+ }
3360
3361
 
3361
- function argDefined(key, arg) {
3362
- return (flags.allBools && /^--[^=]+$/.test(arg)) ||
3363
- flags.strings[key] || flags.bools[key] || aliases[key];
3364
- }
3362
+ Object.keys(opts.alias || {}).forEach(function (key) {
3363
+ aliases[key] = [].concat(opts.alias[key]);
3364
+ aliases[key].forEach(function (x) {
3365
+ aliases[x] = [key].concat(aliases[key].filter(function (y) {
3366
+ return x !== y;
3367
+ }));
3368
+ });
3369
+ });
3365
3370
 
3366
- function setArg (key, val, arg) {
3367
- if (arg && flags.unknownFn && !argDefined(key, arg)) {
3368
- if (flags.unknownFn(arg) === false) return;
3369
- }
3371
+ [].concat(opts.string).filter(Boolean).forEach(function (key) {
3372
+ flags.strings[key] = true;
3373
+ if (aliases[key]) {
3374
+ [].concat(aliases[key]).forEach(function (k) {
3375
+ flags.strings[k] = true;
3376
+ });
3377
+ }
3378
+ });
3370
3379
 
3371
- var value = !flags.strings[key] && isNumber(val)
3372
- ? Number(val) : val
3373
- ;
3374
- setKey(argv, key.split('.'), value);
3375
-
3376
- (aliases[key] || []).forEach(function (x) {
3377
- setKey(argv, x.split('.'), value);
3378
- });
3379
- }
3380
+ var defaults = opts.default || {};
3380
3381
 
3381
- function setKey (obj, keys, value) {
3382
- var o = obj;
3383
- for (var i = 0; i < keys.length-1; i++) {
3384
- var key = keys[i];
3385
- if (isConstructorOrProto(o, key)) return;
3386
- if (o[key] === undefined) o[key] = {};
3387
- if (o[key] === Object.prototype || o[key] === Number.prototype
3388
- || o[key] === String.prototype) o[key] = {};
3389
- if (o[key] === Array.prototype) o[key] = [];
3390
- o = o[key];
3391
- }
3382
+ var argv = { _: [] };
3392
3383
 
3393
- var key = keys[keys.length - 1];
3394
- if (isConstructorOrProto(o, key)) return;
3395
- if (o === Object.prototype || o === Number.prototype
3396
- || o === String.prototype) o = {};
3397
- if (o === Array.prototype) o = [];
3398
- if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
3399
- o[key] = value;
3400
- }
3401
- else if (Array.isArray(o[key])) {
3402
- o[key].push(value);
3403
- }
3404
- else {
3405
- o[key] = [ o[key], value ];
3406
- }
3407
- }
3408
-
3409
- function aliasIsBoolean(key) {
3410
- return aliases[key].some(function (x) {
3411
- return flags.bools[x];
3412
- });
3413
- }
3384
+ function argDefined(key, arg) {
3385
+ return (flags.allBools && (/^--[^=]+$/).test(arg))
3386
+ || flags.strings[key]
3387
+ || flags.bools[key]
3388
+ || aliases[key];
3389
+ }
3414
3390
 
3415
- for (var i = 0; i < args.length; i++) {
3416
- var arg = args[i];
3417
-
3418
- if (/^--.+=/.test(arg)) {
3419
- // Using [\s\S] instead of . because js doesn't support the
3420
- // 'dotall' regex modifier. See:
3421
- // http://stackoverflow.com/a/1068308/13216
3422
- var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
3423
- var key = m[1];
3424
- var value = m[2];
3425
- if (flags.bools[key]) {
3426
- value = value !== 'false';
3427
- }
3428
- setArg(key, value, arg);
3429
- }
3430
- else if (/^--no-.+/.test(arg)) {
3431
- var key = arg.match(/^--no-(.+)/)[1];
3432
- setArg(key, false, arg);
3433
- }
3434
- else if (/^--.+/.test(arg)) {
3435
- var key = arg.match(/^--(.+)/)[1];
3436
- var next = args[i + 1];
3437
- if (next !== undefined && !/^-/.test(next)
3438
- && !flags.bools[key]
3439
- && !flags.allBools
3440
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
3441
- setArg(key, next, arg);
3442
- i++;
3443
- }
3444
- else if (/^(true|false)$/.test(next)) {
3445
- setArg(key, next === 'true', arg);
3446
- i++;
3447
- }
3448
- else {
3449
- setArg(key, flags.strings[key] ? '' : true, arg);
3450
- }
3451
- }
3452
- else if (/^-[^-]+/.test(arg)) {
3453
- var letters = arg.slice(1,-1).split('');
3454
-
3455
- var broken = false;
3456
- for (var j = 0; j < letters.length; j++) {
3457
- var next = arg.slice(j+2);
3458
-
3459
- if (next === '-') {
3460
- setArg(letters[j], next, arg);
3461
- continue;
3462
- }
3463
-
3464
- if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
3465
- setArg(letters[j], next.split('=')[1], arg);
3466
- broken = true;
3467
- break;
3468
- }
3469
-
3470
- if (/[A-Za-z]/.test(letters[j])
3471
- && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
3472
- setArg(letters[j], next, arg);
3473
- broken = true;
3474
- break;
3475
- }
3476
-
3477
- if (letters[j+1] && letters[j+1].match(/\W/)) {
3478
- setArg(letters[j], arg.slice(j+2), arg);
3479
- broken = true;
3480
- break;
3481
- }
3482
- else {
3483
- setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
3484
- }
3485
- }
3486
-
3487
- var key = arg.slice(-1)[0];
3488
- if (!broken && key !== '-') {
3489
- if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
3490
- && !flags.bools[key]
3491
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
3492
- setArg(key, args[i+1], arg);
3493
- i++;
3494
- }
3495
- else if (args[i+1] && /^(true|false)$/.test(args[i+1])) {
3496
- setArg(key, args[i+1] === 'true', arg);
3497
- i++;
3498
- }
3499
- else {
3500
- setArg(key, flags.strings[key] ? '' : true, arg);
3501
- }
3502
- }
3503
- }
3504
- else {
3505
- if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
3506
- argv._.push(
3507
- flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
3508
- );
3509
- }
3510
- if (opts.stopEarly) {
3511
- argv._.push.apply(argv._, args.slice(i + 1));
3512
- break;
3513
- }
3514
- }
3515
- }
3516
-
3517
- Object.keys(defaults).forEach(function (key) {
3518
- if (!hasKey(argv, key.split('.'))) {
3519
- setKey(argv, key.split('.'), defaults[key]);
3520
-
3521
- (aliases[key] || []).forEach(function (x) {
3522
- setKey(argv, x.split('.'), defaults[key]);
3523
- });
3524
- }
3525
- });
3526
-
3527
- if (opts['--']) {
3528
- argv['--'] = new Array();
3529
- notFlags.forEach(function(key) {
3530
- argv['--'].push(key);
3531
- });
3532
- }
3533
- else {
3534
- notFlags.forEach(function(key) {
3535
- argv._.push(key);
3536
- });
3537
- }
3391
+ function setKey(obj, keys, value) {
3392
+ var o = obj;
3393
+ for (var i = 0; i < keys.length - 1; i++) {
3394
+ var key = keys[i];
3395
+ if (isConstructorOrProto(o, key)) { return; }
3396
+ if (o[key] === undefined) { o[key] = {}; }
3397
+ if (
3398
+ o[key] === Object.prototype
3399
+ || o[key] === Number.prototype
3400
+ || o[key] === String.prototype
3401
+ ) {
3402
+ o[key] = {};
3403
+ }
3404
+ if (o[key] === Array.prototype) { o[key] = []; }
3405
+ o = o[key];
3406
+ }
3407
+
3408
+ var lastKey = keys[keys.length - 1];
3409
+ if (isConstructorOrProto(o, lastKey)) { return; }
3410
+ if (
3411
+ o === Object.prototype
3412
+ || o === Number.prototype
3413
+ || o === String.prototype
3414
+ ) {
3415
+ o = {};
3416
+ }
3417
+ if (o === Array.prototype) { o = []; }
3418
+ if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {
3419
+ o[lastKey] = value;
3420
+ } else if (Array.isArray(o[lastKey])) {
3421
+ o[lastKey].push(value);
3422
+ } else {
3423
+ o[lastKey] = [o[lastKey], value];
3424
+ }
3425
+ }
3538
3426
 
3539
- return argv;
3540
- };
3427
+ function setArg(key, val, arg) {
3428
+ if (arg && flags.unknownFn && !argDefined(key, arg)) {
3429
+ if (flags.unknownFn(arg) === false) { return; }
3430
+ }
3541
3431
 
3542
- function hasKey (obj, keys) {
3543
- var o = obj;
3544
- keys.slice(0,-1).forEach(function (key) {
3545
- o = (o[key] || {});
3546
- });
3432
+ var value = !flags.strings[key] && isNumber(val)
3433
+ ? Number(val)
3434
+ : val;
3435
+ setKey(argv, key.split('.'), value);
3547
3436
 
3548
- var key = keys[keys.length - 1];
3549
- return key in o;
3550
- }
3437
+ (aliases[key] || []).forEach(function (x) {
3438
+ setKey(argv, x.split('.'), value);
3439
+ });
3440
+ }
3551
3441
 
3552
- function isNumber (x) {
3553
- if (typeof x === 'number') return true;
3554
- if (/^0x[0-9a-f]+$/i.test(x)) return true;
3555
- return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
3556
- }
3442
+ Object.keys(flags.bools).forEach(function (key) {
3443
+ setArg(key, defaults[key] === undefined ? false : defaults[key]);
3444
+ });
3557
3445
 
3446
+ var notFlags = [];
3558
3447
 
3559
- function isConstructorOrProto (obj, key) {
3560
- return key === 'constructor' && typeof obj[key] === 'function' || key === '__proto__';
3561
- }
3448
+ if (args.indexOf('--') !== -1) {
3449
+ notFlags = args.slice(args.indexOf('--') + 1);
3450
+ args = args.slice(0, args.indexOf('--'));
3451
+ }
3452
+
3453
+ for (var i = 0; i < args.length; i++) {
3454
+ var arg = args[i];
3455
+ var key;
3456
+ var next;
3457
+
3458
+ if ((/^--.+=/).test(arg)) {
3459
+ // Using [\s\S] instead of . because js doesn't support the
3460
+ // 'dotall' regex modifier. See:
3461
+ // http://stackoverflow.com/a/1068308/13216
3462
+ var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
3463
+ key = m[1];
3464
+ var value = m[2];
3465
+ if (flags.bools[key]) {
3466
+ value = value !== 'false';
3467
+ }
3468
+ setArg(key, value, arg);
3469
+ } else if ((/^--no-.+/).test(arg)) {
3470
+ key = arg.match(/^--no-(.+)/)[1];
3471
+ setArg(key, false, arg);
3472
+ } else if ((/^--.+/).test(arg)) {
3473
+ key = arg.match(/^--(.+)/)[1];
3474
+ next = args[i + 1];
3475
+ if (
3476
+ next !== undefined
3477
+ && !(/^(-|--)[^-]/).test(next)
3478
+ && !flags.bools[key]
3479
+ && !flags.allBools
3480
+ && (aliases[key] ? !aliasIsBoolean(key) : true)
3481
+ ) {
3482
+ setArg(key, next, arg);
3483
+ i += 1;
3484
+ } else if ((/^(true|false)$/).test(next)) {
3485
+ setArg(key, next === 'true', arg);
3486
+ i += 1;
3487
+ } else {
3488
+ setArg(key, flags.strings[key] ? '' : true, arg);
3489
+ }
3490
+ } else if ((/^-[^-]+/).test(arg)) {
3491
+ var letters = arg.slice(1, -1).split('');
3492
+
3493
+ var broken = false;
3494
+ for (var j = 0; j < letters.length; j++) {
3495
+ next = arg.slice(j + 2);
3496
+
3497
+ if (next === '-') {
3498
+ setArg(letters[j], next, arg);
3499
+ continue;
3500
+ }
3501
+
3502
+ if ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {
3503
+ setArg(letters[j], next.slice(1), arg);
3504
+ broken = true;
3505
+ break;
3506
+ }
3507
+
3508
+ if (
3509
+ (/[A-Za-z]/).test(letters[j])
3510
+ && (/-?\d+(\.\d*)?(e-?\d+)?$/).test(next)
3511
+ ) {
3512
+ setArg(letters[j], next, arg);
3513
+ broken = true;
3514
+ break;
3515
+ }
3516
+
3517
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
3518
+ setArg(letters[j], arg.slice(j + 2), arg);
3519
+ broken = true;
3520
+ break;
3521
+ } else {
3522
+ setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
3523
+ }
3524
+ }
3525
+
3526
+ key = arg.slice(-1)[0];
3527
+ if (!broken && key !== '-') {
3528
+ if (
3529
+ args[i + 1]
3530
+ && !(/^(-|--)[^-]/).test(args[i + 1])
3531
+ && !flags.bools[key]
3532
+ && (aliases[key] ? !aliasIsBoolean(key) : true)
3533
+ ) {
3534
+ setArg(key, args[i + 1], arg);
3535
+ i += 1;
3536
+ } else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {
3537
+ setArg(key, args[i + 1] === 'true', arg);
3538
+ i += 1;
3539
+ } else {
3540
+ setArg(key, flags.strings[key] ? '' : true, arg);
3541
+ }
3542
+ }
3543
+ } else {
3544
+ if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
3545
+ argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
3546
+ }
3547
+ if (opts.stopEarly) {
3548
+ argv._.push.apply(argv._, args.slice(i + 1));
3549
+ break;
3550
+ }
3551
+ }
3552
+ }
3553
+
3554
+ Object.keys(defaults).forEach(function (k) {
3555
+ if (!hasKey(argv, k.split('.'))) {
3556
+ setKey(argv, k.split('.'), defaults[k]);
3557
+
3558
+ (aliases[k] || []).forEach(function (x) {
3559
+ setKey(argv, x.split('.'), defaults[k]);
3560
+ });
3561
+ }
3562
+ });
3563
+
3564
+ if (opts['--']) {
3565
+ argv['--'] = notFlags.slice();
3566
+ } else {
3567
+ notFlags.forEach(function (k) {
3568
+ argv._.push(k);
3569
+ });
3570
+ }
3571
+
3572
+ return argv;
3573
+ };
3562
3574
 
3563
3575
  const argv = minimist(process.argv.slice(2));
3564
3576
  function send(message) {
@@ -3572,7 +3584,7 @@ function send(message) {
3572
3584
  }
3573
3585
  }
3574
3586
  process.on("unhandledRejection", (reason, p) => {
3575
- send({ type: "error", message: `Unhandled rejection at: Promise ${p} reason: ${reason === null || reason === void 0 ? void 0 : reason.stack}` });
3587
+ send({ type: "error", message: `Unhandled rejection at: Promise reason: ${reason === null || reason === void 0 ? void 0 : reason.stack}` });
3576
3588
  console.error("Unhandled rejection at: Promise", p, "reason:", reason === null || reason === void 0 ? void 0 : reason.stack);
3577
3589
  });
3578
3590
  process.on("uncaughtException", (err) => {
@@ -3702,8 +3714,12 @@ process.on("message", (msg) => {
3702
3714
  }
3703
3715
  const compile = new Compile(msg.commandLine, msg.argv0, msg.dir, argv.debug);
3704
3716
  // console.log("running thing", msg.commandLine);
3705
- compile.on("stdout", (data) => send({ type: "compileStdOut", id: msg.id, data: data }));
3706
- compile.on("stderr", (data) => send({ type: "compileStdErr", id: msg.id, data: data }));
3717
+ compile.on("stdout", (data) => {
3718
+ send({ type: "compileStdOut", id: msg.id, data: data });
3719
+ });
3720
+ compile.on("stderr", (data) => {
3721
+ send({ type: "compileStdErr", id: msg.id, data: data });
3722
+ });
3707
3723
  compile.on("exit", (event) => {
3708
3724
  compiles.delete(msg.id);
3709
3725
  if ("error" in event) {