@monkeyplus/flow 3.2.6 → 3.4.0

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.
@@ -0,0 +1,5 @@
1
+ import { Server } from '@hapi/hapi';
2
+ declare const _default: {
3
+ register: (server: Server) => void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,105 @@
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 flow_core_1 = require("@monkeyplus/flow-core");
7
+ const handler_1 = require("./helpers/handler");
8
+ const path_1 = __importDefault(require("path"));
9
+ const config_1 = require("./config");
10
+ const utils_1 = require("./utils");
11
+ exports.default = {
12
+ register: (server) => {
13
+ const { flow: state } = server.app;
14
+ const { configs, helpers } = server.plugins.flow;
15
+ const flowDecorate = (route, options) => {
16
+ var _a, _b, _c, _d, _e;
17
+ const { plugins, app } = route.settings;
18
+ Object.assign(plugins, { generate: '.html' });
19
+ const flow = app.flow;
20
+ const runCommons = (pageInfo) => {
21
+ helpers.addStaticPage(pageInfo.localeName, {
22
+ url: route.path,
23
+ locale: pageInfo.locale,
24
+ localeName: pageInfo.localeName,
25
+ name: pageInfo.name
26
+ });
27
+ if (pageInfo.redirect) {
28
+ helpers.addRedirect(pageInfo.redirect, route.path);
29
+ }
30
+ };
31
+ if (flow) {
32
+ runCommons(flow);
33
+ }
34
+ else {
35
+ const routes = flow_core_1.definePages({
36
+ name: options.name,
37
+ view: options.view,
38
+ locales: {
39
+ [options.locale || configs.locale]: {}
40
+ },
41
+ context: options.context
42
+ })({
43
+ language: configs.defaultLanguage,
44
+ ubication: configs.defaultUbication,
45
+ publicPath: configs.publicPath
46
+ })().pages([
47
+ { locale: options.locale || configs.locale, url: route.path }
48
+ ]);
49
+ const pageInfo = routes[0];
50
+ runCommons(pageInfo);
51
+ Object.assign(app, { flow: pageInfo, content: options.content });
52
+ }
53
+ /**
54
+ *
55
+ */
56
+ const extensions = ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.flow) === null || _a === void 0 ? void 0 : _a.extensions) || {};
57
+ if (utils_1.isDinamyc(route.path)) {
58
+ if (!((_c = (_b = route.settings.plugins) === null || _b === void 0 ? void 0 : _b.flow) === null || _c === void 0 ? void 0 : _c.dynamic)) {
59
+ throw new Error('Dynamic pages require a method');
60
+ }
61
+ helpers.addDynamicPages(flow.name, ((options) => async () => {
62
+ var _a, _b, _c;
63
+ return (_c = (_b = (_a = route.settings.plugins) === null || _a === void 0 ? void 0 : _a.flow) === null || _b === void 0 ? void 0 : _b.dynamic) === null || _c === void 0 ? void 0 : _c.pages(options);
64
+ })({ server, route }));
65
+ }
66
+ for (const extension in extensions) {
67
+ // @ts-ignore
68
+ const optionExtension = (_d = plugins === null || plugins === void 0 ? void 0 : plugins.flow) === null || _d === void 0 ? void 0 : _d.extensions[extension];
69
+ const routeMethod = (_e = state.extensions[extension]) === null || _e === void 0 ? void 0 : _e.routeMethod;
70
+ if (routeMethod) {
71
+ routeMethod({ pageInfo: app.flow, route }, optionExtension);
72
+ }
73
+ }
74
+ return handler_1.handlerPage;
75
+ };
76
+ const getUrl = (_locale, _name) => {
77
+ // console.log(_locale, _name);
78
+ try {
79
+ const pageName = path_1.default.posix.join(_locale, _name);
80
+ const page = state.pages.all[pageName];
81
+ if (page) {
82
+ return page.url;
83
+ }
84
+ else {
85
+ config_1.logger.warn('Not found link with name: %s', pageName);
86
+ return '/404';
87
+ }
88
+ }
89
+ catch (error) {
90
+ config_1.logger.error(error);
91
+ return '/';
92
+ }
93
+ };
94
+ server.method('flow.getUrl', getUrl, {
95
+ cache: { expiresIn: 3000, generateTimeout: 100 },
96
+ generateKey: (...args) => args.join(',')
97
+ });
98
+ /**
99
+ * Register decorates
100
+ */
101
+ server.decorate('handler', 'flow', flowDecorate);
102
+ server.decorate('toolkit', 'getUrl', server.methods.flow.getUrl);
103
+ }
104
+ };
105
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Server } from '@hapi/hapi';
2
+ import { Flow, GenerateOptions } from "../../types";
3
+ declare const _default: {
4
+ register: (server: Server) => {
5
+ runGenerate: ({ assets, ommitAssets, virtualGenerate }: Flow.GenerateOptions) => Promise<void>;
6
+ };
7
+ };
8
+ export default _default;
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const fs_extra_1 = __importDefault(require("fs-extra"));
26
+ const path_1 = __importDefault(require("path"));
27
+ const R = __importStar(require("ramda"));
28
+ const utils_1 = require("../utils");
29
+ exports.default = {
30
+ register: (server) => {
31
+ //
32
+ // import {} from
33
+ const { configs, helpers } = server.plugins.flow;
34
+ const getFlowPages = async () => {
35
+ var _a;
36
+ const files = {};
37
+ const allPages = await server.methods.flow.pages();
38
+ const pages = Object.values(allPages);
39
+ utils_1.logger.success('Read %i static pages', pages.length);
40
+ for (const page of pages) {
41
+ files[page.url] = '.html';
42
+ }
43
+ const routes = server.table();
44
+ for (const route of routes) {
45
+ //
46
+ const isDynamic = /\{url?(.+)\}/.test(route.path);
47
+ // console.log(isDynamic);
48
+ const generate = (_a = route.settings.plugins) === null || _a === void 0 ? void 0 : _a.generate;
49
+ if (!isDynamic && generate) {
50
+ if (!files[route.path]) {
51
+ files[route.path] = generate;
52
+ }
53
+ }
54
+ }
55
+ return files;
56
+ };
57
+ const writeFile = async (file, payload) => {
58
+ await fs_extra_1.default.ensureFile(file);
59
+ await fs_extra_1.default.writeFile(file, payload, 'utf8');
60
+ };
61
+ const useCreateFile = (isVirtual = false) => async (dir, url, ext) => {
62
+ // console.log(url);
63
+ if (typeof ext === 'object') {
64
+ //
65
+ if (!isVirtual) {
66
+ const dirFile = path_1.default.dirname(url);
67
+ await fs_extra_1.default.ensureDir(path_1.default.join(dir, dirFile));
68
+ const file = await fs_extra_1.default.readFile(ext.file);
69
+ await fs_extra_1.default.writeFile(path_1.default.join(dir, url), file);
70
+ }
71
+ // console.log(url, ext);
72
+ return { type: ext.type || 'assets', url };
73
+ }
74
+ else {
75
+ const r = await server.inject({
76
+ url,
77
+ method: 'get'
78
+ });
79
+ let file = '';
80
+ if (typeof ext === 'boolean') {
81
+ if (!isVirtual) {
82
+ file = path_1.default.join(dir, url);
83
+ await writeFile(file, r.payload);
84
+ }
85
+ return { type: 'assets', url };
86
+ }
87
+ else if (typeof ext === 'string') {
88
+ if (ext === '.html') {
89
+ if (!isVirtual) {
90
+ const isIndex = R.last(url) === '/';
91
+ const nameFile = isIndex ? url + 'index.html' : url + '.html';
92
+ file = path_1.default.join(dir, nameFile);
93
+ await writeFile(file, r.payload);
94
+ }
95
+ return { type: 'page', url };
96
+ }
97
+ else {
98
+ //
99
+ // file = path.join(dir, nameFile);
100
+ // await writeFile(file, r.payload);
101
+ }
102
+ }
103
+ return { type: 'asset', url };
104
+ }
105
+ };
106
+ const injectAssets = (assets) => {
107
+ var _a;
108
+ //
109
+ for (const asset of assets) {
110
+ const dirs = asset.dirs;
111
+ for (const dir of dirs) {
112
+ const dirFiles = fs_extra_1.default.readdirSync(path_1.default.join(asset.relativeTo, dir));
113
+ for (const file of dirFiles) {
114
+ const pathFile = path_1.default.join(asset.relativeTo, dir, file);
115
+ // const nameFile = path.posix.join()
116
+ const ext = path_1.default.extname(pathFile);
117
+ // eslint-disable-next-line no-extra-boolean-cast
118
+ if (!!ext) {
119
+ const pathRoute = path_1.default.posix.join('/', asset.prefix, dir, file);
120
+ const pathRouteOverride = (_a = asset.override) === null || _a === void 0 ? void 0 : _a[pathRoute];
121
+ server.route({
122
+ path: pathRouteOverride || pathRoute,
123
+ method: 'get',
124
+ options: {
125
+ plugins: {
126
+ generate: {
127
+ isAsset: true,
128
+ file: pathFile,
129
+ type: asset.type,
130
+ isRemane: !!pathRouteOverride
131
+ }
132
+ }
133
+ },
134
+ handler: {
135
+ file: {
136
+ path: pathFile,
137
+ confine: false
138
+ }
139
+ }
140
+ });
141
+ }
142
+ else {
143
+ injectAssets([
144
+ {
145
+ dirs: [path_1.default.posix.join(dir, file)],
146
+ prefix: asset.prefix,
147
+ relativeTo: asset.relativeTo,
148
+ override: asset.override,
149
+ type: asset.type || file
150
+ }
151
+ ]);
152
+ }
153
+ }
154
+ }
155
+ }
156
+ };
157
+ const runGenerate = async ({ assets = [], ommitAssets = [], virtualGenerate = false }) => {
158
+ var _a;
159
+ await server.methods.flow.pages();
160
+ const _assetsApp = [...Object.values(server.app.flow.generate.folders)];
161
+ const _assets = [...assets, ..._assetsApp];
162
+ if (!virtualGenerate) {
163
+ injectAssets(_assets);
164
+ }
165
+ const dirOutut = helpers.getPath((_a = configs.outputDir) !== null && _a !== void 0 ? _a : 'build');
166
+ const dirStatic = helpers.getPath('static');
167
+ const files = await getFlowPages();
168
+ const pairFiles = R.toPairs(files);
169
+ const ommit = ommitAssets;
170
+ try {
171
+ await fs_extra_1.default.remove(dirOutut);
172
+ await fs_extra_1.default.copy(dirStatic, dirOutut);
173
+ for (const omitFile of ommit) {
174
+ await fs_extra_1.default.remove(path_1.default.join(dirOutut, omitFile));
175
+ }
176
+ const createFile = useCreateFile(virtualGenerate);
177
+ const files = await Promise.all(pairFiles.map(async (v) => {
178
+ return await createFile(dirOutut, ...v);
179
+ }));
180
+ const groups = R.groupBy((file) => {
181
+ if (file.url.includes('images/')) {
182
+ return 'image';
183
+ }
184
+ else {
185
+ return (path_1.default.extname(file.url) || file.type).toLowerCase();
186
+ }
187
+ }, files);
188
+ // console.log(groups);
189
+ const _groups = {
190
+ pages: 0,
191
+ js: 0,
192
+ css: 0,
193
+ images: 0,
194
+ fonts: 0,
195
+ others: 0
196
+ };
197
+ for (const type in groups) {
198
+ const cp = (ext) => ext === type;
199
+ const qty = groups[type].length;
200
+ if (type === 'page') {
201
+ _groups.pages += qty;
202
+ }
203
+ else if (type === '.js') {
204
+ _groups.js += qty;
205
+ }
206
+ else if (type === '.css') {
207
+ _groups.css += qty;
208
+ }
209
+ else if (['.gif', '.png', '.jpg', '.jpeg', 'image'].find(cp)) {
210
+ _groups.images += qty;
211
+ }
212
+ else if (['.woff', '.eot', '.ttf'].find(cp)) {
213
+ _groups.fonts += qty;
214
+ }
215
+ else {
216
+ _groups.others += qty;
217
+ }
218
+ }
219
+ for (const type in _groups) {
220
+ utils_1.logger.success('%i %s generated', _groups[type], type);
221
+ }
222
+ const bf = server.app.flow.generate.postGenerate;
223
+ if (Object.keys(bf).length) {
224
+ //
225
+ utils_1.logger.info('Post generate');
226
+ }
227
+ for (const key in bf) {
228
+ await bf[key]();
229
+ }
230
+ // return void 0;
231
+ }
232
+ catch (error) {
233
+ utils_1.logger.error(error);
234
+ await fs_extra_1.default.remove(dirOutut);
235
+ //@ts-ignore
236
+ throw new Error(error);
237
+ }
238
+ };
239
+ return { runGenerate };
240
+ }
241
+ };
242
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"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"}
@@ -26,10 +26,11 @@ const handlerPage = async (req, h) => {
26
26
  const { configs } = req.server.plugins.flow;
27
27
  const { flow } = req.route.settings.app;
28
28
  // console.log(req.server.app.flow.urls);
29
+ const { dynamic } = req.app;
29
30
  // console.log(req.app);
30
31
  const local = {};
31
32
  const global = {};
32
- const page = {
33
+ const page = R.clone({
33
34
  ...R.pick(['publicPath', 'path'], flow.urlObject),
34
35
  ...R.pick([
35
36
  'name',
@@ -40,8 +41,14 @@ const handlerPage = async (req, h) => {
40
41
  'bundle',
41
42
  'language'
42
43
  ], flow)
43
- };
44
- const dataContent = {};
44
+ });
45
+ if (dynamic) {
46
+ Object.assign(page, {
47
+ path: dynamic.url,
48
+ ...R.omit(['url'], dynamic)
49
+ });
50
+ }
51
+ // const dataContent = {};
45
52
  // if (req.params.url) {
46
53
  // }
47
54
  const utils = {
@@ -112,4 +119,4 @@ const handlerPage = async (req, h) => {
112
119
  return h.view(`${configs.dirTemplates}${flow.view.template}`, context);
113
120
  };
114
121
  exports.handlerPage = handlerPage;
115
- //# sourceMappingURL=helper.js.map
122
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/helpers/handler.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,7 @@
1
1
  import { Plugin } from '@hapi/hapi';
2
2
  import { PageInfo } from '@monkeyplus/flow-core';
3
- import { Flow, FlowOptions, GenerateOptions, FlowExtensions } from "../types";
3
+ import { Flow, FlowOptions, GenerateOptions, FlowExtensions, OptionsDynamicPages, FlowServerMethods } from "../types";
4
4
  import { definePage } from './pages';
5
- export { definePage };
6
- export { RunDefinePage, OptionsHapiPage, RunPreDefinePage, FlowOptions, FlowOptionPlugins, GenerateFolder, Extension, Flow, FlowExtensions, FlowPluginExtension, FlowPluginUtils, FlowPluginGlobal, FlowPluginLocal, Contexts, FlowContextPage, FlowContextSeo, FlowContextView, ContextHandler, FlowEngines, FlowStatePlugins } from "../types";
7
5
  export declare const plugin: Plugin<FlowOptions>;
8
6
  declare module '@hapi/hapi' {
9
7
  interface ServerApplicationState {
@@ -25,16 +23,31 @@ declare module '@hapi/hapi' {
25
23
  flow?: {
26
24
  proxy?: boolean;
27
25
  extensions?: FlowExtensions;
26
+ dynamic?: OptionsDynamicPages;
28
27
  };
29
28
  generate?: GenerateOptions;
30
29
  }
31
30
  interface Server {
32
31
  flow: Flow.Decorate;
33
32
  }
33
+ interface ServerMethods {
34
+ flow: FlowServerMethods;
35
+ }
36
+ interface RequestApplicationState {
37
+ dynamic: any;
38
+ }
34
39
  interface PluginProperties {
35
40
  flow: {
36
41
  configs: Flow.Configs;
37
- getPath: (...paths: string[]) => string;
42
+ helpers: {
43
+ getPath: (...paths: string[]) => string;
44
+ addRedirect: (key: string, urlPath: string) => void;
45
+ addStaticPage: (key: string, url: Flow.Page) => void;
46
+ addDynamicPages: (key: string, method: Flow.DynamicPages['']) => void;
47
+ };
48
+ pages: () => Flow.StaticPages;
38
49
  };
39
50
  }
40
51
  }
52
+ export { definePage };
53
+ export { RunDefinePage, OptionsHapiPage, RunPreDefinePage, FlowOptions, FlowOptionPlugins, GenerateFolder, Extension, Flow, FlowExtensions, FlowPluginExtension, FlowPluginUtils, FlowPluginGlobal, FlowPluginLocal, Contexts, FlowContextPage, FlowContextSeo, FlowContextView, ContextHandler, FlowEngines, OptionsDynamicPages, FlowStatePlugins, FlowServerMethods } from "../types";