@mojojs/core 0.18.0 → 0.19.3

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.
Files changed (139) hide show
  1. package/lib/app.d.ts +117 -4
  2. package/lib/app.js +105 -8
  3. package/lib/app.js.map +1 -1
  4. package/lib/body/params.d.ts +6 -0
  5. package/lib/body/params.js +6 -0
  6. package/lib/body/params.js.map +1 -1
  7. package/lib/body.d.ts +48 -0
  8. package/lib/body.js +45 -0
  9. package/lib/body.js.map +1 -1
  10. package/lib/cli/create-full-app.d.ts +3 -0
  11. package/lib/cli/create-full-app.js +3 -0
  12. package/lib/cli/create-full-app.js.map +1 -1
  13. package/lib/cli/create-lite-app.d.ts +3 -0
  14. package/lib/cli/create-lite-app.js +3 -0
  15. package/lib/cli/create-lite-app.js.map +1 -1
  16. package/lib/cli/eval.d.ts +3 -0
  17. package/lib/cli/eval.js +3 -0
  18. package/lib/cli/eval.js.map +1 -1
  19. package/lib/cli/get.d.ts +3 -0
  20. package/lib/cli/get.js +3 -0
  21. package/lib/cli/get.js.map +1 -1
  22. package/lib/cli/repl.d.ts +3 -0
  23. package/lib/cli/repl.js +3 -0
  24. package/lib/cli/repl.js.map +1 -1
  25. package/lib/cli/routes.d.ts +3 -0
  26. package/lib/cli/routes.js +3 -0
  27. package/lib/cli/routes.js.map +1 -1
  28. package/lib/cli/server.d.ts +3 -0
  29. package/lib/cli/server.js +3 -0
  30. package/lib/cli/server.js.map +1 -1
  31. package/lib/cli/version.d.ts +3 -0
  32. package/lib/cli/version.js +3 -0
  33. package/lib/cli/version.js.map +1 -1
  34. package/lib/cli.d.ts +15 -0
  35. package/lib/cli.js +15 -0
  36. package/lib/cli.js.map +1 -1
  37. package/lib/context.d.ts +99 -0
  38. package/lib/context.js +84 -0
  39. package/lib/context.js.map +1 -1
  40. package/lib/core.d.ts +3 -0
  41. package/lib/core.js +3 -0
  42. package/lib/core.js.map +1 -1
  43. package/lib/hooks.d.ts +9 -0
  44. package/lib/hooks.js +9 -0
  45. package/lib/hooks.js.map +1 -1
  46. package/lib/logger.d.ts +69 -0
  47. package/lib/logger.js +63 -0
  48. package/lib/logger.js.map +1 -1
  49. package/lib/mime.d.ts +14 -0
  50. package/lib/mime.js +39 -9
  51. package/lib/mime.js.map +1 -1
  52. package/lib/mock/request.d.ts +3 -0
  53. package/lib/mock/request.js +3 -0
  54. package/lib/mock/request.js.map +1 -1
  55. package/lib/mock/response.d.ts +3 -0
  56. package/lib/mock/response.js +3 -0
  57. package/lib/mock/response.js.map +1 -1
  58. package/lib/plugins/default-helpers.d.ts +5 -0
  59. package/lib/plugins/default-helpers.js +18 -0
  60. package/lib/plugins/default-helpers.js.map +1 -0
  61. package/lib/plugins/exception-helpers.d.ts +3 -0
  62. package/lib/plugins/exception-helpers.js +3 -0
  63. package/lib/plugins/exception-helpers.js.map +1 -1
  64. package/lib/plugins/header-conditions.d.ts +3 -0
  65. package/lib/plugins/header-conditions.js +3 -0
  66. package/lib/plugins/header-conditions.js.map +1 -1
  67. package/lib/plugins/json-config.d.ts +3 -0
  68. package/lib/plugins/json-config.js +3 -0
  69. package/lib/plugins/json-config.js.map +1 -1
  70. package/lib/plugins/mt-engine.d.ts +3 -0
  71. package/lib/plugins/mt-engine.js +4 -1
  72. package/lib/plugins/mt-engine.js.map +1 -1
  73. package/lib/plugins/view-helpers.d.ts +3 -0
  74. package/lib/plugins/view-helpers.js +3 -12
  75. package/lib/plugins/view-helpers.js.map +1 -1
  76. package/lib/plugins/yaml-config.d.ts +3 -0
  77. package/lib/plugins/yaml-config.js +3 -0
  78. package/lib/plugins/yaml-config.js.map +1 -1
  79. package/lib/renderer.d.ts +38 -0
  80. package/lib/renderer.js +38 -0
  81. package/lib/renderer.js.map +1 -1
  82. package/lib/router/pattern.d.ts +33 -0
  83. package/lib/router/pattern.js +24 -0
  84. package/lib/router/pattern.js.map +1 -1
  85. package/lib/router/plan.d.ts +15 -0
  86. package/lib/router/plan.js +15 -0
  87. package/lib/router/plan.js.map +1 -1
  88. package/lib/router/route.d.ts +83 -0
  89. package/lib/router/route.js +83 -0
  90. package/lib/router/route.js.map +1 -1
  91. package/lib/router.d.ts +39 -3
  92. package/lib/router.js +47 -10
  93. package/lib/router.js.map +1 -1
  94. package/lib/server/cookie.d.ts +6 -0
  95. package/lib/server/cookie.js +6 -0
  96. package/lib/server/cookie.js.map +1 -1
  97. package/lib/server.d.ts +21 -0
  98. package/lib/server.js +15 -1
  99. package/lib/server.js.map +1 -1
  100. package/lib/session.d.ts +35 -0
  101. package/lib/session.js +35 -0
  102. package/lib/session.js.map +1 -1
  103. package/lib/static.d.ts +22 -0
  104. package/lib/static.js +22 -0
  105. package/lib/static.js.map +1 -1
  106. package/lib/user-agent/cookie-jar.d.ts +12 -0
  107. package/lib/user-agent/cookie-jar.js +12 -0
  108. package/lib/user-agent/cookie-jar.js.map +1 -1
  109. package/lib/user-agent/mock.d.ts +15 -0
  110. package/lib/user-agent/mock.js +15 -0
  111. package/lib/user-agent/mock.js.map +1 -1
  112. package/lib/user-agent/response.d.ts +27 -0
  113. package/lib/user-agent/response.js +27 -0
  114. package/lib/user-agent/response.js.map +1 -1
  115. package/lib/user-agent/test.d.ts +115 -2
  116. package/lib/user-agent/test.js +123 -10
  117. package/lib/user-agent/test.js.map +1 -1
  118. package/lib/user-agent/transport/http.d.ts +12 -0
  119. package/lib/user-agent/transport/http.js +12 -0
  120. package/lib/user-agent/transport/http.js.map +1 -1
  121. package/lib/user-agent/transport/https.d.ts +3 -0
  122. package/lib/user-agent/transport/https.js +3 -0
  123. package/lib/user-agent/transport/https.js.map +1 -1
  124. package/lib/user-agent/transport/ws.d.ts +6 -0
  125. package/lib/user-agent/transport/ws.js +6 -0
  126. package/lib/user-agent/transport/ws.js.map +1 -1
  127. package/lib/util.d.ts +31 -1
  128. package/lib/util.js +30 -0
  129. package/lib/util.js.map +1 -1
  130. package/lib/validator/result.d.ts +9 -0
  131. package/lib/validator/result.js +3 -0
  132. package/lib/validator/result.js.map +1 -1
  133. package/lib/validator.d.ts +9 -0
  134. package/lib/validator.js +9 -0
  135. package/lib/validator.js.map +1 -1
  136. package/lib/websocket.d.ts +18 -0
  137. package/lib/websocket.js +12 -0
  138. package/lib/websocket.js.map +1 -1
  139. package/package.json +3 -3
@@ -1,5 +1,8 @@
1
1
  import crypto from 'crypto';
2
2
  import * as util from '../util.js';
3
+ /**
4
+ * Minimal application generator command.
5
+ */
3
6
  export default async function genLiteAppCommand(app, args) {
4
7
  const name = args[1] ?? 'index.js';
5
8
  process.stdout.write('Generating application directory struture:\n');
@@ -1 +1 @@
1
- {"version":3,"file":"create-full-app.js","sourceRoot":"","sources":["../../src/cli/create-full-app.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAQ,EAAE,IAAc;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;IAEnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACrE,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;IACrG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAExC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;IAEjE,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IAElE,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAE1D,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAEpD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC;AAED,iBAAiB,CAAC,WAAW,GAAG,wCAAwC,CAAC;AACzE,iBAAiB,CAAC,KAAK,GAAG;;;;;;;CAOzB,CAAC;AAEF,MAAM,UAAU,GAAG;;;CAGlB,CAAC;AAEF,MAAM,OAAO,GAAG;;;;;;;;;;CAUf,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;;;;;CAQhB,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;CAOd,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;CAUlB,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;;;;;;CAYd,CAAC"}
1
+ {"version":3,"file":"create-full-app.js","sourceRoot":"","sources":["../../src/cli/create-full-app.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAQ,EAAE,IAAc;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;IAEnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACrE,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;IACrG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAExC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;IAEjE,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,aAAa,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IAElE,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAE1D,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAEpD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,CAAC;AAED,iBAAiB,CAAC,WAAW,GAAG,wCAAwC,CAAC;AACzE,iBAAiB,CAAC,KAAK,GAAG;;;;;;;CAOzB,CAAC;AAEF,MAAM,UAAU,GAAG;;;CAGlB,CAAC;AAEF,MAAM,OAAO,GAAG;;;;;;;;;;CAUf,CAAC;AAEF,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC;AAEF,MAAM,QAAQ,GAAG;;;;;;;;CAQhB,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;CAOd,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;CAUlB,CAAC;AAEF,MAAM,MAAM,GAAG;;;;;;;;;;;;CAYd,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { App } from '../app.js';
2
+ /**
3
+ * Application generator command.
4
+ */
2
5
  declare function genLiteAppCommand(app: App, args: string[]): Promise<void>;
3
6
  declare namespace genLiteAppCommand {
4
7
  var description: string;
@@ -1,4 +1,7 @@
1
1
  import * as util from '../util.js';
2
+ /**
3
+ * Application generator command.
4
+ */
2
5
  export default async function genLiteAppCommand(app, args) {
3
6
  const stdout = process.stdout;
4
7
  stdout.write('Generating single file application:\n');
@@ -1 +1 @@
1
- {"version":3,"file":"create-lite-app.js","sourceRoot":"","sources":["../../src/cli/create-lite-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAQ,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,iBAAiB,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACjE,iBAAiB,CAAC,KAAK,GAAG;;;;;;;CAOzB,CAAC;AAEF,MAAM,GAAG,GAAG;;;CAGX,CAAC;AAEF,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCf,CAAC"}
1
+ {"version":3,"file":"create-lite-app.js","sourceRoot":"","sources":["../../src/cli/create-lite-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAQ,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,iBAAiB,CAAC,WAAW,GAAG,gCAAgC,CAAC;AACjE,iBAAiB,CAAC,KAAK,GAAG;;;;;;;CAOzB,CAAC;AAEF,MAAM,GAAG,GAAG;;;CAGX,CAAC;AAEF,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCf,CAAC"}
package/lib/cli/eval.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  import type { MojoApp } from '../types.js';
2
+ /**
3
+ * Eval command.
4
+ */
2
5
  declare function evalCommand(app: MojoApp, args: string[]): Promise<void>;
3
6
  declare namespace evalCommand {
4
7
  var description: string;
package/lib/cli/eval.js CHANGED
@@ -1,4 +1,7 @@
1
1
  import nopt from 'nopt';
2
+ /**
3
+ * Eval command.
4
+ */
2
5
  export default async function evalCommand(app, args) {
3
6
  const parsed = nopt({ verbose: Boolean }, { v: '--verbose' }, args, 1);
4
7
  const output = await eval('(async () => (' + parsed.argv.remain[0] + '))()');
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CAAC,GAAY,EAAE,IAAc;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,EAAC,CAAC,EAAE,WAAW,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACzD,WAAW,CAAC,KAAK,GAAG;;;;;;;;;CASnB,CAAC"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/cli/eval.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CAAC,GAAY,EAAE,IAAc;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,EAAC,CAAC,EAAE,WAAW,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACzD,WAAW,CAAC,KAAK,GAAG;;;;;;;;;CASnB,CAAC"}
package/lib/cli/get.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  import type { MojoApp } from '../types.js';
2
+ /**
3
+ * Get command.
4
+ */
2
5
  declare function getCommand(app: MojoApp, args: string[]): Promise<void>;
3
6
  declare namespace getCommand {
4
7
  var description: string;
package/lib/cli/get.js CHANGED
@@ -1,5 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import nopt from 'nopt';
3
+ /**
4
+ * Get command.
5
+ */
3
6
  export default async function getCommand(app, args) {
4
7
  const parsed = nopt({ body: String, header: [String, Array], insecure: Boolean, method: String, redirect: Boolean, verbose: Boolean }, { b: '--body', H: '--header', k: '--insecure', X: '--method', r: '--redirect', v: '--verbose' }, args, 1);
5
8
  const argv = parsed.argv;
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/cli/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/cli/get.ts"],"names":[],"mappings":"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"}
package/lib/cli/repl.d.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  import type { MojoApp } from '../types.js';
2
+ /**
3
+ * Repl command.
4
+ */
2
5
  declare function replCommand(app: MojoApp): Promise<void>;
3
6
  declare namespace replCommand {
4
7
  var description: string;
package/lib/cli/repl.js CHANGED
@@ -1,4 +1,7 @@
1
1
  import repl from 'repl';
2
+ /**
3
+ * Repl command.
4
+ */
2
5
  export default async function replCommand(app) {
3
6
  repl.start().context.app = app;
4
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CAAC,GAAY;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AACjC,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACzD,WAAW,CAAC,KAAK,GAAG;;;;;;CAMnB,CAAC"}
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CAAC,GAAY;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AACjC,CAAC;AAED,WAAW,CAAC,WAAW,GAAG,8BAA8B,CAAC;AACzD,WAAW,CAAC,KAAK,GAAG;;;;;;CAMnB,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { MojoApp } from '../types.js';
2
+ /**
3
+ * Routes command.
4
+ */
2
5
  declare function routesCommand(app: MojoApp, args: string[]): Promise<void>;
3
6
  declare namespace routesCommand {
4
7
  var description: string;
package/lib/cli/routes.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import { tablify } from '../util.js';
2
2
  import chalk from 'chalk';
3
3
  import nopt from 'nopt';
4
+ /**
5
+ * Routes command.
6
+ */
4
7
  export default async function routesCommand(app, args) {
5
8
  const parsed = nopt({ verbose: Boolean }, { v: '--verbose' }, args, 1);
6
9
  const table = [];
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/cli/routes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,EAAC,CAAC,EAAE,WAAW,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,uBAAuB,CAAC;AACpD,aAAa,CAAC,KAAK,GAAG;;;;;;;;CAQrB,CAAC;AAEF,SAAS,IAAI,CAAC,KAAqB,EAAE,KAAa,EAAE,IAAgB,EAAE,OAAgB;IACpF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEf,UAAU;IACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzG,OAAO;IACP,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC;IAEjH,kBAAkB;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAC,CAAC,CAAC;IACrD,IAAI,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,WAAW;IACX,KAAK,EAAE,CAAC;IACR,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,KAAK,EAAE,CAAC;AACV,CAAC"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/cli/routes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,EAAC,CAAC,EAAE,WAAW,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,uBAAuB,CAAC;AACpD,aAAa,CAAC,KAAK,GAAG;;;;;;;;CAQrB,CAAC;AAEF,SAAS,IAAI,CAAC,KAAqB,EAAE,KAAa,EAAE,IAAgB,EAAE,OAAgB;IACpF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEf,UAAU;IACV,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzG,OAAO;IACP,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC;IAEjH,kBAAkB;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAC,CAAC,CAAC;IACrD,IAAI,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,WAAW;IACX,KAAK,EAAE,CAAC;IACR,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,KAAK,EAAE,CAAC;AACV,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { MojoApp } from '../types.js';
2
+ /**
3
+ * Server command.
4
+ */
2
5
  declare function serverCommand(app: MojoApp, args: string[]): Promise<void>;
3
6
  declare namespace serverCommand {
4
7
  var description: string;
package/lib/cli/server.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import { Server } from '../server.js';
2
2
  import nopt from 'nopt';
3
3
  const EVENTS = ['SIGINT', 'SIGTERM', 'SIGUSR2'];
4
+ /**
5
+ * Server command.
6
+ */
4
7
  export default async function serverCommand(app, args) {
5
8
  const parsed = nopt({
6
9
  cluster: Boolean,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CACjB;QACE,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,MAAM;KAChB,EACD,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAC,EAC3E,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,KAAK;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACjE,aAAa,CAAC,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBrB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CACjB;QACE,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,MAAM;KAChB,EACD,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAC,EAC3E,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,KAAK;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACjE,aAAa,CAAC,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBrB,CAAC"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Version command.
3
+ */
1
4
  declare function versionCommand(): Promise<void>;
2
5
  declare namespace versionCommand {
3
6
  var description: string;
@@ -1,5 +1,8 @@
1
1
  import { version } from '../core.js';
2
2
  import { tablify } from '../util.js';
3
+ /**
4
+ * Version command.
5
+ */
3
6
  export default async function versionCommand() {
4
7
  const table = [
5
8
  ['node', `(${process.version}, ${process.platform})`],
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc;IAC1C,MAAM,KAAK,GAAG;QACZ,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,CAAC;QACrD,CAAC,SAAS,EAAE,IAAI,OAAiB,GAAG,CAAC;KACtC,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,cAAc,CAAC,WAAW,GAAG,cAAc,CAAC;AAC5C,cAAc,CAAC,KAAK,GAAG;;;;;;CAMtB,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc;IAC1C,MAAM,KAAK,GAAG;QACZ,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,CAAC;QACrD,CAAC,SAAS,EAAE,IAAI,OAAiB,GAAG,CAAC;KACtC,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,cAAc,CAAC,WAAW,GAAG,cAAc,CAAC;AAC5C,cAAc,CAAC,KAAK,GAAG;;;;;;CAMtB,CAAC"}
package/lib/cli.d.ts CHANGED
@@ -4,13 +4,28 @@ interface Command {
4
4
  description: string;
5
5
  usage: string;
6
6
  }
7
+ /**
8
+ * Command line interface class.
9
+ */
7
10
  export declare class CLI {
11
+ /**
12
+ * Paths to search for commands.
13
+ */
8
14
  commandPaths: string[];
15
+ /**
16
+ * Registered commands.
17
+ */
9
18
  commands: Record<string, Command>;
10
19
  _app: WeakRef<App>;
11
20
  _loaded: boolean | undefined;
12
21
  constructor(app: App);
22
+ /**
23
+ * Add a command.
24
+ */
13
25
  addCommand(name: string, command: Command): void;
26
+ /**
27
+ * Start command line interface.
28
+ */
14
29
  start(command?: string, ...args: string[]): Promise<void>;
15
30
  _listCommands(): Promise<void>;
16
31
  _loadCommands(): Promise<void>;
package/lib/cli.js CHANGED
@@ -1,16 +1,31 @@
1
1
  import * as util from './util.js';
2
2
  import Path from '@mojojs/path';
3
3
  import nopt from 'nopt';
4
+ /**
5
+ * Command line interface class.
6
+ */
4
7
  export class CLI {
5
8
  constructor(app) {
9
+ /**
10
+ * Paths to search for commands.
11
+ */
6
12
  this.commandPaths = [Path.currentFile().sibling('cli').toString()];
13
+ /**
14
+ * Registered commands.
15
+ */
7
16
  this.commands = {};
8
17
  this._loaded = undefined;
9
18
  this._app = new WeakRef(app);
10
19
  }
20
+ /**
21
+ * Add a command.
22
+ */
11
23
  addCommand(name, command) {
12
24
  this.commands[name] = command;
13
25
  }
26
+ /**
27
+ * Start command line interface.
28
+ */
14
29
  async start(command, ...args) {
15
30
  if (this._loaded === undefined)
16
31
  await this._loadCommands();
package/lib/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/lib/context.d.ts CHANGED
@@ -21,14 +21,41 @@ declare interface Context {
21
21
  on: <T extends keyof ContextEvents>(event: T, listener: ContextEvents[T]) => this;
22
22
  emit: <T extends keyof ContextEvents>(event: T, ...args: Parameters<ContextEvents[T]>) => boolean;
23
23
  }
24
+ /**
25
+ * Context class.
26
+ */
24
27
  declare class Context extends EventEmitter {
28
+ /**
29
+ * Application this context belongs to.
30
+ */
25
31
  app: App;
32
+ /**
33
+ * Format for HTTP exceptions.
34
+ */
26
35
  exceptionFormat: string;
36
+ /**
37
+ * WebSocket JSON mode.
38
+ */
27
39
  jsonMode: boolean;
40
+ /**
41
+ * Logger with request id.
42
+ */
28
43
  log: ChildLogger;
44
+ /**
45
+ * Router dispatch plan.
46
+ */
29
47
  plan: Plan | null;
48
+ /**
49
+ * HTTP request information.
50
+ */
30
51
  req: ServerRequest;
52
+ /**
53
+ * HTTP response information.
54
+ */
31
55
  res: ServerResponse;
56
+ /**
57
+ * Non-persistent data storage and exchange for the current request.
58
+ */
32
59
  stash: Record<string, any>;
33
60
  _flash: SessionData | undefined;
34
61
  _params: Params | undefined;
@@ -36,32 +63,104 @@ declare class Context extends EventEmitter {
36
63
  _ws: WeakRef<WebSocket> | null;
37
64
  constructor(app: App, req: http.IncomingMessage, res: http.ServerResponse, options: ServerRequestOptions);
38
65
  [EventEmitter.captureRejectionSymbol](error: Error): void;
66
+ /**
67
+ * Select best possible representation for resource.
68
+ */
39
69
  accepts(allowed?: string[]): string[] | null;
70
+ /**
71
+ * Application config shortcut.
72
+ */
40
73
  get config(): Record<string, any>;
74
+ /**
75
+ * Data storage persistent only for the next request.
76
+ */
41
77
  flash(): Promise<Record<string, any>>;
78
+ /**
79
+ * Handle WebSocket upgrade, used by servers.
80
+ */
42
81
  handleUpgrade(ws: WebSocket): void;
82
+ /**
83
+ * Home directory shortcut.
84
+ */
43
85
  get home(): Path;
86
+ /**
87
+ * Check if WebSocket connection has been accepted.
88
+ */
44
89
  get isAccepted(): boolean;
90
+ /**
91
+ * Check if WebSocket connection has been established.
92
+ */
45
93
  get isEstablished(): boolean;
94
+ /**
95
+ * Check if session is active.
96
+ */
46
97
  get isSessionActive(): boolean;
98
+ /**
99
+ * Check if HTTP request is a WebSocket handshake.
100
+ */
47
101
  get isWebSocket(): boolean;
102
+ /**
103
+ * Accept WebSocket connection and activate JSON mode.
104
+ */
48
105
  json(fn: WebSocketHandler): this;
106
+ /**
107
+ * Model shortcut.
108
+ */
49
109
  get models(): Record<string, any>;
110
+ /**
111
+ * GET and POST parameters.
112
+ */
50
113
  params(options?: BusboyConfig): Promise<Params>;
114
+ /**
115
+ * Accept WebSocket connection.
116
+ */
51
117
  plain(fn: WebSocketHandler): this;
118
+ /**
119
+ * Send `302` redirect response.
120
+ */
52
121
  redirectTo(target: string, options?: {
53
122
  status?: number;
54
123
  values?: Record<string, any>;
55
124
  }): Promise<void>;
125
+ /**
126
+ * Render dynamic content.
127
+ */
56
128
  render(options?: RenderOptions, stash?: Record<string, any>): Promise<boolean>;
129
+ /**
130
+ * Try to render dynamic content to string.
131
+ */
57
132
  renderToString(options: RenderOptions, stash?: Record<string, any>): Promise<string | null>;
133
+ /**
134
+ * Automatically select best possible representation for resource.
135
+ */
58
136
  respondTo(spec: Record<string, MojoAction>): Promise<void>;
137
+ /**
138
+ * Send static file.
139
+ */
59
140
  sendFile(file: Path): Promise<void>;
141
+ /**
142
+ * Get JSON schema validation function.
143
+ */
60
144
  schema(schema: Record<string, any> | string): ValidatorFunction | null;
145
+ /**
146
+ * Persistent data storage for the next few requests.
147
+ */
61
148
  session(): Promise<SessionData>;
149
+ /**
150
+ * HTTP/WebSocket user agent shortcut.
151
+ */
62
152
  get ua(): UserAgent;
153
+ /**
154
+ * Generate URL for route of path.
155
+ */
63
156
  urlFor(target: string | undefined, values?: Record<string, any>): string | null;
157
+ /**
158
+ * Generate URL for static file.
159
+ */
64
160
  urlForFile(path: string): string;
161
+ /**
162
+ * Established WebSocket connection.
163
+ */
65
164
  get ws(): WebSocket | null;
66
165
  _urlForPath(path: string, isWebSocket: boolean): string;
67
166
  }
package/lib/context.js CHANGED
@@ -3,11 +3,23 @@ import { Params } from './body/params.js';
3
3
  import { ServerRequest } from './server/request.js';
4
4
  import { ServerResponse } from './server/response.js';
5
5
  const ABSOLUTE = /^[a-zA-Z][a-zA-Z0-9]*:\/\//;
6
+ /**
7
+ * Context class.
8
+ */
6
9
  class Context extends EventEmitter {
7
10
  constructor(app, req, res, options) {
8
11
  super({ captureRejections: true });
12
+ /**
13
+ * WebSocket JSON mode.
14
+ */
9
15
  this.jsonMode = false;
16
+ /**
17
+ * Router dispatch plan.
18
+ */
10
19
  this.plan = null;
20
+ /**
21
+ * Non-persistent data storage and exchange for the current request.
22
+ */
11
23
  this.stash = {};
12
24
  this._flash = undefined;
13
25
  this._params = undefined;
@@ -22,6 +34,9 @@ class Context extends EventEmitter {
22
34
  [EventEmitter.captureRejectionSymbol](error) {
23
35
  this.exception(error);
24
36
  }
37
+ /**
38
+ * Select best possible representation for resource.
39
+ */
25
40
  accepts(allowed) {
26
41
  const formats = this.app.mime.detect(this.req.headers.accept ?? '');
27
42
  const stash = this.stash;
@@ -32,9 +47,15 @@ class Context extends EventEmitter {
32
47
  const results = formats.filter(format => allowed.includes(format));
33
48
  return results.length > 0 ? results : null;
34
49
  }
50
+ /**
51
+ * Application config shortcut.
52
+ */
35
53
  get config() {
36
54
  return this.app.config;
37
55
  }
56
+ /**
57
+ * Data storage persistent only for the next request.
58
+ */
38
59
  async flash() {
39
60
  if (this._flash === undefined) {
40
61
  const session = await this.session();
@@ -54,33 +75,60 @@ class Context extends EventEmitter {
54
75
  }
55
76
  return this._flash;
56
77
  }
78
+ /**
79
+ * Handle WebSocket upgrade, used by servers.
80
+ */
57
81
  handleUpgrade(ws) {
58
82
  this._ws = new WeakRef(ws);
59
83
  this.emit('connection', ws);
60
84
  ws.on('error', error => this.exception(error));
61
85
  }
86
+ /**
87
+ * Home directory shortcut.
88
+ */
62
89
  get home() {
63
90
  return this.app.home;
64
91
  }
92
+ /**
93
+ * Check if WebSocket connection has been accepted.
94
+ */
65
95
  get isAccepted() {
66
96
  return this.listenerCount('connection') > 0;
67
97
  }
98
+ /**
99
+ * Check if WebSocket connection has been established.
100
+ */
68
101
  get isEstablished() {
69
102
  return this._ws !== null;
70
103
  }
104
+ /**
105
+ * Check if session is active.
106
+ */
71
107
  get isSessionActive() {
72
108
  return this._session !== undefined;
73
109
  }
110
+ /**
111
+ * Check if HTTP request is a WebSocket handshake.
112
+ */
74
113
  get isWebSocket() {
75
114
  return this.req.isWebSocket;
76
115
  }
116
+ /**
117
+ * Accept WebSocket connection and activate JSON mode.
118
+ */
77
119
  json(fn) {
78
120
  this.jsonMode = true;
79
121
  return this.on('connection', fn);
80
122
  }
123
+ /**
124
+ * Model shortcut.
125
+ */
81
126
  get models() {
82
127
  return this.app.models;
83
128
  }
129
+ /**
130
+ * GET and POST parameters.
131
+ */
84
132
  async params(options) {
85
133
  if (this._params === undefined) {
86
134
  const req = this.req;
@@ -91,15 +139,24 @@ class Context extends EventEmitter {
91
139
  }
92
140
  return this._params;
93
141
  }
142
+ /**
143
+ * Accept WebSocket connection.
144
+ */
94
145
  plain(fn) {
95
146
  return this.on('connection', fn);
96
147
  }
148
+ /**
149
+ * Send `302` redirect response.
150
+ */
97
151
  async redirectTo(target, options = {}) {
98
152
  await this.res
99
153
  .status(options.status ?? 302)
100
154
  .set('Location', this.urlFor(target, options.values) ?? '')
101
155
  .send();
102
156
  }
157
+ /**
158
+ * Render dynamic content.
159
+ */
103
160
  async render(options = {}, stash) {
104
161
  if (typeof options === 'string')
105
162
  options = { view: options };
@@ -114,6 +171,9 @@ class Context extends EventEmitter {
114
171
  }
115
172
  return await app.renderer.respond(this, result, { status: options.status });
116
173
  }
174
+ /**
175
+ * Try to render dynamic content to string.
176
+ */
117
177
  async renderToString(options, stash) {
118
178
  if (typeof options === 'string')
119
179
  options = { view: options };
@@ -121,6 +181,9 @@ class Context extends EventEmitter {
121
181
  const result = await this.app.renderer.render(this, options);
122
182
  return result === null ? null : result.output.toString();
123
183
  }
184
+ /**
185
+ * Automatically select best possible representation for resource.
186
+ */
124
187
  async respondTo(spec) {
125
188
  const formats = this.accepts() ?? [];
126
189
  for (const format of formats) {
@@ -135,20 +198,35 @@ class Context extends EventEmitter {
135
198
  }
136
199
  await this.res.status(204).send();
137
200
  }
201
+ /**
202
+ * Send static file.
203
+ */
138
204
  async sendFile(file) {
139
205
  return await this.app.static.serveFile(this, file);
140
206
  }
207
+ /**
208
+ * Get JSON schema validation function.
209
+ */
141
210
  schema(schema) {
142
211
  return this.app.validator.schema(schema);
143
212
  }
213
+ /**
214
+ * Persistent data storage for the next few requests.
215
+ */
144
216
  async session() {
145
217
  if (this._session === undefined)
146
218
  this._session = (await this.app.session.load(this)) ?? {};
147
219
  return this._session;
148
220
  }
221
+ /**
222
+ * HTTP/WebSocket user agent shortcut.
223
+ */
149
224
  get ua() {
150
225
  return this.app.ua;
151
226
  }
227
+ /**
228
+ * Generate URL for route of path.
229
+ */
152
230
  urlFor(target, values) {
153
231
  if (target === undefined || target === 'current') {
154
232
  if (this.plan === null)
@@ -165,11 +243,17 @@ class Context extends EventEmitter {
165
243
  return null;
166
244
  return this._urlForPath(route.render(values), route.hasWebSocket());
167
245
  }
246
+ /**
247
+ * Generate URL for static file.
248
+ */
168
249
  urlForFile(path) {
169
250
  if (ABSOLUTE.test(path))
170
251
  return path;
171
252
  return this.req.baseURL + this.app.static.filePath(path);
172
253
  }
254
+ /**
255
+ * Established WebSocket connection.
256
+ */
173
257
  get ws() {
174
258
  return this._ws?.deref() ?? null;
175
259
  }