summaryrefslogtreecommitdiff
path: root/node_modules/@11ty/eleventy-dev-server/cmd.js
blob: 695b84595acf056dd0d444f2ef139645382c27fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env node

const pkg = require("./package.json");

// Node check
require("please-upgrade-node")(pkg, {
  message: function (requiredVersion) {
    return (
      "eleventy-dev-server requires Node " +
      requiredVersion +
      ". You will need to upgrade Node!"
    );
  },
});

const { Logger, Cli } = require("./cli.js");

const debug = require("debug")("Eleventy:DevServer");

try {
  const defaults = Cli.getDefaultOptions();
  for(let key in defaults) {
    if(key.toLowerCase() !== key) {
      defaults[key.toLowerCase()] = defaults[key];
      delete defaults[key];
    }
  }

  const argv = require("minimist")(process.argv.slice(2), {
    string: [
      "dir",
      "input", // alias for dir
      "port",
    ],
    boolean: [
      "version",
      "help",
      "domdiff",
    ],
    default: defaults,
    unknown: function (unknownArgument) {
      throw new Error(
        `We don’t know what '${unknownArgument}' is. Use --help to see the list of supported commands.`
      );
    },
  });

  debug("command: eleventy-dev-server %o", argv);

  process.on("unhandledRejection", (error, promise) => {
    Logger.fatal("Unhandled rejection in promise:", promise, error);
  });
  process.on("uncaughtException", (error) => {
    Logger.fatal("Uncaught exception:", error);
  });

  if (argv.version) {
    console.log(Cli.getVersion());
  } else if (argv.help) {
    console.log(Cli.getHelp());
  } else {
    let cli = new Cli();

    cli.serve({
      input: argv.dir || argv.input,
      port: argv.port,
      domDiff: argv.domdiff,
    });

    process.on("SIGINT", async () => {
      await cli.close();
      process.exitCode = 0;
    });
  }
} catch (e) {
  Logger.fatal("Fatal Error:", e)
}