loom serve -> loom dev + minor improvements
This commit is contained in:
parent
67d13d8634
commit
58c98dce92
2 changed files with 58 additions and 1 deletions
56
platform/loom/cli/dev.ts
Normal file
56
platform/loom/cli/dev.ts
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
import { buildCommand, numberParser } from "npm:@stricli/core";
|
||||||
|
import express from 'npm:express';
|
||||||
|
|
||||||
|
type Flags = {
|
||||||
|
readonly port: number;
|
||||||
|
readonly hostname: string;
|
||||||
|
readonly open: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const command = buildCommand({
|
||||||
|
func: (flags: Flags, _text: string) => {
|
||||||
|
const port = flags.port;
|
||||||
|
const hostname = flags.hostname;
|
||||||
|
const open = flags.open;
|
||||||
|
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
app.use(express.static(import.meta.dirname + '/../editor/dist'));
|
||||||
|
|
||||||
|
app.listen(port, hostname, () => {
|
||||||
|
let url: string = `http://${hostname}:${port}`;
|
||||||
|
console.debug(`Express server running at ${url}`);
|
||||||
|
|
||||||
|
if (open) {
|
||||||
|
let o = (new Deno.Command("open", { args: [ url ]})).outputSync();
|
||||||
|
if (!o.success) {
|
||||||
|
console.error("Failed to open the server URL");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
parameters: {
|
||||||
|
flags: {
|
||||||
|
port: {
|
||||||
|
brief: "Port to run the editor server on",
|
||||||
|
kind: "parsed",
|
||||||
|
parse: numberParser,
|
||||||
|
default: "8066"
|
||||||
|
},
|
||||||
|
hostname: {
|
||||||
|
brief: "Host to run the editor server on",
|
||||||
|
kind: "parsed",
|
||||||
|
parse: String,
|
||||||
|
default: "localhost"
|
||||||
|
},
|
||||||
|
open: {
|
||||||
|
brief: "Whether to open the server's URL",
|
||||||
|
kind: "boolean",
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
docs: {
|
||||||
|
brief: "Run an interactive editor server",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
import { buildApplication, buildRouteMap, run } from 'npm:@stricli/core';
|
import { buildApplication, buildRouteMap, run } from 'npm:@stricli/core';
|
||||||
import { command as serve } from './cli/serve.ts';
|
import { command as serve } from './cli/serve.ts';
|
||||||
|
import { command as dev } from './cli/dev.ts';
|
||||||
import process from 'node:process';
|
import process from 'node:process';
|
||||||
|
|
||||||
const root = buildRouteMap({
|
const root = buildRouteMap({
|
||||||
routes: { serve },
|
routes: { dev },
|
||||||
docs: {
|
docs: {
|
||||||
brief: "Grimu-R weaving companion CLI"
|
brief: "Grimu-R weaving companion CLI"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue