@haibun/web-server-express 1.1.0 → 1.8.1

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.
package/build/defs.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  export declare const WEBSERVER = "webserver";
2
- export declare const WEBSERVER_STEPPER = "WebServerStepper";
3
2
  export declare const CHECK_LISTENER = "CHECK_LISTENER";
4
3
  import * as express from 'express';
5
4
  export interface IWebServer {
6
5
  addStaticFolder(subdir: string): Promise<string | undefined>;
7
6
  addKnownStaticFolder(subdir: string, mountAt?: string): Promise<string | undefined>;
8
- listen(port: number): Promise<IWebServer>;
7
+ listen(): Promise<IWebServer>;
8
+ close(): Promise<void>;
9
9
  addRoute(type: TRouteType, path: string, route: TRequestHandler): void;
10
10
  }
11
11
  export declare type TRouteType = 'get';
@@ -1 +1 @@
1
- {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../src/defs.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AACpD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CACxE;AAED,oBAAY,UAAU,GAAG,KAAK,CAAC;AAE/B,oBAAY,QAAQ,GAAG,OAAO,OAAO,CAAC,OAAO,CAAC;AAE9C,oBAAY,SAAS,GAAG,OAAO,OAAO,CAAC,QAAQ,CAAC;AAEhD,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../src/defs.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,cAAc,CAAC;AACrC,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpF,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CACxE;AAED,oBAAY,UAAU,GAAG,KAAK,CAAC;AAE/B,oBAAY,QAAQ,GAAG,OAAO,OAAO,CAAC,OAAO,CAAC;AAE9C,oBAAY,SAAS,GAAG,OAAO,OAAO,CAAC,QAAQ,CAAC;AAEhD,oBAAY,eAAe,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC"}
package/build/defs.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHECK_LISTENER = exports.WEBSERVER_STEPPER = exports.WEBSERVER = void 0;
3
+ exports.CHECK_LISTENER = exports.WEBSERVER = void 0;
4
4
  exports.WEBSERVER = 'webserver';
5
- exports.WEBSERVER_STEPPER = 'WebServerStepper';
6
5
  exports.CHECK_LISTENER = 'CHECK_LISTENER';
7
6
  //# sourceMappingURL=defs.js.map
package/build/defs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","sourceRoot":"","sources":["../src/defs.ts"],"names":[],"mappings":";;;AACa,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,iBAAiB,GAAG,kBAAkB,CAAC;AACvC,QAAA,cAAc,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"defs.js","sourceRoot":"","sources":["../src/defs.ts"],"names":[],"mappings":";;;AACa,QAAA,SAAS,GAAG,WAAW,CAAC;AACxB,QAAA,cAAc,GAAG,gBAAgB,CAAC"}
@@ -14,7 +14,8 @@ export declare class ServerExpress implements IWebServer {
14
14
  port: number;
15
15
  constructor(logger: ILogger, base: string, port?: number);
16
16
  listen(): Promise<IWebServer>;
17
- addRoute(type: TRouteType, path: string, route: RequestHandler): Promise<any>;
17
+ addRoute(type: TRouteType, path: string, route: RequestHandler): Promise<void>;
18
+ addMounted(path: string, what: string): Promise<void>;
18
19
  addStaticFolder(relativeFolder: string, mountAt?: string): Promise<string | undefined>;
19
20
  addKnownStaticFolder(folder: string, mountAt?: string): Promise<string | undefined>;
20
21
  doAddStaticFolder(folder: string, mountAt?: string): Promise<string | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"server-express.d.ts","sourceRoot":"","sources":["../src/server-express.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAEjE,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,qBAAa,aAAc,YAAW,UAAU;IAC9C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,SAAS,EAAE,OAAO,CAAS;IAClC,QAAQ,EAAE,GAAG,CAAC;IACd,GAAG,8CAAa;IAChB,MAAM,CAAC,OAAO,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAqB;IAOhE,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAiB7B,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc;IAgB9D,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS3F,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIxF,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAyB3F,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAkBpD,KAAK;CAIZ"}
1
+ {"version":3,"file":"server-express.d.ts","sourceRoot":"","sources":["../src/server-express.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAEjE,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,qBAAa,aAAc,YAAW,UAAU;IAC9C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,SAAS,EAAE,OAAO,CAAS;IAClC,QAAQ,EAAE,GAAG,CAAC;IACd,GAAG,8CAAa;IAChB,MAAM,CAAC,OAAO,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAqB;IAQhE,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAiB7B,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc;IAiB9D,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAQrC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS3F,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIxF,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwB3F,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAWpD,KAAK;CAIZ"}
@@ -10,11 +10,11 @@ const cookie_parser_1 = __importDefault(require("cookie-parser"));
10
10
  exports.DEFAULT_PORT = 8123;
11
11
  class ServerExpress {
12
12
  constructor(logger, base, port = exports.DEFAULT_PORT) {
13
- this.app = express_1.default();
13
+ this.app = (0, express_1.default)();
14
14
  this.logger = logger;
15
15
  this.base = base;
16
16
  this.port = port;
17
- this.app.use(cookie_parser_1.default());
17
+ this.app.use((0, cookie_parser_1.default)());
18
18
  }
19
19
  async listen() {
20
20
  if (!ServerExpress.listening) {
@@ -36,15 +36,22 @@ class ServerExpress {
36
36
  try {
37
37
  const alreadyMounted = this.checkMountBadOrMounted(path, route.toString());
38
38
  if (alreadyMounted) {
39
+ this.logger.debug(`already mount ${path}`);
39
40
  return;
40
41
  }
41
42
  }
42
43
  catch (e) {
43
- return e.message;
44
+ throw (e);
44
45
  }
45
46
  this.logger.log(`serving route from ${path}`);
46
47
  await this.app[type](path, route);
47
- await this.listen();
48
+ await this.addMounted(path, route.toString());
49
+ }
50
+ async addMounted(path, what) {
51
+ ServerExpress.mounted[path] = what;
52
+ if (!this.listener) {
53
+ await this.listen();
54
+ }
48
55
  }
49
56
  // add a static folder restricted to relative paths from files
50
57
  async addStaticFolder(relativeFolder, mountAt = '/') {
@@ -63,32 +70,25 @@ class ServerExpress {
63
70
  const alreadyMounted = this.checkMountBadOrMounted(mountAt, folder);
64
71
  if (alreadyMounted) {
65
72
  // FIXME
66
- // return;
73
+ return;
67
74
  }
68
75
  }
69
76
  catch (e) {
70
77
  return e.message;
71
78
  }
72
- if (!fs_1.existsSync(folder)) {
79
+ if (!(0, fs_1.existsSync)(folder)) {
73
80
  throw Error(`"${folder}" doesn't exist`);
74
81
  }
75
- const stat = fs_1.statSync(folder);
82
+ const stat = (0, fs_1.statSync)(folder);
76
83
  if (!stat.isDirectory()) {
77
84
  throw Error(`"${folder}" is not a directory`);
78
85
  }
79
- ServerExpress.mounted[mountAt] = folder;
80
86
  this.logger.info(`serving files from ${folder} at ${mountAt}`);
81
87
  await this.app.use(mountAt, express_1.default.static(folder));
82
- await this.listen();
88
+ await this.addMounted(mountAt, folder);
83
89
  return;
84
90
  }
85
91
  checkMountBadOrMounted(loc, what) {
86
- if (!ServerExpress.listening) {
87
- throw Error(`listen must be called before mount`);
88
- }
89
- if (!loc) {
90
- throw Error(`missing mount location`);
91
- }
92
92
  const alreadyMounted = ServerExpress.mounted[loc];
93
93
  if (alreadyMounted === what) {
94
94
  this.logger.log(`${alreadyMounted} already mounted at ${loc}`);
@@ -1 +1 @@
1
- {"version":3,"file":"server-express.js","sourceRoot":"","sources":["../src/server-express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-express.js","sourceRoot":"","sources":["../src/server-express.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA0C;AAC1C,sDAAkD;AAClD,kEAAyC;AAK5B,QAAA,YAAY,GAAG,IAAI,CAAC;AAEjC,MAAa,aAAa;IAQxB,YAAY,MAAe,EAAE,IAAY,EAAE,OAAe,oBAAY;QAJtE,QAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QAKd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAA,uBAAY,GAAE,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAC5B,IAAI;gBACF,aAAa,CAAC,SAAS,GAAG,IAAI,CAAA;gBAE9B,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAElH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;aACtC;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAClB;SACF;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;SAC9C;QACD,OAAO,IAAkB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAgB,EAAE,IAAY,EAAE,KAAqB;QAClE,IAAI;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAG3E,IAAI,cAAc,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO;aACR;SACF;QAAC,OAAO,CAAM,EAAE;YACf,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,IAAY;QACzC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;SACrB;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,eAAe,CAAC,cAAsB,EAAE,UAAkB,GAAG;QACjE,IAAI,cAAc,KAAK,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC3F,MAAM,KAAK,CAAC,gBAAgB,cAAc,yBAAyB,CAAC,CAAC;SACtE;QACD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,UAAkB,GAAG;QAC9D,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,UAAkB,GAAG;QAC3D,IAAI;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACpE,IAAI,cAAc,EAAE;gBAClB,QAAQ;gBACR,OAAO;aACR;SACF;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,CAAC,OAAO,CAAC;SAClB;QACD,IAAI,CAAC,IAAA,eAAU,EAAC,MAAM,CAAC,EAAE;YACvB,MAAM,KAAK,CAAC,IAAI,MAAM,iBAAiB,CAAC,CAAC;SAC1C;QACD,MAAM,IAAI,GAAG,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,KAAK,CAAC,IAAI,MAAM,sBAAsB,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,OAAO,OAAO,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,sBAAsB,CAAC,GAAW,EAAE,IAAY;QAC9C,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,uBAAuB,GAAG,EAAE,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,cAAc,IAAI,cAAc,KAAK,IAAI,EAAE;YACpD,MAAM,KAAK,CAAC,gBAAgB,IAAI,OAAO,GAAG,KAAK,cAAc,sBAAsB,CAAC,CAAC;SACtF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;;AA7GH,sCA8GC;AA5GQ,uBAAS,GAAY,KAAK,CAAC;AAG3B,qBAAO,GAAgC,EAAE,CAAC"}
@@ -3,41 +3,41 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const node_fetch_1 = __importDefault(require("node-fetch"));
6
+ const web_http_1 = __importDefault(require("@haibun/web-http/build/web-http"));
7
7
  const util_1 = require("@haibun/core/build/lib/util");
8
- const defs_1 = require("./defs");
8
+ const defs_1 = require("@haibun/core/build/lib/defs");
9
+ const defs_2 = require("./defs");
9
10
  const web_server_stepper_1 = __importDefault(require("./web-server-stepper"));
11
+ const defs_3 = require("@haibun/core/build/lib/defs");
10
12
  const lib_1 = require("@haibun/core/src/lib/test/lib");
13
+ const web_server_stepper_2 = __importDefault(require("./web-server-stepper"));
11
14
  describe('route mount', () => {
12
15
  it('mounts a route', async () => {
13
- const TestRoute = class TestRoute {
14
- constructor(world) {
16
+ const TestRoute = class TestRoute extends defs_3.AStepper {
17
+ constructor() {
18
+ super(...arguments);
15
19
  this.steps = {
16
20
  addRoute: {
17
21
  gwta: 'serve test route to {loc}',
18
22
  action: async ({ loc }) => {
19
23
  const route = (req, res) => res.status(200).send('ok');
20
- const webserver = await util_1.getFromRuntime(this.world.runtime, defs_1.WEBSERVER);
24
+ const webserver = await (0, util_1.getFromRuntime)(this.getWorld().runtime, defs_2.WEBSERVER);
21
25
  await webserver.addRoute('get', loc, route);
22
- webserver.listen(8123);
23
- return util_1.actionOK();
26
+ return (0, util_1.actionOK)();
24
27
  },
25
28
  },
26
29
  };
27
- this.world = world;
28
30
  }
29
31
  };
30
- const feature = { path: '/features/test.feature', content: `serve test route to /test\n` };
31
- const { result, steppers } = await lib_1.testWithDefaults([feature], [web_server_stepper_1.default, TestRoute], {
32
- options: {},
32
+ const wss = new web_server_stepper_2.default();
33
+ const feature = { path: '/features/test.feature', content: `serve test route to /test\nwebserver is listening\nfetch from http://localhost:8124/test is "ok"` };
34
+ const result = await (0, lib_1.testWithDefaults)([feature], [web_server_stepper_1.default, TestRoute, web_http_1.default], {
35
+ options: { DEST: defs_1.DEFAULT_DEST, },
33
36
  extraOptions: {
34
- [`HAIBUN_O_${defs_1.WEBSERVER_STEPPER.toUpperCase()}_PORT`]: '8124',
37
+ [(0, util_1.getStepperOptionName)(wss, 'PORT')]: '8124',
35
38
  },
36
39
  });
37
40
  expect(result.ok).toBe(true);
38
- const content = await node_fetch_1.default('http://localhost:8123/test');
39
- expect(await content.text()).toEqual('ok');
40
- util_1.findStepper(steppers, defs_1.WEBSERVER_STEPPER).close();
41
41
  });
42
42
  });
43
43
  //# sourceMappingURL=web-server-stepper-route.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-server-stepper-route.test.js","sourceRoot":"","sources":["../src/web-server-stepper-route.test.ts"],"names":[],"mappings":";;;;;AAAA,4DAA+B;AAE/B,sDAAoF;AACpF,iCAAwF;AAExF,8EAAkE;AAElE,uDAAiE;AAGjE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,SAAS,GAA0B,MAAM,SAAS;YAEtD,YAAY,KAAa;gBAGzB,UAAK,GAAG;oBACN,QAAQ,EAAE;wBACR,IAAI,EAAE,2BAA2B;wBACjC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAU,EAAE,EAAE;4BAChC,MAAM,KAAK,GAAG,CAAC,GAAa,EAAE,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC5E,MAAM,SAAS,GAAe,MAAM,qBAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAS,CAAC,CAAC;4BAClF,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;4BAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAEvB,OAAO,eAAQ,EAAE,CAAC;wBACpB,CAAC;qBACF;iBACF,CAAC;gBAdA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,CAAC;SAcF,CAAC;QACF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAA;QAC1F,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,sBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAE,4BAAM,EAAE,SAAS,CAAC,EAAE;YACnF,OAAO,EAAE,EAAE;YACX,YAAY,EAAE;gBACZ,CAAC,YAAY,wBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;aAC7D;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,oBAAK,CAAC,4BAA4B,CAAC,CAAC;QAE1D,MAAM,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE3C,kBAAW,CAAoB,QAAS,EAAE,wBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"web-server-stepper-route.test.js","sourceRoot":"","sources":["../src/web-server-stepper-route.test.ts"],"names":[],"mappings":";;;;;AACA,+EAAsD;AACtD,sDAA6F;AAC7F,sDAA2D;AAC3D,iCAAoE;AAEpE,8EAA0C;AAC1C,sDAA+D;AAC/D,uDAAiE;AACjE,8EAAoD;AAEpD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,SAAS,GAAG,MAAM,SAAU,SAAQ,eAAQ;YAAhC;;gBAChB,UAAK,GAAG;oBACN,QAAQ,EAAE;wBACR,IAAI,EAAE,2BAA2B;wBACjC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAU,EAAE,EAAE;4BAChC,MAAM,KAAK,GAAG,CAAC,GAAa,EAAE,GAAc,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC5E,MAAM,SAAS,GAAe,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAS,CAAC,CAAC;4BACvF,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;4BAC5C,OAAO,IAAA,eAAQ,GAAE,CAAC;wBACpB,CAAC;qBACF;iBACF,CAAC;YACJ,CAAC;SAAA,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,4BAAgB,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,kGAAkG,EAAE,CAAC;QAChK,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAgB,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,EAAE,SAAS,EAAE,kBAAO,CAAC,EAAE;YAC7E,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAY,GAAG;YAChC,YAAY,EAAE;gBACZ,CAAC,IAAA,2BAAoB,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM;aAC5C;SACF,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,11 +1,48 @@
1
- import { IExtensionConstructor, TOptions } from '@haibun/core/build/lib/defs';
1
+ import { TWorld, TNamed, TOptions, AStepper } from '@haibun/core/build/lib/defs';
2
2
  import { IWebServer } from './defs';
3
- declare const WebServerStepper: IExtensionConstructor;
3
+ import { ServerExpress } from './server-express';
4
+ declare const WebServerStepper: {
5
+ new (): {
6
+ webserver: ServerExpress | undefined;
7
+ options: {
8
+ PORT: {
9
+ desc: string;
10
+ parse: (port: string) => {
11
+ error: string;
12
+ result?: undefined;
13
+ } | {
14
+ result: number;
15
+ error?: undefined;
16
+ };
17
+ };
18
+ };
19
+ setWorld(world: TWorld, steppers: AStepper[]): void;
20
+ close(): Promise<void>;
21
+ steps: {
22
+ isListening: {
23
+ gwta: string;
24
+ action: () => Promise<import("@haibun/core/build/lib/defs").TOKActionResult>;
25
+ };
26
+ showMounts: {
27
+ gwta: string;
28
+ action: () => Promise<import("@haibun/core/build/lib/defs").TOKActionResult>;
29
+ };
30
+ serveFiles: {
31
+ gwta: string;
32
+ action: ({ loc }: TNamed) => Promise<import("@haibun/core/build/lib/defs").TOKActionResult | import("@haibun/core/build/lib/defs").TNotOKActionResult>;
33
+ build: ({ loc }: TNamed) => Promise<import("@haibun/core/build/lib/defs").TOKActionResult>;
34
+ };
35
+ };
36
+ world?: TWorld | undefined;
37
+ endFeature?(): void;
38
+ onFailure?(result: import("@haibun/core/build/lib/defs").TStepResult): void;
39
+ getWorld(): TWorld;
40
+ };
41
+ };
4
42
  export default WebServerStepper;
5
43
  export declare type ICheckListener = (options: TOptions, webserver: IWebServer) => void;
6
44
  export interface IWebServerStepper {
7
45
  webserver: IWebServer;
8
46
  close: () => void;
9
- checkListener: ICheckListener;
10
47
  }
11
48
  //# sourceMappingURL=web-server-stepper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-server-stepper.d.ts","sourceRoot":"","sources":["../src/web-server-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,qBAAqB,EAAsB,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEzH,OAAO,EAAE,UAAU,EAAgC,MAAM,QAAQ,CAAC;AAGlE,QAAA,MAAM,gBAAgB,EAAE,qBAkDvB,CAAC;AACF,eAAe,gBAAgB,CAAC;AAEhC,oBAAY,cAAc,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,KAAK,IAAI,CAAC;AAChF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,UAAU,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,aAAa,EAAE,cAAc,CAAC;CAC/B"}
1
+ {"version":3,"file":"web-server-stepper.d.ts","sourceRoot":"","sources":["../src/web-server-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAElG,OAAO,EAAE,UAAU,EAAc,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,aAAa,EAAgB,MAAM,kBAAkB,CAAC;AAE/D,QAAA,MAAM,gBAAgB;;mBACT,aAAa,GAAG,SAAS;;;;8BAKlB,MAAM;;;;;;;;;wBAIR,MAAM,YAAY,QAAQ,EAAE;;;;;;;;;;;;;kCA8BhB,MAAM;iCAOP,MAAM;;;;;;;;CAMlC,CAAC;AACF,eAAe,gBAAgB,CAAC;AAEhC,oBAAY,cAAc,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,KAAK,IAAI,CAAC;AAChF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,UAAU,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB"}
@@ -4,49 +4,56 @@ const defs_1 = require("@haibun/core/build/lib/defs");
4
4
  const util_1 = require("@haibun/core/build/lib/util");
5
5
  const defs_2 = require("./defs");
6
6
  const server_express_1 = require("./server-express");
7
- const WebServerStepper = class WebServerStepper {
8
- constructor(world) {
7
+ const WebServerStepper = class WebServerStepper extends defs_1.AStepper {
8
+ constructor() {
9
+ super(...arguments);
9
10
  this.options = {
10
11
  PORT: {
11
12
  desc: `change web server port from ${server_express_1.DEFAULT_PORT}`,
12
- parse: (port) => parseInt(port, 10),
13
+ parse: (port) => (0, util_1.intOrError)(port)
13
14
  },
14
15
  };
15
16
  this.steps = {
16
17
  isListening: {
17
18
  gwta: 'webserver is listening',
18
19
  action: async () => {
19
- await this.checkListener(this.world.options);
20
+ await this.webserver.listen();
21
+ return defs_1.OK;
22
+ },
23
+ },
24
+ showMounts: {
25
+ gwta: 'show mounts',
26
+ action: async () => {
27
+ const mounts = server_express_1.ServerExpress.mounted;
28
+ this.getWorld().logger.info(`mounts: ${JSON.stringify(mounts)}`);
20
29
  return defs_1.OK;
21
30
  },
22
31
  },
23
32
  serveFiles: {
24
33
  gwta: 'serve files from {loc}',
25
34
  action: async ({ loc }) => {
26
- const ws = await this.world.runtime[defs_2.WEBSERVER];
27
- await ws.listen(8123);
35
+ const ws = await (0, util_1.getFromRuntime)(this.getWorld().runtime, defs_2.WEBSERVER);
28
36
  const error = await ws.addStaticFolder(loc);
29
- this.world.shared.set('file_location', loc);
30
- return error === undefined ? defs_1.OK : util_1.actionNotOK(error);
37
+ this.getWorld().shared.set('file_location', loc);
38
+ return error === undefined ? defs_1.OK : (0, util_1.actionNotOK)(error);
31
39
  },
32
40
  build: async ({ loc }) => {
33
- this.world.shared.set('file_location', loc);
41
+ this.getWorld().shared.set('file_location', loc);
34
42
  return defs_1.OK;
35
43
  }
36
44
  },
37
45
  };
38
- this.world = world;
39
- this.webserver = new server_express_1.ServerExpress(this.world.logger, [process.cwd(), 'files'].join('/'));
40
- this.world.runtime[defs_2.WEBSERVER] = this.webserver;
46
+ }
47
+ setWorld(world, steppers) {
48
+ super.setWorld(world, steppers);
41
49
  // this.world.runtime[CHECK_LISTENER] = WebServerStepper.checkListener;
50
+ const port = parseInt((0, util_1.getStepperOption)(this, 'PORT', world.extraOptions)) || server_express_1.DEFAULT_PORT;
51
+ this.webserver = new server_express_1.ServerExpress(world.logger, [process.cwd(), 'files'].join('/'), port);
52
+ world.runtime[defs_2.WEBSERVER] = this.webserver;
42
53
  }
43
- async finish() {
54
+ async close() {
44
55
  await this.webserver?.close();
45
56
  }
46
- async checkListener(options) {
47
- const port = options[`HAIBUN_O_${defs_2.WEBSERVER_STEPPER.toUpperCase()}_PORT`];
48
- await this.webserver.listen();
49
- }
50
57
  };
51
58
  exports.default = WebServerStepper;
52
59
  //# sourceMappingURL=web-server-stepper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-server-stepper.js","sourceRoot":"","sources":["../src/web-server-stepper.ts"],"names":[],"mappings":";;AAAA,sDAAyH;AACzH,sDAA0D;AAC1D,iCAAkE;AAClE,qDAA+D;AAE/D,MAAM,gBAAgB,GAA0B,MAAM,gBAAgB;IAUpE,YAAY,KAAa;QANzB,YAAO,GAAG;YACR,IAAI,EAAE;gBACJ,IAAI,EAAE,+BAA+B,6BAAY,EAAE;gBACnD,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;aAC5C;SACF,CAAC;QAiBF,UAAK,GAAG;YACN,WAAW,EAAE;gBACX,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC7C,OAAO,SAAE,CAAC;gBACZ,CAAC;aACF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAU,EAAE,EAAE;oBAChC,MAAM,EAAE,GAAe,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAS,CAAC,CAAC;oBAC3D,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;oBAE5C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAE,CAAC,CAAC,CAAC,kBAAW,CAAC,KAAK,CAAC,CAAC;gBACvD,CAAC;gBACD,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAU,EAAE,EAAE;oBAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;oBAC5C,OAAO,SAAE,CAAC;gBACZ,CAAC;aACF;SACF,CAAC;QAtCA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/C,uEAAuE;IACzE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAiB;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,wBAAiB,CAAC,WAAW,EAAE,OAAO,CAAW,CAAC;QACnF,MAAM,IAAI,CAAC,SAAU,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;CA0BF,CAAC;AACF,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"web-server-stepper.js","sourceRoot":"","sources":["../src/web-server-stepper.ts"],"names":[],"mappings":";;AAAA,sDAAkG;AAClG,sDAAwG;AACxG,iCAAgD;AAChD,qDAA+D;AAE/D,MAAM,gBAAgB,GAAG,MAAM,gBAAiB,SAAQ,eAAQ;IAAvC;;QAGvB,YAAO,GAAG;YACR,IAAI,EAAE;gBACJ,IAAI,EAAE,+BAA+B,6BAAY,EAAE;gBACnD,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC;aAC1C;SACF,CAAC;QAcF,UAAK,GAAG;YACN,WAAW,EAAE;gBACX,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,IAAI,CAAC,SAAU,CAAC,MAAM,EAAE,CAAC;oBAC/B,OAAO,SAAE,CAAC;gBACZ,CAAC;aACF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,MAAM,GAAG,8BAAa,CAAC,OAAO,CAAC;oBACrC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACjE,OAAO,SAAE,CAAC;gBACZ,CAAC;aACF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAU,EAAE,EAAE;oBAChC,MAAM,EAAE,GAAe,MAAM,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAS,CAAC,CAAC;oBAChF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;oBAEjD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAE,CAAC,CAAC,CAAC,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC;gBACvD,CAAC;gBACD,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAU,EAAE,EAAE;oBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;oBACjD,OAAO,SAAE,CAAC;gBACZ,CAAC;aACF;SACF,CAAC;IACJ,CAAC;IA3CC,QAAQ,CAAC,KAAa,EAAE,QAAoB;QAC1C,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChC,uEAAuE;QACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAA,uBAAgB,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,6BAAY,CAAC;QAC1F,IAAI,CAAC,SAAS,GAAG,IAAI,8BAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3F,KAAK,CAAC,OAAO,CAAC,gBAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;CAiCF,CAAC;AACF,kBAAe,gBAAgB,CAAC"}
@@ -3,31 +3,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const node_fetch_1 = __importDefault(require("node-fetch"));
7
6
  const lib_1 = require("@haibun/core/build/lib/test/lib");
7
+ const web_http_1 = __importDefault(require("@haibun/web-http/build/web-http"));
8
8
  const web_server_stepper_1 = __importDefault(require("./web-server-stepper"));
9
- const serverLoc = [process.cwd(), 'build', 'web-server-stepper'].join('/');
10
9
  describe('static mount', () => {
11
10
  it('serves files', async () => {
12
- const feature = { path: '/features/test.feature', content: `serve files from test\n` };
13
- const { result } = await lib_1.testWithDefaults([feature], [web_server_stepper_1.default]);
11
+ const feature = { path: '/features/test.feature', content: `serve files from test\nfetch from http://localhost:8123/testfile is "content"` };
12
+ const result = await (0, lib_1.testWithDefaults)([feature], [web_server_stepper_1.default, web_http_1.default]);
14
13
  expect(result.ok).toBe(true);
15
- const content = await node_fetch_1.default('http://localhost:8123/testfile');
16
- expect(await content.text()).toEqual('content');
17
14
  });
18
15
  it('restricts characters used in static mount folder name', async () => {
19
16
  const feature = { path: '/features/test.feature', content: `serve files from l*(*$\n` };
20
- const { result } = await lib_1.testWithDefaults([feature], [web_server_stepper_1.default]);
17
+ const result = await (0, lib_1.testWithDefaults)([feature], [web_server_stepper_1.default]);
21
18
  expect(result.ok).toBe(false);
22
19
  });
23
20
  it("doesn't re-mount same static mount", async () => {
24
21
  const feature = { path: '/features/test.feature', content: `serve files from test\nserve files from test\n` };
25
- const { result } = await lib_1.testWithDefaults([feature], [web_server_stepper_1.default]);
22
+ const result = await (0, lib_1.testWithDefaults)([feature], [web_server_stepper_1.default]);
26
23
  expect(result.ok).toBe(true);
27
24
  });
28
25
  it("doesn't permit different static mount", async () => {
29
26
  const feature = { path: '/features/test.feature', content: `serve files from test\nserve files from fails\n` };
30
- const { result } = await lib_1.testWithDefaults([feature], [web_server_stepper_1.default]);
27
+ const result = await (0, lib_1.testWithDefaults)([feature], [web_server_stepper_1.default]);
31
28
  expect(result.ok).toBe(false);
32
29
  });
33
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"web-server-stepper.test.js","sourceRoot":"","sources":["../src/web-server-stepper.test.ts"],"names":[],"mappings":";;;;;AAAA,4DAA+B;AAE/B,yDAAoE;AAEpE,8EAA2C;AAE3C,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAA;QACtF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,oBAAK,CAAC,gCAAgC,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAA;QACvF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAA;QAC7G,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAA;QAC9G,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,CAAC,CAAC,CAAC;QAE/D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"web-server-stepper.test.js","sourceRoot":"","sources":["../src/web-server-stepper.test.ts"],"names":[],"mappings":";;;;;AAAA,yDAAmE;AACnE,+EAAsD;AAEtD,8EAA0C;AAE1C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,+EAA+E,EAAE,CAAC;QAC7I,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAgB,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,EAAE,kBAAO,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAA;QACvF,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAgB,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,CAAC,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAA;QAC7G,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAgB,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,CAAC,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAA;QAC9G,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAgB,EAAC,CAAC,OAAO,CAAC,EAAE,CAAC,4BAAM,CAAC,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haibun/web-server-express",
3
- "version": "1.1.0",
3
+ "version": "1.8.1",
4
4
  "description": "",
5
5
  "main": "build/web-server-stepper.js",
6
6
  "files": [
@@ -16,10 +16,8 @@
16
16
  "license": "ISC",
17
17
  "dependencies": {
18
18
  "@types/cookie-parser": "^1.4.2",
19
- "@types/node-fetch": "^2.5.10",
20
19
  "cookie-parser": "^1.4.5",
21
- "express": "^4.17.1",
22
- "node-fetch": "^2.6.1"
20
+ "express": "^4.17.1"
23
21
  },
24
22
  "devDependencies": {
25
23
  "@types/express": "^4.17.12",
@@ -39,4 +37,4 @@
39
37
  "ts-node": "^10.0.0",
40
38
  "tslint": "^6.1.3"
41
39
  }
42
- }
40
+ }