@monkeyplus/flow 1.2.0 → 3.0.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.
package/dist/config.d.ts CHANGED
@@ -3,13 +3,7 @@
3
3
  * GLOBAL VARS
4
4
  */
5
5
  export declare const FULL_NAME_PLUGIN = "@monkeyplus/flow";
6
- import { RouteOptions } from '@hapi/hapi';
7
- import { RunDefineGlobalContext } from "../types/index";
8
6
  export declare const DEPENDENCIES: {};
9
- export interface FlowOptions {
10
- relativeTo: string;
11
- outputDir?: string;
12
- globals?: RunDefineGlobalContext;
13
- routeOptions?: RouteOptions;
14
- dirTemplates?: string;
15
- }
7
+ /**
8
+ *
9
+ */
package/dist/config.js CHANGED
@@ -9,4 +9,7 @@ exports.FULL_NAME_PLUGIN = `@monkeyplus/flow`;
9
9
  exports.DEPENDENCIES = {
10
10
  // '@hapi/vision': '6.x.x',
11
11
  };
12
+ /**
13
+ *
14
+ */
12
15
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAItC,QAAA,YAAY,GAAG;AAC1B,2BAA2B;CAC5B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAEtC,QAAA,YAAY,GAAG;AAC1B,2BAA2B;CAC5B,CAAC;AACF;;GAEG"}
@@ -1,9 +1,10 @@
1
1
  import { Server } from '@hapi/hapi';
2
+ import { Flow, GenerateOptions } from "../types/index";
2
3
  interface Options {
3
4
  outputDir: string;
4
5
  getPath: any;
5
6
  }
6
7
  export declare const registerGenerate: (server: Server, { outputDir, getPath }: Options) => {
7
- runGenerate: () => Promise<any>;
8
+ runGenerate: ({ assets, ommitAssets }: Flow.GenerateOptions) => Promise<boolean>;
8
9
  };
9
10
  export {};
package/dist/generate.js CHANGED
@@ -1,4 +1,23 @@
1
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
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
@@ -6,58 +25,163 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
25
  exports.registerGenerate = void 0;
7
26
  const fs_extra_1 = __importDefault(require("fs-extra"));
8
27
  const path_1 = __importDefault(require("path"));
28
+ const R = __importStar(require("ramda"));
29
+ const utils_1 = require("./utils/index");
9
30
  const registerGenerate = (server, { outputDir, getPath }) => {
10
31
  //
11
- const dirOutut = getPath(outputDir);
12
- const dirStatic = getPath('static');
13
32
  const getFlowPages = () => {
14
- const routes = server
15
- .table()
16
- .filter((v) => {
17
- var _a;
18
- return ((_a = v.settings.plugins) === null || _a === void 0 ? void 0 : _a.generate) && v.method.toLowerCase() === 'get';
19
- })
20
- .map((v) => {
21
- var _a, _b;
22
- const urlObject = (_b = (_a = v.settings.app) === null || _a === void 0 ? void 0 : _a.flow) === null || _b === void 0 ? void 0 : _b.urlObject;
23
- let _static = v.path;
24
- if (urlObject) {
25
- _static =
26
- urlObject.publicPath === '/'
27
- ? urlObject.static
28
- : urlObject.static.replace(urlObject.publicPath, '');
33
+ var _a;
34
+ const files = {};
35
+ for (const page of Object.values(server.app.flow.urls)) {
36
+ // const url = R.last(page.url) === '/' ? page.url + 'index.html' : page.url;
37
+ files[page.url] = '.html';
38
+ }
39
+ const routes = server.table();
40
+ for (const route of routes) {
41
+ //
42
+ const isDynamic = /\{url?(.+)\}/.test(route.path);
43
+ // console.log(isDynamic);
44
+ const generate = (_a = route.settings.plugins) === null || _a === void 0 ? void 0 : _a.generate;
45
+ if (!isDynamic && generate) {
46
+ if (!files[route.path]) {
47
+ files[route.path] = generate;
48
+ }
29
49
  }
30
- return {
31
- path: v.path,
32
- method: v.method,
33
- static: path_1.default.join(dirOutut, _static)
34
- };
35
- });
36
- return routes;
50
+ }
51
+ return files;
37
52
  };
38
- const createFile = async (page) => {
39
- const r = await server.inject({
40
- url: page.path + '?static=true',
41
- method: page.method
42
- });
43
- await fs_extra_1.default.ensureFile(page.static);
44
- return await fs_extra_1.default.writeFile(page.static, r.payload, 'utf8');
53
+ const writeFile = async (file, payload) => {
54
+ //
55
+ // console.log(file);
56
+ await fs_extra_1.default.ensureFile(file);
57
+ await fs_extra_1.default.writeFile(file, payload, 'utf8');
45
58
  };
46
- const runGenerate = async () => {
47
- const routes = getFlowPages();
59
+ const createFile = async (dir, url, ext) => {
60
+ // console.log(url);
61
+ if (typeof ext === 'object') {
62
+ //
63
+ const dirFile = path_1.default.dirname(url);
64
+ await fs_extra_1.default.ensureDir(path_1.default.join(dir, dirFile));
65
+ const file = await fs_extra_1.default.readFile(ext.file);
66
+ await fs_extra_1.default.writeFile(path_1.default.join(dir, url), file);
67
+ // console.log(url, ext);
68
+ return { type: ext.type || 'assets', url };
69
+ }
70
+ else {
71
+ const r = await server.inject({
72
+ url,
73
+ method: 'get'
74
+ });
75
+ let file = '';
76
+ if (typeof ext === 'boolean') {
77
+ file = path_1.default.join(dir, url);
78
+ await writeFile(file, r.payload);
79
+ return { type: 'assets', url };
80
+ }
81
+ else if (typeof ext === 'string') {
82
+ if (ext === '.html') {
83
+ const isIndex = R.last(url) === '/';
84
+ const nameFile = isIndex ? url + 'index.html' : url + '.html';
85
+ file = path_1.default.join(dir, nameFile);
86
+ await writeFile(file, r.payload);
87
+ return { type: 'page', url };
88
+ }
89
+ else {
90
+ //
91
+ // file = path.join(dir, nameFile);
92
+ // await writeFile(file, r.payload);
93
+ }
94
+ }
95
+ return { type: 'asset', url };
96
+ }
97
+ // logger.success(url);
98
+ // await fs.ensureFile(page.static);
99
+ // return await fs.writeFile(page.static, r.payload, 'utf8');
100
+ };
101
+ const injectAssets = (assets) => {
102
+ var _a;
103
+ //
104
+ for (const asset of assets) {
105
+ const dirs = asset.dirs;
106
+ for (const dir of dirs) {
107
+ const dirFiles = fs_extra_1.default.readdirSync(path_1.default.join(asset.relativeTo, dir));
108
+ for (const file of dirFiles) {
109
+ const pathFile = path_1.default.join(asset.relativeTo, dir, file);
110
+ // const nameFile = path.posix.join()
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
133
+ }
134
+ }
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'
145
+ }
146
+ ]);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ };
152
+ const runGenerate = async ({ assets, ommitAssets }) => {
153
+ const _assetsApp = [...Object.values(server.app.flow.generate.folders)];
154
+ // console.log(_assetsApp);
155
+ const _assets = [...(assets || []), ..._assetsApp];
156
+ // const _extendAssets = [...(Object.values(server.app.))]
157
+ injectAssets(_assets);
158
+ const dirOutut = getPath(outputDir);
159
+ const dirStatic = getPath('static');
160
+ const files = getFlowPages();
161
+ const pairFiles = R.toPairs(files);
162
+ const ommit = ommitAssets || [];
48
163
  try {
49
164
  await fs_extra_1.default.remove(dirOutut);
50
165
  await fs_extra_1.default.copy(dirStatic, dirOutut);
51
- await Promise.all(routes.map(async (v) => {
52
- return await createFile(v);
166
+ for (const omitFile of ommit) {
167
+ await fs_extra_1.default.remove(path_1.default.join(dirOutut, omitFile));
168
+ }
169
+ const files = await Promise.all(pairFiles.map(async (v) => {
170
+ return await createFile(dirOutut, ...v);
53
171
  }));
54
- return {
55
- message: 'Pages created'
56
- };
172
+ const groups = R.groupBy((file) => {
173
+ return file.type;
174
+ }, files);
175
+ // console.log(groups);
176
+ for (const type in groups) {
177
+ utils_1.logger.success('%i %s generated', groups[type].length, type);
178
+ }
179
+ return true;
57
180
  }
58
181
  catch (error) {
182
+ utils_1.logger.error(error);
59
183
  await fs_extra_1.default.remove(dirOutut);
60
- return error;
184
+ throw new Error(error);
61
185
  }
62
186
  };
63
187
  return { runGenerate };
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":";;;;;;AACA,wDAA0B;AAC1B,gDAAwB;AAKjB,MAAM,gBAAgB,GAAG,CAC9B,MAAc,EACd,EAAE,SAAS,EAAE,OAAO,EAAW,EAC/B,EAAE;IACF,EAAE;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM;aAClB,KAAK,EAAE;aACP,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;;YACZ,OAAO,OAAA,CAAC,CAAC,QAAQ,CAAC,OAAO,0CAAE,QAAQ,KAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;QAC1E,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;YACT,MAAM,SAAS,eAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,0CAAE,IAAI,0CAAE,SAAS,CAAC;YAClD,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,IAAI,SAAS,EAAE;gBACb,OAAO;oBACL,SAAS,CAAC,UAAU,KAAK,GAAG;wBAC1B,CAAC,CAAC,SAAS,CAAC,MAAM;wBAClB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aAC1D;YAED,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;aACrC,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,cAAc;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,kBAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,IAAI;YACF,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,kBAAE,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACrB,OAAO,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CACH,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,eAAe;aACzB,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iBAAiB;IACjB,wBAAwB;IACxB,mBAAmB;IACnB,8BAA8B;IAE9B,MAAM;IACN,MAAM;AACR,CAAC,CAAC;AApEW,QAAA,gBAAgB,oBAoE3B"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Lifecycle } from '@hapi/hapi';
2
+ export declare const handlerPage: Lifecycle.Method;
package/dist/helper.js ADDED
@@ -0,0 +1,88 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.handlerPage = void 0;
23
+ const R = __importStar(require("ramda"));
24
+ const handlerPage = async (req, h) => {
25
+ const { configs } = req.server.plugins.flow;
26
+ const { flow } = req.route.settings.app;
27
+ // console.log(req.server.app.flow.urls);
28
+ // console.log(req.app);
29
+ const local = {};
30
+ const global = {};
31
+ const page = {
32
+ ...R.pick(['publicPath', 'path'], flow.urlObject),
33
+ ...R.pick(['name', 'locale', 'level', 'template', 'bundle'], flow)
34
+ };
35
+ const dataContent = {};
36
+ // if (req.params.url) {
37
+ // }
38
+ const utils = {
39
+ ...req.plugins.flow.utils,
40
+ getLocalUrl: (name) => {
41
+ return h.getUrl(flow.locale, name);
42
+ },
43
+ getUrl: h.getUrl
44
+ };
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
+ };
53
+ const seo = {
54
+ ...flow.seo,
55
+ ...req.pre.seo,
56
+ url: configs.url,
57
+ pageUrl: `${configs.url}${page.path}`
58
+ // utils
59
+ };
60
+ if (flow.runSharedContext) {
61
+ const _context = await flow.runSharedContext(contextMethod);
62
+ Object.assign(local, _context);
63
+ }
64
+ //
65
+ if (flow.runLocalContext) {
66
+ const _context = await flow.runLocalContext(contextMethod);
67
+ Object.assign(local, _context);
68
+ }
69
+ const context = {
70
+ view: {
71
+ bundle: flow.bundle,
72
+ template: flow.template
73
+ },
74
+ context: { ...local, ...req.plugins.flow.local },
75
+ seo,
76
+ page,
77
+ utils: {},
78
+ global: { ...global, ...req.plugins.flow.global }
79
+ };
80
+ if (req.query.context) {
81
+ context.utils = Object.keys(utils);
82
+ return context;
83
+ }
84
+ context.utils = utils;
85
+ return h.view(`${configs.dirTemplates}${flow.template}`, context);
86
+ };
87
+ exports.handlerPage = handlerPage;
88
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,38 +1,39 @@
1
1
  import { Plugin } from '@hapi/hapi';
2
- import { FlowOptions } from "./config";
3
- import { AppObject, Flow, FlowConfigs } from "../types/index";
4
- export { FlowOptions } from "./config";
5
2
  import { PageInfo } from '@monkeyplus/flow-core';
6
- export { definePage, defineSharedContext } from "./lib/index";
7
- export { defineImages, PageInfo } from '@monkeyplus/flow-core';
8
- export { AppObject, DefinePage, ResultPage, RunDefinePage, Flow, PreRunDefinePage, UrlPromise, RunContextHapi, CtxHapiBuildLocal, FlowConfigs } 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";
9
7
  export declare const plugin: Plugin<FlowOptions>;
10
8
  declare module '@hapi/hapi' {
11
9
  interface ServerApplicationState {
12
- flow: AppObject;
10
+ flow: Flow.AppState;
13
11
  }
14
12
  interface RouteOptionsApp {
15
13
  flow: PageInfo;
16
14
  }
17
- interface RequestApplicationState {
18
- local: any;
19
- global: any;
15
+ interface HandlerDecorations {
16
+ flow?: Flow.HandlerOptions;
17
+ }
18
+ interface PluginsStates {
19
+ flow: Flow.PluginState;
20
+ }
21
+ interface ResponseToolkit {
22
+ getUrl: (locale: string, name: string) => string;
20
23
  }
21
24
  interface PluginSpecificConfiguration {
22
25
  flow?: {
23
26
  proxy?: boolean;
27
+ extensions?: FlowExtensions;
24
28
  };
25
- generate?: boolean | {
26
- ext?: string;
27
- isAsset: boolean;
28
- };
29
+ generate?: GenerateOptions;
29
30
  }
30
31
  interface Server {
31
- flow: Flow;
32
+ flow: Flow.Decorate;
32
33
  }
33
34
  interface PluginProperties {
34
35
  flow: {
35
- configs: FlowConfigs;
36
+ configs: Flow.Configs;
36
37
  getPath: (...paths: string[]) => string;
37
38
  };
38
39
  }