@jpmorganchase/mosaic-plugins 0.1.0-beta.7 → 0.1.0-beta.8

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.
@@ -1,50 +1,181 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const flatten_1 = __importDefault(require("lodash/flatten"));
16
- const path_1 = __importDefault(require("path"));
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithoutHoles(arr) {
7
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
8
+ }
9
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _asyncToGenerator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _iterableToArray(iter) {
39
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
40
+ }
41
+ function _nonIterableSpread() {
42
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
43
+ }
44
+ function _toConsumableArray(arr) {
45
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
46
+ }
47
+ function _unsupportedIterableToArray(o, minLen) {
48
+ if (!o) return;
49
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
50
+ var n = Object.prototype.toString.call(o).slice(8, -1);
51
+ if (n === "Object" && o.constructor) n = o.constructor.name;
52
+ if (n === "Map" || n === "Set") return Array.from(n);
53
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
54
+ }
55
+ import regeneratorRuntime from "regenerator-runtime";
56
+ import flatten from "lodash/flatten";
57
+ import path from "path";
17
58
  function createFileGlob(url, pageExtensions) {
18
59
  if (pageExtensions.length === 1) {
19
- return `${url}${pageExtensions[0]}`;
60
+ return "".concat(url).concat(pageExtensions[0]);
20
61
  }
21
- return `${url}{${pageExtensions.join(',')}}`;
62
+ return "".concat(url, "{").concat(pageExtensions.join(","), "}");
22
63
  }
23
64
  /**
24
65
  * Plugin that crawls the page hierarchy to find the closest `sharedConfig` from any parent index's page metadata.
25
66
  * It then exports a JSON file (name: `options.filename`) into each directory with the merged config for that level
26
- */
27
- const SharedConfigPlugin = {
28
- $beforeSend(mutableFilesystem, { config, serialiser, ignorePages, pageExtensions }, options) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- const pagePaths = yield mutableFilesystem.promises.glob(createFileGlob('**/index', pageExtensions), {
31
- ignore: [options.filename, ...(0, flatten_1.default)(ignorePages.map(ignore => [ignore, `**/${ignore}`]))],
32
- cwd: '/'
33
- });
34
- for (const pagePath of pagePaths) {
35
- const sharedConfigFile = path_1.default.join(path_1.default.dirname(String(pagePath)), options.filename);
36
- const page = yield serialiser.deserialise(String(pagePath), yield mutableFilesystem.promises.readFile(String(pagePath)));
37
- if (page.sharedConfig) {
38
- config.setRef(sharedConfigFile, ['config', '$ref'], `${String(pagePath)}#/sharedConfig`);
39
- yield mutableFilesystem.promises.writeFile(sharedConfigFile, '{}');
40
- }
41
- else {
42
- const baseDir = path_1.default.resolve(path_1.default.dirname(String(pagePath)), '../');
43
- config.setAliases(path_1.default.join(baseDir, options.filename), [sharedConfigFile]);
67
+ */ var SharedConfigPlugin = {
68
+ $beforeSend: function $beforeSend(mutableFilesystem, param, options) {
69
+ var config = param.config, serialiser = param.serialiser, ignorePages = param.ignorePages, pageExtensions = param.pageExtensions;
70
+ return _asyncToGenerator(/*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
71
+ var pagePaths, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, pagePath, sharedConfigFile, page, baseDir;
72
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
73
+ while(1)switch(_ctx.prev = _ctx.next){
74
+ case 0:
75
+ _ctx.next = 2;
76
+ return mutableFilesystem.promises.glob(createFileGlob("**/index", pageExtensions), {
77
+ ignore: [
78
+ options.filename
79
+ ].concat(_toConsumableArray(flatten(ignorePages.map(function(ignore) {
80
+ return [
81
+ ignore,
82
+ "**/".concat(ignore)
83
+ ];
84
+ })))),
85
+ cwd: "/"
86
+ });
87
+ case 2:
88
+ pagePaths = _ctx.sent;
89
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
90
+ _ctx.prev = 4;
91
+ _iterator = pagePaths[Symbol.iterator]();
92
+ case 6:
93
+ if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
94
+ _ctx.next = 27;
95
+ break;
96
+ }
97
+ pagePath = _step.value;
98
+ sharedConfigFile = path.join(path.dirname(String(pagePath)), options.filename);
99
+ _ctx.t0 = serialiser;
100
+ _ctx.t1 = String(pagePath);
101
+ _ctx.next = 13;
102
+ return mutableFilesystem.promises.readFile(String(pagePath));
103
+ case 13:
104
+ _ctx.t2 = _ctx.sent;
105
+ _ctx.next = 16;
106
+ return _ctx.t0.deserialise.call(_ctx.t0, _ctx.t1, _ctx.t2);
107
+ case 16:
108
+ page = _ctx.sent;
109
+ if (!page.sharedConfig) {
110
+ _ctx.next = 23;
111
+ break;
112
+ }
113
+ config.setRef(sharedConfigFile, [
114
+ "config",
115
+ "$ref"
116
+ ], "".concat(String(pagePath), "#/sharedConfig"));
117
+ _ctx.next = 21;
118
+ return mutableFilesystem.promises.writeFile(sharedConfigFile, "{}");
119
+ case 21:
120
+ _ctx.next = 24;
121
+ break;
122
+ case 23:
123
+ {
124
+ baseDir = path.resolve(path.dirname(String(pagePath)), "../");
125
+ config.setAliases(path.join(baseDir, options.filename), [
126
+ sharedConfigFile
127
+ ]);
128
+ }
129
+ case 24:
130
+ _iteratorNormalCompletion = true;
131
+ _ctx.next = 6;
132
+ break;
133
+ case 27:
134
+ _ctx.next = 33;
135
+ break;
136
+ case 29:
137
+ _ctx.prev = 29;
138
+ _ctx.t3 = _ctx["catch"](4);
139
+ _didIteratorError = true;
140
+ _iteratorError = _ctx.t3;
141
+ case 33:
142
+ _ctx.prev = 33;
143
+ _ctx.prev = 34;
144
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
145
+ _iterator.return();
146
+ }
147
+ case 36:
148
+ _ctx.prev = 36;
149
+ if (!_didIteratorError) {
150
+ _ctx.next = 39;
151
+ break;
152
+ }
153
+ throw _iteratorError;
154
+ case 39:
155
+ return _ctx.finish(36);
156
+ case 40:
157
+ return _ctx.finish(33);
158
+ case 41:
159
+ case "end":
160
+ return _ctx.stop();
44
161
  }
45
- }
46
- });
162
+ }, _callee, null, [
163
+ [
164
+ 4,
165
+ 29,
166
+ 33,
167
+ 41
168
+ ],
169
+ [
170
+ 34,
171
+ ,
172
+ 36,
173
+ 40
174
+ ]
175
+ ]);
176
+ }))();
47
177
  }
