@monkeyplus/flow 3.2.6 → 3.3.0-alpha.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.
Files changed (45) hide show
  1. package/dist/decorators.d.ts +5 -0
  2. package/dist/decorators.js +105 -0
  3. package/dist/decorators.js.map +1 -0
  4. package/dist/generate.d.ts +5 -3
  5. package/dist/generate.js +185 -184
  6. package/dist/generate.js.map +1 -1
  7. package/dist/generator/generator.d.ts +8 -0
  8. package/dist/generator/generator.js +237 -0
  9. package/dist/generator/generator.js.map +1 -0
  10. package/dist/generator/index.d.ts +8 -0
  11. package/dist/generator/index.js +232 -0
  12. package/dist/generator/index.js.map +1 -0
  13. package/dist/generator.d.ts +8 -0
  14. package/dist/generator.js +237 -0
  15. package/dist/generator.js.map +1 -0
  16. package/dist/helper.js +10 -3
  17. package/dist/helper.js.map +1 -1
  18. package/dist/helpers/handler.d.ts +2 -0
  19. package/dist/helpers/handler.js +122 -0
  20. package/dist/helpers/handler.js.map +1 -0
  21. package/dist/helpers/helper.d.ts +2 -0
  22. package/dist/helpers/helper.js +122 -0
  23. package/dist/helpers/helper.js.map +1 -0
  24. package/dist/index.d.ts +17 -4
  25. package/dist/index.js +74 -276
  26. package/dist/index.js.map +1 -1
  27. package/dist/lifeCircle.d.ts +5 -0
  28. package/dist/lifeCircle.js +81 -0
  29. package/dist/lifeCircle.js.map +1 -0
  30. package/dist/pages.d.ts +2 -2
  31. package/dist/pages.js +4 -5
  32. package/dist/pages.js.map +1 -1
  33. package/dist/runMethods.d.ts +9 -0
  34. package/dist/runMethods.js +60 -0
  35. package/dist/runMethods.js.map +1 -0
  36. package/dist/serverInfo.d.ts +7 -0
  37. package/dist/serverInfo.js +36 -0
  38. package/dist/serverInfo.js.map +1 -0
  39. package/dist/utils/index.d.ts +1 -0
  40. package/dist/utils/index.js +3 -1
  41. package/dist/utils/index.js.map +1 -1
  42. package/package.json +3 -3
  43. package/types/flow.d.ts +40 -15
  44. package/types/index.d.ts +4 -2
  45. package/types/interfaces.d.ts +5 -0
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const pages_1 = require("./pages");
4
+ const config_1 = require("./config");
5
+ exports.default = {
6
+ register: (server) => {
7
+ const { flow: state } = server.app;
8
+ const { configs: config } = server.plugins.flow;
9
+ const registerRoute = (route) => {
10
+ const _routes = server.table();
11
+ const _route = _routes.find((v) => v.path === route.path);
12
+ if (_route) {
13
+ config_1.logger.warn(`Duplicate route, the route ${route.path} already exists`);
14
+ }
15
+ else {
16
+ server.route(route);
17
+ }
18
+ };
19
+ const addPage = (_page, dynamic) => {
20
+ const registerPages = (_pages) => {
21
+ for (const _route of _pages) {
22
+ if (state.routes[_route.path]) {
23
+ config_1.logger.warn('The route %s alredy exist', _route.path);
24
+ }
25
+ else {
26
+ state.routes[_route.path] = _route;
27
+ }
28
+ }
29
+ };
30
+ let _pages;
31
+ if (typeof _page === 'function') {
32
+ _pages = _page(config);
33
+ // console.log(_pages);
34
+ registerPages(_pages);
35
+ }
36
+ else {
37
+ // console.log('Otra', _page);
38
+ _pages = pages_1.definePage(_page, dynamic)()(config);
39
+ // console.log(_pages);
40
+ registerPages(_pages);
41
+ }
42
+ };
43
+ const init = async () => {
44
+ const pages = server.app.flow.routes;
45
+ for (const key in pages) {
46
+ const page = pages[key];
47
+ registerRoute(page);
48
+ }
49
+ for (const key in state.extensions) {
50
+ const ext = state.extensions[key];
51
+ if (ext.initMethod) {
52
+ await ext.initMethod();
53
+ }
54
+ }
55
+ config_1.logger.debug(`Register %s pages`, `${Object.values(pages).length}`);
56
+ };
57
+ return { init, addPage };
58
+ }
59
+ };
60
+ //# sourceMappingURL=runMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runMethods.js","sourceRoot":"","sources":["../src/runMethods.ts"],"names":[],"mappings":";;AACA,mCAAqC;AAOrC,qCAAkC;AAElC,kBAAe;IACb,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;QAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;QACnC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAEhD,MAAM,aAAa,GAAG,CAAC,KAAkB,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,MAAM,EAAE;gBACV,eAAM,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC;aACxE;iBAAM;gBACL,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACrB;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CACd,KAAsC,EACtC,OAA6B,EAC7B,EAAE;YACF,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAE,EAAE;gBAC9C,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;oBAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;wBAC7B,eAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;qBACvD;yBAAM;wBACL,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;qBACpC;iBACF;YACH,CAAC,CAAC;YACF,IAAI,MAAM,CAAC;YACX,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvB,uBAAuB;gBAEvB,aAAa,CAAC,MAAM,CAAC,CAAC;aACvB;iBAAM;gBACL,8BAA8B;gBAE9B,MAAM,GAAG,kBAAU,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC9C,uBAAuB;gBAEvB,aAAa,CAAC,MAAM,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,aAAa,CAAC,IAAI,CAAC,CAAC;aACrB;YACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,GAAG,CAAC,UAAU,EAAE;oBAClB,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;iBACxB;aACF;YACD,eAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Server } from '@hapi/hapi';
2
+ declare const _default: {
3
+ register: (server: Server) => {
4
+ serverInfo: () => void;
5
+ };
6
+ };
7
+ export default _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const os_1 = __importDefault(require("os"));
7
+ const config_1 = require("./config");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ exports.default = {
10
+ register: (server) => {
11
+ const serverInfo = () => {
12
+ const interfaces = os_1.default.networkInterfaces();
13
+ const hostname = 'localhost';
14
+ const protocol = 'http';
15
+ console.log('');
16
+ config_1.logger.success(chalk_1.default.green(`Flow v${config_1.pkg.version} dev server running at:`));
17
+ console.log('');
18
+ Object.keys(interfaces).forEach((key) => (interfaces[key] || [])
19
+ .filter((details) => details.family === 'IPv4')
20
+ .map((detail) => {
21
+ return {
22
+ type: detail.address.includes('127.0.0.1')
23
+ ? 'Local: '
24
+ : 'Network: ',
25
+ host: detail.address.replace('127.0.0.1', hostname)
26
+ };
27
+ })
28
+ .forEach(({ type, host }) => {
29
+ const url = `${protocol}://${host}:${chalk_1.default.bold(server.info.port)}`;
30
+ console.log(` > ${type} ${chalk_1.default.cyan(url)}`);
31
+ }));
32
+ };
33
+ return { serverInfo };
34
+ }
35
+ };
36
+ //# sourceMappingURL=serverInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverInfo.js","sourceRoot":"","sources":["../src/serverInfo.ts"],"names":[],"mappings":";;;;;AACA,4CAAoB;AACpB,qCAAqD;AACrD,kDAA0B;AAE1B,kBAAe;IACb,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,UAAU,GAAG,YAAE,CAAC,iBAAiB,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,eAAM,CAAC,OAAO,CACZ,eAAK,CAAC,KAAK,CAAC,SAAS,YAAG,CAAC,OAAO,yBAAyB,CAAC,CAC3D,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;iBAC9C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACd,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACxC,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,WAAW;oBACf,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;iBACpD,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,IAAI,IAAI,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC,CAAC,CACL,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,CAAC;IACxB,CAAC;CACF,CAAC"}
@@ -2,3 +2,4 @@ import { Server } from '@hapi/hapi';
2
2
  import { Flow, FlowOptions } from "../../types";
