summaryrefslogtreecommitdiff
path: root/node_modules/@11ty/eleventy-dev-server/cli.js
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/@11ty/eleventy-dev-server/cli.js
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/@11ty/eleventy-dev-server/cli.js')
-rw-r--r--node_modules/@11ty/eleventy-dev-server/cli.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/node_modules/@11ty/eleventy-dev-server/cli.js b/node_modules/@11ty/eleventy-dev-server/cli.js
new file mode 100644
index 0000000..04be1ca
--- /dev/null
+++ b/node_modules/@11ty/eleventy-dev-server/cli.js
@@ -0,0 +1,89 @@
+const pkg = require("./package.json");
+const EleventyDevServer = require("./server.js");
+
+const Logger = {
+ info: function(...args) {
+ console.log( "[11ty/eleventy-dev-server]", ...args );
+ },
+ error: function(...args) {
+ console.error( "[11ty/eleventy-dev-server]", ...args );
+ },
+ fatal: function(...args) {
+ Logger.error(...args);
+ process.exitCode = 1;
+ }
+};
+
+Logger.log = Logger.info;
+
+class Cli {
+ static getVersion() {
+ return pkg.version;
+ }
+
+ static getHelp() {
+ return `Usage:
+
+ eleventy-dev-server
+ eleventy-dev-server --dir=_site
+ eleventy-dev-server --port=3000
+
+Arguments:
+
+ --version
+
+ --dir=.
+ Directory to serve (default: \`.\`)
+
+ --input (alias for --dir)
+
+ --port=8080
+ Run the web server on this port (default: \`8080\`)
+ Will autoincrement if already in use.
+
+ --domdiff (enabled, default)
+ --domdiff=false (disabled)
+ Apply HTML changes without a full page reload.
+
+ --help`;
+ }
+
+ static getDefaultOptions() {
+ return {
+ port: "8080",
+ input: ".",
+ domDiff: true,
+ }
+ }
+
+ async serve(options = {}) {
+ this.options = Object.assign(Cli.getDefaultOptions(), options);
+
+ this.server = EleventyDevServer.getServer("eleventy-dev-server-cli", this.options.input, {
+ // TODO allow server configuration extensions
+ showVersion: true,
+ logger: Logger,
+ domDiff: this.options.domDiff,
+
+ // CLI watches all files in the folder by default
+ // this is different from Eleventy usage!
+ watch: [ this.options.input ],
+ });
+
+ this.server.serve(this.options.port);
+
+ // TODO? send any errors here to the server too
+ // with server.sendError({ error });
+ }
+
+ close() {
+ if(this.server) {
+ return this.server.close();
+ }
+ }
+}
+
+module.exports = {
+ Logger,
+ Cli
+}