@monkeyplus/flow 3.0.2 → 3.0.4

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.
@@ -5,6 +5,6 @@ interface Options {
5
5
  getPath: any;
6
6
  }
7
7
  export declare const registerGenerate: (server: Server, { outputDir, getPath }: Options) => {
8
- runGenerate: ({ assets, ommitAssets }: Flow.GenerateOptions) => Promise<any>;
8
+ runGenerate: ({ assets, ommitAssets }: Flow.GenerateOptions) => Promise<boolean>;
9
9
  };
10
10
  export {};
package/dist/generate.js CHANGED
@@ -108,34 +108,49 @@ const registerGenerate = (server, { outputDir, getPath }) => {
108
108
  for (const file of dirFiles) {
109
109
  const pathFile = path_1.default.join(asset.relativeTo, dir, file);
110
110
  // const nameFile = path.posix.join()
111
- const pathRoute = path_1.default.posix.join('/', asset.prefix, dir, file);
112
- const pathRouteOverride = (_a = asset.override) === null || _a === void 0 ? void 0 : _a[pathRoute];
113
- server.route({
114
- path: pathRouteOverride || pathRoute,
115
- method: 'get',
116
- options: {
117
- plugins: {
118
- generate: {
119
- isAsset: true,
120
- file: pathFile,
121
- type: asset.type,
122
- isRemane: !!pathRouteOverride
111
+ const ext = path_1.default.extname(pathFile);
112
+ // eslint-disable-next-line no-extra-boolean-cast
113
+ if (!!ext) {
114
+ const pathRoute = path_1.default.posix.join('/', asset.prefix, dir, file);
115
+ const pathRouteOverride = (_a = asset.override) === null || _a === void 0 ? void 0 : _a[pathRoute];
116
+ server.route({
117
+ path: pathRouteOverride || pathRoute,
118
+ method: 'get',
119
+ options: {
120
+ plugins: {
121
+ generate: {
122
+ isAsset: true,
123
+ file: pathFile,
124
+ type: asset.type,
125
+ isRemane: !!pathRouteOverride
126
+ }
127
+ }
128
+ },
129
+ handler: {
130
+ file: {
131
+ path: pathFile,
132
+ confine: false
123
133
  }
124
134
  }
125
- },
126
- handler: {
127
- file: {
128
- path: pathFile,
129
- confine: false
135
+ });
136
+ }
137
+ else {
138
+ injectAssets([
139
+ {
140
+ dirs: [path_1.default.posix.join(dir, file)],
141
+ prefix: asset.prefix,
142
+ relativeTo: asset.relativeTo,
143
+ override: asset.override,
144
+ type: 'images'
130
145
  }
131
- }
132
- });
146
+ ]);
147
+ }
133
148
  }
134
149
  }
135
150
  }
136
151
  };
137
152
  const runGenerate = async ({ assets, ommitAssets }) => {
138
- const _assetsApp = [...Object.values(server.app.generate.folders)];
153
+ const _assetsApp = [...Object.values(server.app.flow.generate.folders)];
139
154
  // console.log(_assetsApp);
140
155
  const _assets = [...(assets || []), ..._assetsApp];
141
156
  // const _extendAssets = [...(Object.values(server.app.))]
@@ -157,7 +172,7 @@ const registerGenerate = (server, { outputDir, getPath }) => {
157
172
  const groups = R.groupBy((file) => {
158
173
  return file.type;
159
174
  }, files);
160
- console.log(groups);
175
+ // console.log(groups);
161
176
  for (const type in groups) {
162
177
  utils_1.logger.success('%i %s generated', groups[type].length, type);
163
178
  }
@@ -166,7 +181,7 @@ const registerGenerate = (server, { outputDir, getPath }) => {
166
181
  catch (error) {
167
182
  utils_1.logger.error(error);
168
183
  await fs_extra_1.default.remove(dirOutut);
169
- return error;
184
+ throw new Error(error);
170
185
  }
171
186
  };
172
187
  return { runGenerate };
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
package/dist/helper.js CHANGED
@@ -18,17 +18,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
18
18
  __setModuleDefault(result, mod);
19
19
  return result;
20
20
  };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
21
  Object.defineProperty(exports, "__esModule", { value: true });
25
22
  exports.handlerPage = void 0;
26
- const utils_1 = require("./utils/index");
27
23
  const R = __importStar(require("ramda"));
28
- const path_1 = __importDefault(require("path"));
29
24
  const handlerPage = async (req, h) => {
30
25
  const { configs } = req.server.plugins.flow;
31
- const { flow, content } = req.route.settings.app;
26
+ const { flow } = req.route.settings.app;
32
27
  // console.log(req.server.app.flow.urls);
33
28
  // console.log(req.app);
34
29
  const local = {};
@@ -38,31 +33,29 @@ const handlerPage = async (req, h) => {
38
33
  ...R.pick(['name', 'locale', 'level', 'template', 'bundle'], flow)
39
34
  };
40
35
  const dataContent = {};
41
- if (req.params.url) {
42
- const pathData = path_1.default.posix.join('/', page.locale, content || '', req.params.url);
43
- try {
44
- // @ts-ignore
45
- const data = await (req === null || req === void 0 ? void 0 : req.$content(pathData).fetch());
46
- Object.assign(dataContent, data);
47
- }
48
- catch (error) {
49
- utils_1.logger.warn(error);
50
- }
51
- }
36
+ // if (req.params.url) {
37
+ // }
52
38
  const utils = {
53
- ...req.app.utils,
39
+ ...req.plugins.flow.utils,
54
40
  getLocalUrl: (name) => {
55
41
  return h.getUrl(flow.locale, name);
56
42
  },
57
43
  getUrl: h.getUrl
58
44
  };
59
- const contextMethod = { req, h, page, dataContent };
45
+ const contextMethod = {
46
+ req,
47
+ h,
48
+ page,
49
+ extensions: Object.freeze(req.plugins.flow.extensions),
50
+ global: Object.freeze(req.plugins.flow.global),
51
+ utils: Object.freeze(utils)
52
+ };
60
53
  const seo = {
61
54
  ...flow.seo,
62
55
  ...req.pre.seo,
63
56
  url: configs.url,
64
- pageUrl: `${configs.url}${page.path}`,
65
- utils
57
+ pageUrl: `${configs.url}${page.path}`
58
+ // utils
66
59
  };
67
60
  if (flow.runSharedContext) {
68
61
  const _context = await flow.runSharedContext(contextMethod);
@@ -78,11 +71,11 @@ const handlerPage = async (req, h) => {
78
71
  bundle: flow.bundle,
79
72
  template: flow.template
80
73
  },
81
- context: { ...local, ...req.app.local },
74
+ context: { ...local, ...req.plugins.flow.local },
82
75
  seo,
83
76
  page,
84
77
  utils: {},
85
- global: { ...global, ...req.app.global }
78
+ global: { ...global, ...req.plugins.flow.global }
86
79
  };
87
80
  if (req.query.context) {
88
81
  context.utils = Object.keys(utils);
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,27 +1,22 @@
1
1
  import { Plugin } from '@hapi/hapi';
2
2
  import { PageInfo } from '@monkeyplus/flow-core';
3
- import { Flow, FlowOptions, GenerateOptions, GenerateFolder } from "../types/index";
4
- export { definePage } from "./pages";
5
- export { DefinePage, RunDefinePage, OptionsHapiPage, RunPreDefinePage, FlowOptions, GenerateFolder } from "../types/index";
3
+ import { Flow, FlowOptions, GenerateOptions, FlowExtensions } from "../types/index";
4
+ import { definePage } from "./pages";
5
+ export { definePage };
6
+ export { RunDefinePage, OptionsHapiPage, RunPreDefinePage, FlowOptions, GenerateFolder, Extension, Flow, FlowExtensions, FlowPluginExtension, FlowPluginUtils, FlowPluginGlobal, FlowPluginLocal } from "../types/index";
6
7
  export declare const plugin: Plugin<FlowOptions>;
7
8
  declare module '@hapi/hapi' {
8
9
  interface ServerApplicationState {
9
10
  flow: Flow.AppState;
10
- generate: {
11
- folders: Record<string, GenerateFolder>;
12
- };
13
11
  }
14
12
  interface RouteOptionsApp {
15
13
  flow: PageInfo;
16
- content?: string;
17
14
  }
18
15
  interface HandlerDecorations {
19
16
  flow?: Flow.HandlerOptions;
20
17
  }
21
- interface RequestApplicationState {
22
- local: any;
23
- global: any;
24
- utils: any;
18
+ interface PluginsStates {
19
+ flow: Flow.PluginState;
25
20
  }
26
21
  interface ResponseToolkit {
27
22
  getUrl: (locale: string, name: string) => string;
@@ -29,6 +24,7 @@ declare module '@hapi/hapi' {
29
24
  interface PluginSpecificConfiguration {
30
25
  flow?: {
31
26
  proxy?: boolean;
27
+ extensions?: FlowExtensions;
32
28
  };
33
29
  generate?: GenerateOptions;
34
30
  }
package/dist/index.js CHANGED
@@ -12,8 +12,7 @@ const helper_1 = require("./helper");
12
12
  const path_1 = __importDefault(require("path"));
13
13
  const generate_1 = require("./generate");
14
14
  const pages_1 = require("./pages");
15
- var pages_2 = require("./pages");
16
- Object.defineProperty(exports, "definePage", { enumerable: true, get: function () { return pages_2.definePage; } });
15
+ Object.defineProperty(exports, "definePage", { enumerable: true, get: function () { return pages_1.definePage; } });
17
16
  // const logger = require('consola').withScope('@monkeyplus/flow');
18
17
  const isProduction = process.env.NODE_ENV === 'production';
19
18
  exports.plugin = {
@@ -24,24 +23,78 @@ exports.plugin = {
24
23
  const config = utils_1.getConfigs(server, _options);
25
24
  // console.log(config);
26
25
  server.expose('configs', config);
27
- server.expose('getPath', (...paths) => {
28
- server.log(['warn'], 'This method is deprecated');
29
- return path_1.default.join(config.relativeTo, ...paths);
26
+ /**
27
+ *
28
+ */
29
+ const state = {
30
+ redirects: {},
31
+ pages: {},
32
+ truncates: {},
33
+ urls: {},
34
+ dynamicPages: {},
35
+ extensions: {},
36
+ generate: {
37
+ folders: {}
38
+ }
39
+ };
40
+ // const stateExtension: any = {};
41
+ // const stateGenerate = {
42
+ // folders: {}
43
+ // };
44
+ // const dynamicContent: Flow.DynamicContent = {};
45
+ server.app.flow = state;
46
+ // server.app.generate = stateGenerate;
47
+ /**
48
+ *
49
+ */
50
+ const helpers = {
51
+ addRedirect: (key, urlPath) => {
52
+ state.redirects[key] = urlPath;
53
+ },
54
+ addUrl: (key, url) => {
55
+ if (/\{url?(.+)\}/.test(url.url)) {
56
+ return void 0;
57
+ }
58
+ if (state.urls[key]) {
59
+ utils_1.logger.warn('The namePage %s already exist', state.urls[key]);
60
+ }
61
+ else {
62
+ state.urls[key] = url;
63
+ }
64
+ }
65
+ };
66
+ /**
67
+ *
68
+ */
69
+ server.ext('onRequest', (req, h) => {
70
+ /**
71
+ * Initize states route
72
+ */
73
+ req.plugins.flow = {
74
+ global: {},
75
+ local: {},
76
+ //@ts-ignore
77
+ utils: {},
78
+ //@ts-ignore
79
+ extensions: {}
80
+ };
81
+ const pathRedirect = state.redirects[req.path];
82
+ if (state.truncates[req.path]) {
83
+ return h.redirect('/').takeover();
84
+ }
85
+ if (pathRedirect) {
86
+ return h.redirect(pathRedirect).takeover();
87
+ }
88
+ return h.continue;
30
89
  });
31
- const redirects = {};
32
- const urls = {};
33
- // const routes: Record<string, boolean> = {};
34
- const pages = {};
35
- const truncates = {};
36
- const dynamicContent = {};
37
- const dynamicPages = {};
38
- server.app.flow = { redirects, urls, pages, truncates, dynamicPages };
39
- server.app.generate = { folders: {} };
90
+ /**
91
+ *
92
+ */
40
93
  server.decorate('toolkit', 'getUrl', (_locale, _name) => {
41
94
  // console.log('locale: %s, name:%s', _locale, _name);
42
95
  try {
43
96
  const pageName = path_1.default.posix.join(_locale, _name);
44
- const page = urls[pageName];
97
+ const page = state.urls[pageName];
45
98
  if (page) {
46
99
  return page.url;
47
100
  }
@@ -55,55 +108,27 @@ exports.plugin = {
55
108
  return '/';
56
109
  }
57
110
  });
58
- server.ext('onRequest', (req, h) => {
59
- // console.log(req.path);
60
- // console.log(req.app);
61
- req.app.global = {};
62
- req.app.local = {};
63
- req.app.utils = {};
64
- // req.app.
65
- const pathRedirect = redirects[req.path];
66
- if (truncates[req.path]) {
67
- return h.redirect('/').takeover();
68
- }
69
- if (pathRedirect) {
70
- return h.redirect(pathRedirect).takeover();
71
- }
72
- return h.continue;
73
- });
74
- const addRedirect = (key, urlPath) => {
75
- redirects[key] = urlPath;
76
- };
77
- const addUrl = (key, url) => {
78
- // console.log(key, urlPath);
79
- if (/\{url?(.+)\}/.test(url.url)) {
80
- return 0;
81
- }
82
- if (urls[key]) {
83
- utils_1.logger.warn('The namePage %s already exist', urls[key]);
84
- }
85
- else {
86
- urls[key] = url;
87
- }
88
- // console.log(urls);
89
- };
90
111
  const flowDecorate = (route, options) => {
91
- var _a, _b, _c;
92
- // route.settings.plugins?
112
+ var _a, _b, _c, _d, _e, _f;
113
+ // route.settings.
114
+ // route.settings.
115
+ // route.settings.
93
116
  const { plugins, app } = route.settings;
94
117
  Object.assign(plugins, { generate: '.html' });
95
118
  const flow = (_a = route.settings.app) === null || _a === void 0 ? void 0 : _a.flow;
96
- // console.log(route);
97
- if (flow) {
98
- addUrl(flow.name, {
119
+ const runCommons = (pageInfo) => {
120
+ helpers.addUrl(pageInfo.name, {
99
121
  url: route.path,
100
- locale: flow.locale,
101
- name: flow.name,
102
- originalName: flow.originName
122
+ locale: pageInfo.locale,
123
+ name: pageInfo.name,
124
+ originalName: pageInfo.originName
103
125
  });
104
- if (flow.redirect) {
105
- addRedirect(flow.redirect, route.path);
126
+ if (pageInfo.redirect) {
127
+ helpers.addRedirect(pageInfo.redirect, route.path);
106
128
  }
129
+ };
130
+ if (flow) {
131
+ runCommons(flow);
107
132
  }
108
133
  else {
109
134
  const routes = flow_core_1.definePages({
@@ -121,53 +146,51 @@ exports.plugin = {
121
146
  { locale: options.locale || config.locale, url: route.path }
122
147
  ]);
123
148
  const pageInfo = routes[0];
124
- if (pageInfo.redirect) {
125
- addRedirect(pageInfo.redirect, route.path);
126
- }
127
- addUrl(pageInfo.name, {
128
- url: route.path,
129
- locale: pageInfo.locale,
130
- name: pageInfo.name,
131
- originalName: pageInfo.originName
132
- });
149
+ runCommons(pageInfo);
133
150
  Object.assign(app, { flow: pageInfo, content: options.content });
134
151
  }
152
+ /**
153
+ *
154
+ */
135
155
  if (isProduction && !((_c = (_b = route.settings.plugins) === null || _b === void 0 ? void 0 : _b.flow) === null || _c === void 0 ? void 0 : _c.proxy)) {
136
- truncates[route.path] = route.path;
156
+ state.truncates[route.path] = route.path;
137
157
  }
138
- if (app === null || app === void 0 ? void 0 : app.content) {
139
- dynamicContent[`${app.flow.locale}${app.content}`] = {
140
- path: route.path,
141
- page: app.flow
142
- };
158
+ const extensions = ((_d = plugins === null || plugins === void 0 ? void 0 : plugins.flow) === null || _d === void 0 ? void 0 : _d.extensions) || {};
159
+ for (const extension in extensions) {
160
+ // @ts-ignore
161
+ const optionExtension = (_e = plugins === null || plugins === void 0 ? void 0 : plugins.flow) === null || _e === void 0 ? void 0 : _e.extensions[extension];
162
+ const routeMethod = (_f = state.extensions[extension]) === null || _f === void 0 ? void 0 : _f.routeMethod;
163
+ if (routeMethod) {
164
+ routeMethod({ pageInfo: app.flow, route }, optionExtension);
165
+ }
166
+ // console.log(extension, optionExtension);
143
167
  }
168
+ // console.log('Extensions');
169
+ // if (app?.content) {
170
+ // dynamicContent[`${app.flow.locale}${app.content}`] = {
171
+ // path: route.path,
172
+ // page: app.flow
173
+ // };
174
+ // }
144
175
  return isProduction
145
176
  ? (req, h) => h.file(`${config.outputDir}${route.path}.html`)
146
177
  : helper_1.handlerPage;
147
178
  };
148
179
  server.decorate('handler', 'flow', flowDecorate);
180
+ /**
181
+ *
182
+ */
149
183
  const registerPages = (_pages) => {
150
184
  //
151
185
  for (const _route of _pages) {
152
- if (pages[_route.path]) {
186
+ if (state.pages[_route.path]) {
153
187
  utils_1.logger.warn('The route %s alredy exist', _route.path);
154
188
  }
155
189
  else {
156
- pages[_route.path] = _route;
190
+ state.pages[_route.path] = _route;
157
191
  }
158
192
  }
159
193
  };
160
- const addPage = (_page) => {
161
- let _pages;
162
- if (typeof _page === 'function') {
163
- _pages = _page(config);
164
- registerPages(_pages);
165
- }
166
- else {
167
- _pages = pages_1.definePage(_page)()(config);
168
- registerPages(_pages);
169
- }
170
- };
171
194
  const registerRoute = (route) => {
172
195
  const _routes = server.table();
173
196
  const _route = _routes.find((v) => v.path === route.path);
@@ -178,34 +201,55 @@ exports.plugin = {
178
201
  server.route(route);
179
202
  }
180
203
  };
181
- const loadDinamicContent = async (key) => {
182
- try {
183
- //@ts-ignore
184
- const list = await server.$content(key).fetch();
185
- const dRoutes = [];
186
- for (const contentPage of list) {
187
- const singlePage = dynamicContent[key];
188
- const baseUrl = singlePage.path.replace(/\/\{url?(.+)\}/, contentPage.url);
189
- const name = path_1.default.posix.join(singlePage.page.name, contentPage.slug);
190
- const originalName = path_1.default.posix.join(singlePage.page.originName, contentPage.slug);
191
- addUrl(name, {
192
- url: baseUrl,
193
- locale: singlePage.page.locale,
194
- name,
195
- originalName
196
- });
197
- dRoutes.push(baseUrl);
198
- }
199
- dynamicPages[key] = dRoutes;
204
+ const addPage = (_page) => {
205
+ let _pages;
206
+ if (typeof _page === 'function') {
207
+ _pages = _page(config);
208
+ registerPages(_pages);
200
209
  }
201
- catch (error) {
202
- utils_1.logger.warn(error);
210
+ else {
211
+ _pages = pages_1.definePage(_page)()(config);
212
+ registerPages(_pages);
203
213
  }
204
214
  };
215
+ // const loadDinamicContent = async (key: string) => {
216
+ // interface DPage {
217
+ // url: string;
218
+ // slug: string;
219
+ // name?: string;
220
+ // }
221
+ // try {
222
+ // //@ts-ignore
223
+ // const list = await server.$content(key).fetch<DPage[]>();
224
+ // const dRoutes: string[] = [];
225
+ // for (const contentPage of list) {
226
+ // const singlePage = dynamicContent[key];
227
+ // const baseUrl = singlePage.path.replace(
228
+ // /\/\{url?(.+)\}/,
229
+ // contentPage.url
230
+ // );
231
+ // const name = path.posix.join(singlePage.page.name, contentPage.slug);
232
+ // const originalName = path.posix.join(
233
+ // singlePage.page.originName,
234
+ // contentPage.slug
235
+ // );
236
+ // helpers.addUrl(name, {
237
+ // url: baseUrl,
238
+ // locale: singlePage.page.locale,
239
+ // name,
240
+ // originalName
241
+ // });
242
+ // dRoutes.push(baseUrl);
243
+ // }
244
+ // state.dynamicPages[key] = dRoutes;
245
+ // } catch (error) {
246
+ // logger.warn(error);
247
+ // }
248
+ // };
205
249
  const init = async () => {
206
250
  var _a, _b, _c, _d;
207
- for (const key in pages) {
208
- const page = pages[key];
251
+ for (const key in state.pages) {
252
+ const page = state.pages[key];
209
253
  if (isProduction) {
210
254
  if ((_d = (_c = (_b = (_a = page) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.plugins) === null || _c === void 0 ? void 0 : _c.flow) === null || _d === void 0 ? void 0 : _d.proxy) {
211
255
  registerRoute({
@@ -220,11 +264,13 @@ exports.plugin = {
220
264
  registerRoute(page);
221
265
  }
222
266
  }
223
- // /{url*2}
224
- for (const key in dynamicContent) {
225
- await loadDinamicContent(key);
267
+ for (const key in state.extensions) {
268
+ const ext = state.extensions[key];
269
+ if (ext.initMethod) {
270
+ await ext.initMethod({ helpers });
271
+ }
226
272
  }
227
- utils_1.logger.info(`Register %s pages`, `${Object.values(urls).length}`);
273
+ utils_1.logger.info(`Register %s pages`, `${Object.values(state.urls).length}`);
228
274
  };
229
275
  const getPath = (...paths) => path_1.default.join(config.relativeTo, ...paths);
230
276
  const { runGenerate } = generate_1.registerGenerate(server, {