3
3
  export declare const logger: import("consola").Consola;
4
4
  export declare function getConfigs(server: Server, options: FlowOptions): Flow.Configs;
5
+ export declare const isDinamyc: (url: string) => boolean;
@@ -3,7 +3,7 @@ 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
- exports.getConfigs = exports.logger = void 0;
6
+ exports.isDinamyc = exports.getConfigs = exports.logger = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const consola_1 = __importDefault(require("consola"));
9
9
  exports.logger = consola_1.default.withScope('@monkeyplus/flow');
@@ -45,4 +45,6 @@ function getConfigs(server, options) {
45
45
  }
46
46
  }
47
47
  exports.getConfigs = getConfigs;
48
+ const isDinamyc = (url) => /\{url?(.+)\}/.test(url);
49
+ exports.isDinamyc = isDinamyc;
48
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AACxB,sDAA8B;AACjB,QAAA,MAAM,GAAG,iBAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC5D,qCAA6C;AAC7C,MAAM,QAAQ,GAAiB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,OAAO;IAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAI;IAChD,OAAO,EAAE,CAAC,KAAK,CAAC;CACjB,CAAC;AACF,SAAgB,UAAU,CAAC,MAAc,EAAE,OAAoB;IAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,MAAW,EAAO,EAAE;QACrC,MAAM,MAAM,GAAG,sBAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO;YACL,GAAG,MAAM;YACT,UAAU;YACV,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,gBAAgB,EAAE;SAC/D,CAAC;IACJ,CAAC,CAAC;IACF,IAAI;QACF,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEhE,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,8DAA8D;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE;QACd,gCAAgC;QAChC,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;KACtB;AACH,CAAC;AAvBD,gCAuBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AACxB,sDAA8B;AACjB,QAAA,MAAM,GAAG,iBAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC5D,qCAA6C;AAE7C,MAAM,QAAQ,GAAiB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,OAAO;IAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAI;IAChD,OAAO,EAAE,CAAC,KAAK,CAAC;CACjB,CAAC;AAEF,SAAgB,UAAU,CAAC,MAAc,EAAE,OAAoB;IAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,MAAW,EAAO,EAAE;QACrC,MAAM,MAAM,GAAG,sBAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO;YACL,GAAG,MAAM;YACT,UAAU;YACV,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,gBAAgB,EAAE;SAC/D,CAAC;IACJ,CAAC,CAAC;IACF,IAAI;QACF,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEhE,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,8DAA8D;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE;QACd,gCAAgC;QAChC,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;KACtB;AACH,CAAC;AAvBD,gCAuBC;AAEM,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAAtD,QAAA,SAAS,aAA6C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monkeyplus/flow",
3
- "version": "3.2.6",
3
+ "version": "3.3.0-alpha.1",
4
4
  "description": "Utils hapi",
