@monkeyplus/flow 1.1.9 → 3.0.2

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<any>;
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,56 +25,146 @@ 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 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
123
+ }
124
+ }
125
+ },
126
+ handler: {
127
+ file: {
128
+ path: pathFile,
129
+ confine: false
130
+ }
131
+ }
132
+ });
133
+ }
134
+ }
135
+ }
136
+ };
137
+ const runGenerate = async ({ assets, ommitAssets }) => {
138
+ const _assetsApp = [...Object.values(server.app.generate.folders)];
139
+ // console.log(_assetsApp);
140
+ const _assets = [...(assets || []), ..._assetsApp];
141
+ // const _extendAssets = [...(Object.values(server.app.))]
142
+ injectAssets(_assets);
143
+ const dirOutut = getPath(outputDir);
144
+ const dirStatic = getPath('static');
145
+ const files = getFlowPages();
146
+ const pairFiles = R.toPairs(files);
147
+ const ommit = ommitAssets || [];
48
148
  try {
49
149
  await fs_extra_1.default.remove(dirOutut);
50
150
  await fs_extra_1.default.copy(dirStatic, dirOutut);
51
- await Promise.all(routes.map(async (v) => {
52
- return await createFile(v);
151
+ for (const omitFile of ommit) {
152
+ await fs_extra_1.default.remove(path_1.default.join(dirOutut, omitFile));
153
+ }
154
+ const files = await Promise.all(pairFiles.map(async (v) => {
155
+ return await createFile(dirOutut, ...v);
53
156
  }));
54
- return {
55
- message: 'Pages created'
56
- };
157
+ const groups = R.groupBy((file) => {
158
+ return file.type;
159
+ }, files);
160
+ console.log(groups);
161
+ for (const type in groups) {
162
+ utils_1.logger.success('%i %s generated', groups[type].length, type);
163
+ }
164
+ return true;
57
165
  }
58
166
  catch (error) {
167
+ utils_1.logger.error(error);
59
168
  await fs_extra_1.default.remove(dirOutut);
60
169
  return error;
61
170
  }
@@ -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,95 @@
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
+ exports.handlerPage = void 0;
26
+ const utils_1 = require("./utils/index");
27
+ const R = __importStar(require("ramda"));
28
+ const path_1 = __importDefault(require("path"));
29
+ const handlerPage = async (req, h) => {
30
+ const { configs } = req.server.plugins.flow;
31
+ const { flow, content } = req.route.settings.app;
32
+ // console.log(req.server.app.flow.urls);
33
+ // console.log(req.app);
34
+ const local = {};
35
+ const global = {};
36
+ const page = {
37
+ ...R.pick(['publicPath', 'path'], flow.urlObject),
38
+ ...R.pick(['name', 'locale', 'level', 'template', 'bundle'], flow)
39
+ };
40
+ 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
+ }
52
+ const utils = {
53
+ ...req.app.utils,
54
+ getLocalUrl: (name) => {
55
+ return h.getUrl(flow.locale, name);
56
+ },
57
+ getUrl: h.getUrl
58
+ };
59
+ const contextMethod = { req, h, page, dataContent };
60
+ const seo = {
61
+ ...flow.seo,
62
+ ...req.pre.seo,
63
+ url: configs.url,
64
+ pageUrl: `${configs.url}${page.path}`,
65
+ utils
66
+ };
67
+ if (flow.runSharedContext) {
68
+ const _context = await flow.runSharedContext(contextMethod);
69
+ Object.assign(local, _context);
70
+ }
71
+ //
72
+ if (flow.runLocalContext) {
73
+ const _context = await flow.runLocalContext(contextMethod);
74
+ Object.assign(local, _context);
75
+ }
76
+ const context = {
77
+ view: {
78
+ bundle: flow.bundle,
79
+ template: flow.template
80
+ },
81
+ context: { ...local, ...req.app.local },
82
+ seo,
83
+ page,
84
+ utils: {},
85
+ global: { ...global, ...req.app.global }
86
+ };
87
+ if (req.query.context) {
88
+ context.utils = Object.keys(utils);
89
+ return context;
90
+ }
91
+ context.utils = utils;
92
+ return h.view(`${configs.dirTemplates}${flow.template}`, context);
93
+ };
94
+ exports.handlerPage = handlerPage;
95
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
File without changes