48
178
  };
49
- exports.default = SharedConfigPlugin;
179
+ export default SharedConfigPlugin;
180
+
50
181
  //# sourceMappingURL=SharedConfigPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SharedConfigPlugin.js","sourceRoot":"","sources":["../src/SharedConfigPlugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,6DAAqC;AACrC,gDAAwB;AAExB,SAAS,cAAc,CAAC,GAAG,EAAE,cAAc;IACzC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,OAAO,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;KACrC;IACD,OAAO,GAAG,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/C,CAAC;AAUD;;;GAGG;AACH,MAAM,kBAAkB,GAAkE;IAClF,WAAW,CACf,iBAAiB,EACjB,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,EACnD,OAAO;;YAEP,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CACrD,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,EAC1C;gBACE,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAA,iBAAO,EAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3F,GAAG,EAAE,GAAG;aACT,CACF,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAErF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,WAAW,CACvC,MAAM,CAAC,QAAQ,CAAC,EAChB,MAAM,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAC5D,CAAC;gBACF,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;oBACzF,MAAM,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;iBACpE;qBAAM;oBACL,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAEpE,MAAM,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAC7E;aACF;QACH,CAAC;KAAA;CACF,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
1
+ {"version":3,"sources":["../src/SharedConfigPlugin.ts"],"sourcesContent":["import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\nimport flatten from 'lodash/flatten';\nimport path from 'path';\n\nfunction createFileGlob(url, pageExtensions) {\n if (pageExtensions.length === 1) {\n return `${url}${pageExtensions[0]}`;\n }\n return `${url}{${pageExtensions.join(',')}}`;\n}\n\ninterface SharedConfigPluginPage extends Page {\n sharedConfig?: string;\n}\n\ninterface SharedConfigPluginOptions {\n filename: string;\n}\n\n/**\n * Plugin that crawls the page hierarchy to find the closest `sharedConfig` from any parent index's page metadata.\n * It then exports a JSON file (name: `options.filename`) into each directory with the merged config for that level\n */\nconst SharedConfigPlugin: PluginType<SharedConfigPluginPage, SharedConfigPluginOptions> = {\n async $beforeSend(\n mutableFilesystem,\n { config, serialiser, ignorePages, pageExtensions },\n options\n ) {\n const pagePaths = await mutableFilesystem.promises.glob(\n createFileGlob('**/index', pageExtensions),\n {\n ignore: [options.filename, ...flatten(ignorePages.map(ignore => [ignore, `**/${ignore}`]))],\n cwd: '/'\n }\n );\n\n for (const pagePath of pagePaths) {\n const sharedConfigFile = path.join(path.dirname(String(pagePath)), options.filename);\n\n const page = await serialiser.deserialise(\n String(pagePath),\n await mutableFilesystem.promises.readFile(String(pagePath))\n );\n if (page.sharedConfig) {\n config.setRef(sharedConfigFile, ['config', '$ref'], `${String(pagePath)}#/sharedConfig`);\n await mutableFilesystem.promises.writeFile(sharedConfigFile, '{}');\n } else {\n const baseDir = path.resolve(path.dirname(String(pagePath)), '../');\n\n config.setAliases(path.join(baseDir, options.filename), [sharedConfigFile]);\n }\n }\n }\n};\n\nexport default SharedConfigPlugin;\n"],"names":["flatten","path","createFileGlob","url","pageExtensions","length","join","SharedConfigPlugin","$beforeSend","mutableFilesystem","options","config","serialiser","ignorePages","pagePaths","pagePath","sharedConfigFile","page","baseDir","promises","glob","ignore","filename","map","cwd","dirname","String","readFile","deserialise","sharedConfig","setRef","writeFile","resolve","setAliases"],"mappings":"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"}