5
5
  "author": "Andres Navarrete",
6
6
  "license": "MIT",
@@ -21,11 +21,11 @@
21
21
  "@types/ramda": "^0.27.44"
22
22
  },
23
23
  "dependencies": {
24
- "@monkeyplus/flow-core": "^3.2.4",
24
+ "@monkeyplus/flow-core": "^3.3.0-alpha.1",
25
25
  "chalk": "^4.1.2",
26
26
  "consola": "^2.15.3",
27
27
  "fs-extra": "^10.0.0",
28
28
  "ramda": "^0.27.1"
29
29
  },
30
- "gitHead": "b6420b181a78c8eb900379e2f02fd641ae6ffcc4"
30
+ "gitHead": "86d011e4af5036812bfc4389550cc0672d57dd03"
31
31
  }
package/types/flow.d.ts CHANGED
@@ -50,10 +50,8 @@ export namespace Extension {
50
50
  context: RouteContext,
51
51
  options: T
52
52
  ) => void;
53
- export interface InitContext {
54
- helpers: Flow.Helpers;
55
- }
56
- export type InitMethod = (context: InitContext) => Promise<void>;
53
+
54
+ export type InitMethod = () => Promise<void>;
57
55
  export interface Extension {
58
56
  state: any;
59
57
  initMethod?: InitMethod;
@@ -61,18 +59,26 @@ export namespace Extension {
61
59
  }
62
60
  }
63
61
  export namespace Flow {
64
- interface Url {
62
+ interface Page {
65
63
  url: string;
66
64
  locale: string;
67
65
  localeName: string;
68
66
  name: string;
67
+ context?: any;
68
+ dynamicSlug?: string;
69
69
  }
70
- export type Urls = Record<string, Url>;
71
- export type Pages = Record<string, ServerRoute>;
70
+ export type StaticPages = Record<string, Page>;
71
+ export type Routes = Record<string, ServerRoute>;
72
72
  export type Redirects = Record<string, string>;
73
73
  export type Truncates = Record<string, string>;
74
74
  export type DynamicContent = Record<string, { path: string; page: PageInfo }>;
75
- export type DynamicPages = Record<string, string[]>;
75
+ export type DynamicPages = Record<string, () => Promise<StaticPages>>;
76
+ export type Pages = {
77
+ statics: StaticPages;
78
+ redirects: Redirects;
79
+ dynamics: DynamicPages;
80
+ all: StaticPages;
81
+ };
76
82
 
77
83
  export interface PluginState {
78
84
  local: FlowPluginLocal;
@@ -92,15 +98,17 @@ export namespace Flow {
92
98
  addUrl: (key: string, url: Url) => undefined;
93
99
  }
94
100
  export interface AppState {
95
- prePackage: Record<string, () => Promise<unknown>>;
96
- redirects: Redirects;
97
- urls: Urls;
101
+ routes: Routes;
102
+ // redirects: Redirects;
103
+ // urls: Urls;
98
104
  pages: Pages;
99
105
  truncates: Truncates;
100
106
  extensions: Record<string, Extension.Extension>;
101
- dynamicPages: DynamicPages;
107
+ // dynamicPages: DynamicPages;
102
108
  generate: {
103
109
  folders: Record<string, GenerateFolder>;
110
+ beforePackage: Record<string, () => Promise<unknown>>;
111
+ postGenerate: Record<string, () => Promise<any>>;
104
112
  };
105
113
  engines: FlowEngines;
106
114
  plugins: FlowStatePlugins;
@@ -119,14 +127,21 @@ export namespace Flow {
119
127
  export interface GenerateOptions {
120
128
  assets?: GenerateFolder[];
121
129
  ommitAssets?: string[];
130
+ /**
131
+ * Solo aplicable para compilaciones
132
+ */
133
+ virtualGenerate?: boolean;
122
134
  }
123
135
 
124
136
  export interface Decorate {
125
- runPrePackage: () => Promise<unknown>;
137
+ prepagePackage: () => Promise<unknown>;
126
138
  serverInfo: () => void;
127
139
  init: (proxy?: boolean) => Promise<void>;
128
- addPage: (page: RunDefinePage | OptionsHapiPage) => Promise<void>;
129
- getPath: (...path: string[]) => string;
140
+ addPage: (
141
+ page: RunDefinePage | OptionsHapiPage,
142
+ dynamic?: OptionsDynamicPages
143
+ ) => Promise<void>;
144
+ // getPath: (...path: string[]) => string;
130
145
  runGenerate: (options?: GenerateOptions) => Promise<void>;
131
146
  }
132
147
  export interface HandlerOptions {
@@ -161,6 +176,7 @@ export interface ContextHandler {
161
176
  bundle: Bundle;
162
177
  publicPath: string;
163
178
  path: string;
179
+ dynamicSlug: string;
164
180
  };
165
181
  seo: Record<string, any>;
166
182
  /**
@@ -176,11 +192,20 @@ export type RunContextHapi = (ctx: ContextHandler) => Promise<any>;
176
192
  export interface OptionsHapiPage extends OptionsPage {
177
193
  options?: RouteOptions;
178
194
  context?: RunContextHapi;
195
+
179
196
  locales: Record<string, OptionsHapiLocalPage>;
180
197
  rules?: Record<string, unknown>;
181
198
  vhost?: string | string[];
182
199
  extensions?: FlowExtensions;
183
200
  }
201
+ export interface OptionsDynamicPages {
202
+ prefix?: (route: RequestRoute) => string | Promise<string>;
203
+ assign?: string;
204
+ pages: (ctx: {
205
+ server: Server;
206
+ route: RequestRoute;
207
+ }) => Promise<Flow.StaticPages>;
208
+ }
184
209
  // import {} from '..'
185
210
  export type RunDefinePage = (configs: Flow.Configs) => ServerRoute[];
186
211
  export type RunPreDefinePage = (level?: LevelOptions) => RunDefinePage;
package/types/index.d.ts CHANGED
@@ -9,7 +9,8 @@ export {
9
9
  OptionsHapiPage,
10
10
  GenerateFolder,
11
11
  Extension,
12
- ContextHandler
12
+ ContextHandler,
13
+ OptionsDynamicPages
13
14
  } from './flow';
14
15
  export {
15
16
  FlowExtensions,
@@ -22,7 +23,8 @@ export {
22
23
  FlowContextSeo,
23
24
  FlowContextPage,
24
25
  FlowEngines,
25
- FlowStatePlugins
26
+ FlowStatePlugins,
27
+ FlowServerMethods
26
28
  } from './interfaces';
27
29
  export type GenerateOptions =
28
30
  | boolean
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-interface */
2
2
  import { Request, ResponseToolkit } from '@hapi/hapi';
3
+ import { Flow } from './flow';
3
4
  export interface FlowExtensions {}
4
5
  export interface FlowPluginExtension {}
5
6
  export interface FlowPluginUtils {}
@@ -54,3 +55,7 @@ export namespace Contexts {
54
55
 
55
56
  export interface FlowEngines {}
56
57
  export interface FlowStatePlugins {}
58
+ export interface FlowServerMethods {
59
+ pages: () => Promise<Flow.StaticPages>;
60
+ getUrl: (locale: string, name: string) => string;
61
+ }