@jpmorganchase/mosaic-core 0.1.0-beta.3 → 0.1.0-beta.5

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.
Files changed (74) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/PluginError.js +6 -0
  3. package/dist/PluginError.js.map +1 -0
  4. package/dist/PullDocs.js +120 -0
  5. package/dist/PullDocs.js.map +1 -0
  6. package/dist/Source.js +187 -0
  7. package/dist/Source.js.map +1 -0
  8. package/dist/SourceManager.js +151 -0
  9. package/dist/SourceManager.js.map +1 -0
  10. package/dist/WorkerSubscription.js +90 -0
  11. package/dist/WorkerSubscription.js.map +1 -0
  12. package/dist/filesystems/FileAccess.js +263 -0
  13. package/dist/filesystems/FileAccess.js.map +1 -0
  14. package/dist/filesystems/ImmutableVolume.js +41 -0
  15. package/dist/filesystems/ImmutableVolume.js.map +1 -0
  16. package/dist/filesystems/MutableVolume.js +73 -0
  17. package/dist/filesystems/MutableVolume.js.map +1 -0
  18. package/dist/filesystems/RestrictedVolume.js +56 -0
  19. package/dist/filesystems/RestrictedVolume.js.map +1 -0
  20. package/dist/filesystems/UnionFileAccess.js +89 -0
  21. package/dist/filesystems/UnionFileAccess.js.map +1 -0
  22. package/dist/filesystems/UnionVolume.js +40 -0
  23. package/dist/filesystems/UnionVolume.js.map +1 -0
  24. package/dist/helpers/createConfig.js +55 -0
  25. package/dist/helpers/createConfig.js.map +1 -0
  26. package/dist/index.js +8 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/operators/ObservableWorker.js +24 -0
  29. package/dist/operators/ObservableWorker.js.map +1 -0
  30. package/dist/plugin/createPluginAPI.js +90 -0
  31. package/dist/plugin/createPluginAPI.js.map +1 -0
  32. package/dist/plugin/index.js +105 -0
  33. package/dist/plugin/index.js.map +1 -0
  34. package/dist/plugin/loadDefinitionModules.js +56 -0
  35. package/dist/plugin/loadDefinitionModules.js.map +1 -0
  36. package/dist/plugin/pluginRunner.js +52 -0
  37. package/dist/plugin/pluginRunner.js.map +1 -0
  38. package/dist/plugin/serialiserRunner.js +48 -0
  39. package/dist/plugin/serialiserRunner.js.map +1 -0
  40. package/dist/worker/Source.worker.js +117 -0
  41. package/dist/worker/Source.worker.js.map +1 -0
  42. package/dist/worker/helpers/createSourceObservable.js +63 -0
  43. package/dist/worker/helpers/createSourceObservable.js.map +1 -0
  44. package/package.json +7 -4
  45. package/.turbo/turbo-build.log +0 -2
  46. package/.turbo/turbo-clean.log +0 -2
  47. package/src/PluginError.ts +0 -3
  48. package/src/PullDocs.ts +0 -124
  49. package/src/Source.ts +0 -178
  50. package/src/SourceManager.ts +0 -196
  51. package/src/WorkerSubscription.ts +0 -80
  52. package/src/__mocks__/Source.ts +0 -29
  53. package/src/__tests__/PullDocs.test.ts +0 -96
  54. package/src/__tests__/Source.test.ts +0 -341
  55. package/src/__tests__/SourceManager.test.ts +0 -255
  56. package/src/__tests__/WorkerSubscription.test.ts +0 -308
  57. package/src/filesystems/FileAccess.ts +0 -256
  58. package/src/filesystems/ImmutableVolume.ts +0 -45
  59. package/src/filesystems/MutableVolume.ts +0 -51
  60. package/src/filesystems/RestrictedVolume.ts +0 -57
  61. package/src/filesystems/UnionFileAccess.ts +0 -77
  62. package/src/filesystems/UnionVolume.ts +0 -28
  63. package/src/helpers/createConfig.ts +0 -52
  64. package/src/index.ts +0 -1
  65. package/src/operators/ObservableWorker.ts +0 -24
  66. package/src/plugin/createPluginAPI.ts +0 -75
  67. package/src/plugin/index.ts +0 -41
  68. package/src/plugin/loadDefinitionModules.ts +0 -58
  69. package/src/plugin/pluginRunner.ts +0 -52
  70. package/src/plugin/serialiserRunner.ts +0 -36
  71. package/src/worker/Source.worker.ts +0 -124
  72. package/src/worker/helpers/createSourceObservable.ts +0 -84
  73. package/tsconfig.example.json +0 -6
  74. package/tsconfig.json +0 -22
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @jpmorganchase/mosaic-core
2
2
 
3
+ ## 0.1.0-beta.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 61a246c: This releases add support for generate / build and serve snapshots
8
+ - Updated dependencies [61a246c]
9
+ - @jpmorganchase/mosaic-types@0.1.0-beta.5
10
+
11
+ ## 0.1.0-beta.4
12
+
13
+ ### Patch Changes
14
+
15
+ - bd285df: added dist to package.json
16
+ - Updated dependencies [bd285df]
17
+ - @jpmorganchase/mosaic-types@0.1.0-beta.4
18
+
3
19
  ## 0.1.0-beta.3
4
20
 
5
21
  ### Patch Changes
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class PluginError extends Error {
4
+ }
5
+ exports.default = PluginError;
6
+ //# sourceMappingURL=PluginError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginError.js","sourceRoot":"","sources":["../src/PluginError.ts"],"names":[],"mappings":";;AAAA,MAAqB,WAAY,SAAQ,KAAK;CAAG;AAAjD,8BAAiD"}
@@ -0,0 +1,120 @@
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 __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
14
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
+ };
16
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
17
+ if (kind === "m") throw new TypeError("Private method is not writable");
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
20
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _PullDocs_instances, _PullDocs_sourceDefinitions, _PullDocs_sourceManager, _PullDocs_ufs, _PullDocs_vfs, _PullDocs_addSource;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const unionfs_1 = require("unionfs");
28
+ const memfs_1 = require("memfs");
29
+ const SourceManager_1 = __importDefault(require("./SourceManager"));
30
+ // TODO:
31
+ // Remove $ref /index resolution
32
+ const FileAccess_1 = __importDefault(require("./filesystems/FileAccess"));
33
+ const MutableVolume_1 = __importDefault(require("./filesystems/MutableVolume"));
34
+ const UnionFileAccess_1 = __importDefault(require("./filesystems/UnionFileAccess"));
35
+ const UnionVolume_1 = __importDefault(require("./filesystems/UnionVolume"));
36
+ class PullDocs {
37
+ /**
38
+ *
39
+ * @param config.sources Sources are observables that emit pages
40
+ * @param config.plugins Plugins are modules with lifecycles methods for manipulating files and/or the virtual filesystem
41
+ * @param config.serialisers Serialisers are a form of plugin that tell PullDocs how to turn a file from/to a storable form for the filesystem - or back into a `Page` object
42
+ * @param config.ignorePages Page names to exclude from lazy loading / `$ref`s / `$tag`s / serialisers and also any plugins that expect pages as input. Example input would be "ignore-me.xml"
43
+ * @param config.pageExtensions Exts of files to treat as pages. Pages contain metadata and content, in any file format (as long as a serialiser exists to encode/decode them). They can be referenced via `$ref`s / `$tag`s and also support lazy loading
44
+ */
45
+ constructor(config) {
46
+ _PullDocs_instances.add(this);
47
+ _PullDocs_sourceDefinitions.set(this, void 0);
48
+ _PullDocs_sourceManager.set(this, void 0);
49
+ _PullDocs_ufs.set(this, new unionfs_1.Union());
50
+ _PullDocs_vfs.set(this, void 0);
51
+ const sharedFilesystem = new MutableVolume_1.default(new FileAccess_1.default(new memfs_1.Volume()), '*');
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ __classPrivateFieldGet(this, _PullDocs_ufs, "f").use(sharedFilesystem);
54
+ const { ignorePages = [], sources = [], plugins = [], serialisers = [], pageExtensions = ['.mdx'] } = config;
55
+ __classPrivateFieldSet(this, _PullDocs_sourceDefinitions, sources, "f");
56
+ __classPrivateFieldSet(this, _PullDocs_vfs, new UnionVolume_1.default(new UnionFileAccess_1.default(__classPrivateFieldGet(this, _PullDocs_ufs, "f")), '*'), "f");
57
+ __classPrivateFieldSet(this, _PullDocs_sourceManager, new SourceManager_1.default(__classPrivateFieldGet(this, _PullDocs_vfs, "f"), sharedFilesystem,
58
+ // Refs and aliases should be applied after all other plugins, so we add them manually with a negative priority
59
+ plugins
60
+ .concat({
61
+ modulePath: require.resolve('@jpmorganchase/mosaic-plugins/dist/$TagPlugin'),
62
+ options: {}
63
+ }, {
64
+ modulePath: require.resolve('@jpmorganchase/mosaic-plugins/dist/$CodeModPlugin'),
65
+ options: {},
66
+ // Make sure this happens as the very first plugin, so it can fix any page issues
67
+ priority: Number.POSITIVE_INFINITY
68
+ }, {
69
+ modulePath: require.resolve('@jpmorganchase/mosaic-plugins/dist/$AliasPlugin'),
70
+ options: {},
71
+ priority: -1
72
+ }, {
73
+ modulePath: require.resolve('@jpmorganchase/mosaic-plugins/dist/$RefPlugin'),
74
+ options: {},
75
+ priority: -1
76
+ })
77
+ .sort(({ priority: priorityA = 0 }, { priority: priorityB = 0 }) => priorityB - priorityA),
78
+ // Auto add JSON serialiser
79
+ serialisers.concat({
80
+ modulePath: require.resolve('@jpmorganchase/mosaic-serialisers/dist/json'),
81
+ filter: /\.json$/,
82
+ options: {}
83
+ }), pageExtensions, ignorePages), "f");
84
+ }
85
+ get filesystem() {
86
+ return __classPrivateFieldGet(this, _PullDocs_vfs, "f");
87
+ }
88
+ onSourceUpdate(callback) {
89
+ return __classPrivateFieldGet(this, _PullDocs_sourceManager, "f").onSourceUpdate(callback);
90
+ }
91
+ start() {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ return Promise.all(__classPrivateFieldGet(this, _PullDocs_sourceDefinitions, "f").map(source => __classPrivateFieldGet(this, _PullDocs_instances, "m", _PullDocs_addSource).call(this, source)));
94
+ });
95
+ }
96
+ stop() {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ return __classPrivateFieldGet(this, _PullDocs_sourceManager, "f").destroyAll();
99
+ });
100
+ }
101
+ }
102
+ exports.default = PullDocs;
103
+ _PullDocs_sourceDefinitions = new WeakMap(), _PullDocs_sourceManager = new WeakMap(), _PullDocs_ufs = new WeakMap(), _PullDocs_vfs = new WeakMap(), _PullDocs_instances = new WeakSet(), _PullDocs_addSource = function _PullDocs_addSource(sourceDefinition) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ const source = yield __classPrivateFieldGet(this, _PullDocs_sourceManager, "f").addSource(sourceDefinition, {});
106
+ source.onError(error => {
107
+ console.error(new Error(`Source '${source.id.description}' threw an exception. See below:`));
108
+ console.error(error);
109
+ });
110
+ source.onExit(() => {
111
+ __classPrivateFieldGet(this, _PullDocs_ufs, "f").fss.splice(__classPrivateFieldGet(this, _PullDocs_ufs, "f").fss.indexOf(source.filesystem), 1);
112
+ if (__classPrivateFieldGet(this, _PullDocs_ufs, "f").fss.length < 1) {
113
+ console.debug("[PullDocs] All of my source have been terminated. That's sad :-(");
114
+ }
115
+ });
116
+ __classPrivateFieldGet(this, _PullDocs_ufs, "f").use(source.filesystem);
117
+ return source;
118
+ });
119
+ };
120
+ //# sourceMappingURL=PullDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PullDocs.js","sourceRoot":"","sources":["../src/PullDocs.ts"],"names":[],"mappings":"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"}
package/dist/Source.js ADDED
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
35
+ if (kind === "m") throw new TypeError("Private method is not writable");
36
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
37
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
38
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
39
+ };
40
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
41
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
42
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
43
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ var _Source_instances, _Source_emitter, _Source_modulePath, _Source_plugins, _Source_serialisers, _Source_worker, _Source_globalFilesystem, _Source_pluginApi, _Source_mergedOptions, _Source_pageExtensions, _Source_ignorePages, _Source_createWorker;
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ const events_1 = __importDefault(require("events"));
51
+ const md5_1 = __importDefault(require("md5"));
52
+ const memfs_1 = require("memfs");
53
+ const path_1 = __importDefault(require("path"));
54
+ const util_1 = __importDefault(require("util"));
55
+ const FileAccess_1 = __importDefault(require("./filesystems/FileAccess"));
56
+ const MutableVolume_1 = __importDefault(require("./filesystems/MutableVolume"));
57
+ const createConfig_1 = __importDefault(require("./helpers/createConfig"));
58
+ const plugin_1 = require("./plugin");
59
+ const WorkerSubscription_1 = __importStar(require("./WorkerSubscription"));
60
+ class Source {
61
+ constructor({ modulePath, namespace }, mergedOptions, pageExtensions, ignorePages, globalFilesystem) {
62
+ _Source_instances.add(this);
63
+ _Source_emitter.set(this, new events_1.default());
64
+ _Source_modulePath.set(this, void 0);
65
+ _Source_plugins.set(this, []);
66
+ _Source_serialisers.set(this, []);
67
+ _Source_worker.set(this, void 0);
68
+ _Source_globalFilesystem.set(this, void 0);
69
+ _Source_pluginApi.set(this, void 0);
70
+ _Source_mergedOptions.set(this, void 0);
71
+ _Source_pageExtensions.set(this, void 0);
72
+ _Source_ignorePages.set(this, void 0);
73
+ __classPrivateFieldSet(this, _Source_modulePath, modulePath, "f");
74
+ __classPrivateFieldSet(this, _Source_mergedOptions, mergedOptions, "f");
75
+ __classPrivateFieldSet(this, _Source_globalFilesystem, globalFilesystem, "f");
76
+ __classPrivateFieldSet(this, _Source_ignorePages, ignorePages, "f");
77
+ this.namespace = namespace;
78
+ this.id = Symbol(`${path_1.default.basename(path_1.default.dirname(path_1.default.resolve(modulePath, '../')))}#${(0, md5_1.default)(util_1.default.inspect(__classPrivateFieldGet(this, _Source_mergedOptions, "f"), { sorted: true })).substring(0, 8)}`);
79
+ this.filesystem = new MutableVolume_1.default(new FileAccess_1.default(new memfs_1.Volume()), this.namespace);
80
+ __classPrivateFieldSet(this, _Source_pageExtensions, pageExtensions, "f");
81
+ }
82
+ onUpdate(callback) {
83
+ __classPrivateFieldGet(this, _Source_emitter, "f").on(WorkerSubscription_1.EVENT.UPDATE, callback);
84
+ return () => __classPrivateFieldGet(this, _Source_emitter, "f").off(WorkerSubscription_1.EVENT.UPDATE, callback);
85
+ }
86
+ onError(callback) {
87
+ __classPrivateFieldGet(this, _Source_emitter, "f").once(WorkerSubscription_1.EVENT.ERROR, callback);
88
+ return () => __classPrivateFieldGet(this, _Source_emitter, "f").off(WorkerSubscription_1.EVENT.ERROR, callback);
89
+ }
90
+ onStart(callback) {
91
+ __classPrivateFieldGet(this, _Source_emitter, "f").once(WorkerSubscription_1.EVENT.START, callback);
92
+ return () => __classPrivateFieldGet(this, _Source_emitter, "f").off(WorkerSubscription_1.EVENT.START, callback);
93
+ }
94
+ onExit(callback) {
95
+ __classPrivateFieldGet(this, _Source_emitter, "f").once(WorkerSubscription_1.EVENT.EXIT, callback);
96
+ return () => __classPrivateFieldGet(this, _Source_emitter, "f").off(WorkerSubscription_1.EVENT.EXIT, callback);
97
+ }
98
+ stop() {
99
+ if (__classPrivateFieldGet(this, _Source_worker, "f") && __classPrivateFieldGet(this, _Source_worker, "f").closed) {
100
+ throw new Error('Cannot stop source that has not started');
101
+ }
102
+ if (__classPrivateFieldGet(this, _Source_worker, "f")) {
103
+ __classPrivateFieldGet(this, _Source_worker, "f").stop();
104
+ }
105
+ }
106
+ /**
107
+ * Called when another source (not this one) has changed.
108
+ * This source can then ask its plugins if they also want to clear their cache in response to the other source's change.
109
+ */
110
+ requestCacheClear(updatedSourceFilesystem) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ const initTime = new Date().getTime();
113
+ const shouldInvokeAfterUpdate = yield __classPrivateFieldGet(this, _Source_pluginApi, "f").shouldClearCache(updatedSourceFilesystem, {
114
+ globalFilesystem: __classPrivateFieldGet(this, _Source_globalFilesystem, "f"),
115
+ pageExtensions: __classPrivateFieldGet(this, _Source_pageExtensions, "f"),
116
+ ignorePages: __classPrivateFieldGet(this, _Source_ignorePages, "f"),
117
+ serialiser: this.serialiser,
118
+ config: this.config.asReadOnly()
119
+ });
120
+ const timeTaken = new Date().getTime() - initTime;
121
+ if (timeTaken > 400) {
122
+ console.warn(`Lifecycle phase 'shouldClearCache' for source '${this.id.description}' took ${timeTaken}ms to complete. The method is async, so this may not be an accurate measurement of execution time, but consider optimising this method if it is performing intensive operations.`);
123
+ }
124
+ if (shouldInvokeAfterUpdate === true) {
125
+ this.filesystem.clearCache();
126
+ }
127
+ });
128
+ }
129
+ use(plugins = [], serialisers = []) {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ __classPrivateFieldGet(this, _Source_plugins, "f").push(...plugins);
132
+ __classPrivateFieldGet(this, _Source_serialisers, "f").push(...serialisers);
133
+ });
134
+ }
135
+ invokeAfterUpdate(sharedFilesystem, globalConfig) {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ const initTime = new Date().getTime();
138
+ yield __classPrivateFieldGet(this, _Source_pluginApi, "f").afterUpdate(this.filesystem.asRestricted(), {
139
+ globalFilesystem: __classPrivateFieldGet(this, _Source_globalFilesystem, "f"),
140
+ sharedFilesystem,
141
+ globalConfig,
142
+ pageExtensions: __classPrivateFieldGet(this, _Source_pageExtensions, "f"),
143
+ ignorePages: __classPrivateFieldGet(this, _Source_ignorePages, "f"),
144
+ serialiser: this.serialiser,
145
+ config: this.config.asReadOnly()
146
+ });
147
+ const timeTaken = new Date().getTime() - initTime;
148
+ if (timeTaken > 800) {
149
+ console.warn(`Lifecycle phase 'afterUpdate' for source '${this.id.description}' took ${timeTaken / 1000}s to complete. The method is async, so this may not be an accurate measurement of execution time, but consider optimising this method if it is performing intensive operations.`);
150
+ }
151
+ });
152
+ }
153
+ start() {
154
+ return __awaiter(this, void 0, void 0, function* () {
155
+ this.serialiser = yield (0, plugin_1.bindSerialiser)(__classPrivateFieldGet(this, _Source_serialisers, "f"));
156
+ __classPrivateFieldSet(this, _Source_pluginApi, yield (0, plugin_1.bindPluginMethods)(__classPrivateFieldGet(this, _Source_plugins, "f")), "f");
157
+ __classPrivateFieldSet(this, _Source_worker, __classPrivateFieldGet(this, _Source_instances, "m", _Source_createWorker).call(this), "f");
158
+ __classPrivateFieldGet(this, _Source_worker, "f").on(WorkerSubscription_1.EVENT.UPDATE, ({ data: { pages, symlinks, data } }) => __awaiter(this, void 0, void 0, function* () {
159
+ this.config = (0, createConfig_1.default)(data);
160
+ __classPrivateFieldGet(this, _Source_emitter, "f").emit(WorkerSubscription_1.EVENT.UPDATE, { pages, symlinks, data });
161
+ }));
162
+ });
163
+ }
164
+ }
165
+ exports.default = Source;
166
+ _Source_emitter = new WeakMap(), _Source_modulePath = new WeakMap(), _Source_plugins = new WeakMap(), _Source_serialisers = new WeakMap(), _Source_worker = new WeakMap(), _Source_globalFilesystem = new WeakMap(), _Source_pluginApi = new WeakMap(), _Source_mergedOptions = new WeakMap(), _Source_pageExtensions = new WeakMap(), _Source_ignorePages = new WeakMap(), _Source_instances = new WeakSet(), _Source_createWorker = function _Source_createWorker() {
167
+ const worker = new WorkerSubscription_1.default({
168
+ modulePath: __classPrivateFieldGet(this, _Source_modulePath, "f"),
169
+ name: this.id.description,
170
+ options: __classPrivateFieldGet(this, _Source_mergedOptions, "f"),
171
+ namespace: this.namespace,
172
+ pageExtensions: __classPrivateFieldGet(this, _Source_pageExtensions, "f"),
173
+ ignorePages: __classPrivateFieldGet(this, _Source_ignorePages, "f"),
174
+ plugins: __classPrivateFieldGet(this, _Source_plugins, "f"),
175
+ serialisers: __classPrivateFieldGet(this, _Source_serialisers, "f")
176
+ });
177
+ worker.once(WorkerSubscription_1.EVENT.ERROR, error => __classPrivateFieldGet(this, _Source_emitter, "f").emit(WorkerSubscription_1.EVENT.ERROR, error));
178
+ worker.once(WorkerSubscription_1.EVENT.EXIT, () => {
179
+ __classPrivateFieldGet(this, _Source_emitter, "f").emit(WorkerSubscription_1.EVENT.EXIT);
180
+ __classPrivateFieldGet(this, _Source_emitter, "f").removeAllListeners();
181
+ // this.filesystem.reset();
182
+ this.filesystem = null;
183
+ });
184
+ worker.once(WorkerSubscription_1.EVENT.START, () => __classPrivateFieldGet(this, _Source_emitter, "f").emit(WorkerSubscription_1.EVENT.START));
185
+ return worker;
186
+ };
187
+ //# sourceMappingURL=Source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Source.js","sourceRoot":"","sources":["../src/Source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
12
+ if (kind === "m") throw new TypeError("Private method is not writable");
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
14
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
15
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
16
+ };
17
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ var _SourceManager_instances, _SourceManager_sources, _SourceManager_plugins, _SourceManager_serialisers, _SourceManager_handlers, _SourceManager_globalFilesystem, _SourceManager_sharedFilesystem, _SourceManager_pageExtensions, _SourceManager_ignorePages, _SourceManager_globalConfig, _SourceManager_invokeUpdateCallbacks, _SourceManager_updateSources;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ const lodash_1 = require("lodash");
28
+ const Source_1 = __importDefault(require("./Source"));
29
+ const createConfig_1 = __importDefault(require("./helpers/createConfig"));
30
+ function logUpdateStatus(sourceId, initOrStartTime) {
31
+ if (initOrStartTime) {
32
+ console.debug(`[PullDocs] Source '${sourceId.description}' received first docs snapshot ${(new Date().getTime() - initOrStartTime) / 1000}s after starting.`);
33
+ }
34
+ else {
35
+ console.debug(`[PullDocs] Source '${sourceId.description}' received updated docs`);
36
+ }
37
+ }
38
+ class SourceManager {
39
+ constructor(globalFilesystem, sharedFilesystem, plugins = [], serialisers = [], pageExtensions = [], ignorePages = []) {
40
+ _SourceManager_instances.add(this);
41
+ _SourceManager_sources.set(this, new Map());
42
+ _SourceManager_plugins.set(this, void 0);
43
+ _SourceManager_serialisers.set(this, void 0);
44
+ _SourceManager_handlers.set(this, new Set());
45
+ _SourceManager_globalFilesystem.set(this, void 0);
46
+ _SourceManager_sharedFilesystem.set(this, void 0);
47
+ _SourceManager_pageExtensions.set(this, void 0);
48
+ _SourceManager_ignorePages.set(this, void 0);
49
+ _SourceManager_globalConfig.set(this, (0, createConfig_1.default)());
50
+ __classPrivateFieldSet(this, _SourceManager_plugins, plugins, "f");
51
+ __classPrivateFieldSet(this, _SourceManager_pageExtensions, pageExtensions, "f");
52
+ __classPrivateFieldSet(this, _SourceManager_ignorePages, ignorePages, "f");
53
+ __classPrivateFieldSet(this, _SourceManager_serialisers, serialisers, "f");
54
+ __classPrivateFieldSet(this, _SourceManager_globalFilesystem, globalFilesystem, "f");
55
+ __classPrivateFieldSet(this, _SourceManager_sharedFilesystem, sharedFilesystem, "f");
56
+ }
57
+ onSourceUpdate(callback) {
58
+ const handler = (filesystem, source) => callback(filesystem, source);
59
+ __classPrivateFieldGet(this, _SourceManager_handlers, "f").add(handler);
60
+ return () => __classPrivateFieldGet(this, _SourceManager_handlers, "f").delete(handler);
61
+ }
62
+ getSource(id) {
63
+ return __classPrivateFieldGet(this, _SourceManager_sources, "f").get(id);
64
+ }
65
+ destroyAll() {
66
+ __classPrivateFieldGet(this, _SourceManager_sources, "f").forEach(source => source.stop());
67
+ }
68
+ addSource(sourceDefinition, options) {
69
+ // eslint-disable-next-line no-async-promise-executor
70
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
71
+ let sourceActive = false;
72
+ const source = new Source_1.default(sourceDefinition, Object.assign(Object.assign({}, sourceDefinition.options), options), __classPrivateFieldGet(this, _SourceManager_pageExtensions, "f"), __classPrivateFieldGet(this, _SourceManager_ignorePages, "f"), __classPrivateFieldGet(this, _SourceManager_globalFilesystem, "f"));
73
+ const immutableSourceFilesystem = source.filesystem.asReadOnly();
74
+ let initOrStartTime = new Date().getTime();
75
+ __classPrivateFieldGet(this, _SourceManager_sources, "f").set(source.id, source);
76
+ source.use(__classPrivateFieldGet(this, _SourceManager_plugins, "f"), __classPrivateFieldGet(this, _SourceManager_serialisers, "f"));
77
+ yield source.start();
78
+ source.onUpdate(({ pages, symlinks }) => __awaiter(this, void 0, void 0, function* () {
79
+ if (!sourceActive) {
80
+ reject(new Error(`Source '${source.id.description}' received a message before it was initialised.`));
81
+ }
82
+ else {
83
+ logUpdateStatus(source.id, initOrStartTime);
84
+ initOrStartTime = null;
85
+ //
86
+ try {
87
+ __classPrivateFieldGet(this, _SourceManager_globalConfig, "f").setData(Array.from(__classPrivateFieldGet(this, _SourceManager_sources, "f").values()).reduce((mergedConfig, { config }) => (0, lodash_1.merge)(mergedConfig, (config === null || config === void 0 ? void 0 : config.data) || {}), {}), true);
88
+ source.filesystem.reset();
89
+ source.filesystem.fromJSON(pages);
90
+ // We need to re-apply symlinks in the main thread
91
+ yield source.filesystem.symlinksFromJSON(symlinks);
92
+ // After each async operation, we should check if anything has caused the Source to close
93
+ if (!sourceActive) {
94
+ return;
95
+ }
96
+ yield source.invokeAfterUpdate(__classPrivateFieldGet(this, _SourceManager_sharedFilesystem, "f"), __classPrivateFieldGet(this, _SourceManager_globalConfig, "f"));
97
+ // After each async operation, we should check if anything has caused the Source to close
98
+ if (!sourceActive) {
99
+ return;
100
+ }
101
+ source.filesystem.freeze();
102
+ source.filesystem.clearCache();
103
+ yield __classPrivateFieldGet(this, _SourceManager_instances, "m", _SourceManager_updateSources).call(this, immutableSourceFilesystem, source);
104
+ __classPrivateFieldGet(this, _SourceManager_instances, "m", _SourceManager_invokeUpdateCallbacks).call(this, immutableSourceFilesystem, source);
105
+ }
106
+ catch (e) {
107
+ console.warn(`[PullDocs] Exceptions during source update are currently set to terminate the parent source. Terminating '${String(source.id.description)}'. See error:`);
108
+ console.error(e);
109
+ source.stop();
110
+ }
111
+ //
112
+ }
113
+ }));
114
+ source.onError(error => {
115
+ console.error(error);
116
+ if (!sourceActive) {
117
+ reject(error);
118
+ }
119
+ });
120
+ source.onExit(() => {
121
+ if (!sourceActive) {
122
+ reject(new Error(`Source '${source.id.description}' silently exited before initialising.`));
123
+ }
124
+ console.debug(`[PullDocs] Source '${source.id.description}' closed`);
125
+ __classPrivateFieldGet(this, _SourceManager_sources, "f").delete(source.id);
126
+ sourceActive = false;
127
+ });
128
+ source.onStart(() => {
129
+ sourceActive = true;
130
+ console.debug(`[PullDocs] Source '${source.id.description}' started in ${new Date().getTime() - initOrStartTime}ms - awaiting first docs snapshot`);
131
+ initOrStartTime = new Date().getTime();
132
+ resolve(source);
133
+ });
134
+ }));
135
+ }
136
+ }
137
+ exports.default = SourceManager;
138
+ _SourceManager_sources = new WeakMap(), _SourceManager_plugins = new WeakMap(), _SourceManager_serialisers = new WeakMap(), _SourceManager_handlers = new WeakMap(), _SourceManager_globalFilesystem = new WeakMap(), _SourceManager_sharedFilesystem = new WeakMap(), _SourceManager_pageExtensions = new WeakMap(), _SourceManager_ignorePages = new WeakMap(), _SourceManager_globalConfig = new WeakMap(), _SourceManager_instances = new WeakSet(), _SourceManager_invokeUpdateCallbacks = function _SourceManager_invokeUpdateCallbacks(filesystem, source) {
139
+ __classPrivateFieldGet(this, _SourceManager_handlers, "f").forEach(callback => callback(filesystem, source));
140
+ }, _SourceManager_updateSources = function _SourceManager_updateSources(immutableSourceFilesystem, source) {
141
+ // Notify other frozen sources that something has changed. If a source's filesystem hasn't been frozen yet - there's no point
142
+ // in notifying it of another source changing, as it hasn't initialised or called `afterUpdate` for the first time yet anyway.
143
+ // No need to do them sequentially - we can fire them all off at once and wait for them all to finish in their own time
144
+ return Promise.all(Array.from(__classPrivateFieldGet(this, _SourceManager_sources, "f").values()).map(existingSource => {
145
+ if (existingSource !== source && existingSource.filesystem.frozen) {
146
+ return existingSource.requestCacheClear(immutableSourceFilesystem);
147
+ }
148
+ return existingSource;
149
+ }));
150
+ };
151
+ //# sourceMappingURL=SourceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceManager.js","sourceRoot":"","sources":["../src/SourceManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+B;AAU/B,sDAA8B;AAC9B,0EAAkD;AAElD,SAAS,eAAe,CAAC,QAAQ,EAAE,eAAe;IAChD,IAAI,eAAe,EAAE;QACnB,OAAO,CAAC,KAAK,CACX,sBAAsB,QAAQ,CAAC,WAAW,kCACxC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,eAAe,CAAC,GAAG,IAC7C,mBAAmB,CACpB,CAAC;KACH;SAAM;QACL,OAAO,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,WAAW,yBAAyB,CAAC,CAAC;KACpF;AACH,CAAC;AAED,MAAqB,aAAa;IAYhC,YACE,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,EAAE,EAChB,cAAc,GAAG,EAAE,EACnB,WAAW,GAAG,EAAE;;QAjBlB,iCAAgC,IAAI,GAAG,EAAE,EAAC;QAC1C,yCAAmC;QACnC,6CAA2C;QAC3C,kCACE,IAAI,GAAG,EAAE,EAAC;QACZ,kDAAgC;QAChC,kDAAkC;QAClC,gDAA0B;QAC1B,6CAAuB;QACvB,sCAAgB,IAAA,sBAAY,GAAE,EAAC;QAU7B,uBAAA,IAAI,0BAAY,OAAO,MAAA,CAAC;QACxB,uBAAA,IAAI,iCAAmB,cAAc,MAAA,CAAC;QACtC,uBAAA,IAAI,8BAAgB,WAAW,MAAA,CAAC;QAChC,uBAAA,IAAI,8BAAgB,WAAW,MAAA,CAAC;QAChC,uBAAA,IAAI,mCAAqB,gBAAgB,MAAA,CAAC;QAC1C,uBAAA,IAAI,mCAAqB,gBAAgB,MAAA,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,QAAQ;QACrB,MAAM,OAAO,GAAG,CAAC,UAA4B,EAAE,MAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE/F,uBAAA,IAAI,+BAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE5B,OAAO,GAAG,EAAE,CAAC,uBAAA,IAAI,+BAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACR,uBAAA,IAAI,8BAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CACP,gBAAwC,EACxC,OAAgC;QAEhC,qDAAqD;QACrD,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,MAAM,MAAM,GAAG,IAAI,gBAAM,CACvB,gBAAgB,kCAEX,gBAAgB,CAAC,OAAO,GACxB,OAAO,GAEZ,uBAAA,IAAI,qCAAgB,EACpB,uBAAA,IAAI,kCAAa,EACjB,uBAAA,IAAI,uCAAkB,CACvB,CAAC;YACF,MAAM,yBAAyB,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAEjE,IAAI,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAE3C,uBAAA,IAAI,8BAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAErC,MAAM,CAAC,GAAG,CAAC,uBAAA,IAAI,8BAAS,EAAE,uBAAA,IAAI,kCAAa,CAAC,CAAC;YAE7C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAErB,MAAM,CAAC,QAAQ,CAAC,CAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5C,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,CACJ,IAAI,KAAK,CACP,WAAW,MAAM,CAAC,EAAE,CAAC,WAAW,iDAAiD,CAClF,CACF,CAAC;iBACH;qBAAM;oBACL,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;oBAC5C,eAAe,GAAG,IAAI,CAAC;oBAEvB,EAAE;oBACF,IAAI;wBACF,uBAAA,IAAI,mCAAc,CAAC,OAAO,CACxB,KAAK,CAAC,IAAI,CAAC,uBAAA,IAAI,8BAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvC,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAA,cAAK,EAAC,YAAY,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,EAAE,CAAC,EACrE,EAAE,CACH,EACD,IAAI,CACL,CAAC;wBACF,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBAC1B,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAClC,kDAAkD;wBAClD,MAAM,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;wBAEnD,yFAAyF;wBACzF,IAAI,CAAC,YAAY,EAAE;4BACjB,OAAO;yBACR;wBAED,MAAM,MAAM,CAAC,iBAAiB,CAAC,uBAAA,IAAI,uCAAkB,EAAE,uBAAA,IAAI,mCAAc,CAAC,CAAC;wBAE3E,yFAAyF;wBACzF,IAAI,CAAC,YAAY,EAAE;4BACjB,OAAO;yBACR;wBAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;wBAC3B,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;wBAE/B,MAAM,uBAAA,IAAI,8DAAe,MAAnB,IAAI,EAAgB,yBAAyB,EAAE,MAAM,CAAC,CAAC;wBAC7D,uBAAA,IAAI,sEAAuB,MAA3B,IAAI,EAAwB,yBAAyB,EAAE,MAAM,CAAC,CAAC;qBAChE;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,IAAI,CACV,6GAA6G,MAAM,CACjH,MAAM,CAAC,EAAE,CAAC,WAAW,CACtB,eAAe,CACjB,CAAC;wBACF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACjB,MAAM,CAAC,IAAI,EAAE,CAAC;qBACf;oBACD,EAAE;iBACH;YACH,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,CACJ,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,CAAC,WAAW,wCAAwC,CAAC,CACpF,CAAC;iBACH;gBACD,OAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,EAAE,CAAC,WAAW,UAAU,CAAC,CAAC;gBAErE,uBAAA,IAAI,8BAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,YAAY,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClB,YAAY,GAAG,IAAI,CAAC;gBACpB,OAAO,CAAC,KAAK,CACX,sBAAsB,MAAM,CAAC,EAAE,CAAC,WAAW,gBACzC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,eACzB,mCAAmC,CACpC,CAAC;gBACF,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACvC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAA,CAAC,CAAC;IACL,CAAC;CAmBF;AA7KD,gCA6KC;8gBAjBwB,UAA4B,EAAE,MAAc;IACjE,uBAAA,IAAI,+BAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AACnE,CAAC,uEAEc,yBAAyB,EAAE,MAAM;IAC9C,6HAA6H;IAC7H,8HAA8H;IAC9H,uHAAuH;IACvH,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,IAAI,CAAC,uBAAA,IAAI,8BAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;QACtD,IAAI,cAAc,KAAK,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE;YACjE,OAAO,cAAc,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;SACpE;QACD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _WorkerSubscription_worker$, _WorkerSubscription_emitter, _WorkerSubscription_onNext, _WorkerSubscription_onError, _WorkerSubscription_onComplete;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.EVENT = void 0;
19
+ const stream_1 = require("stream");
20
+ const ObservableWorker_1 = __importDefault(require("./operators/ObservableWorker"));
21
+ var EVENT;
22
+ (function (EVENT) {
23
+ EVENT["ERROR"] = "ERROR";
24
+ EVENT["EXIT"] = "EXIT";
25
+ EVENT["START"] = "START";
26
+ EVENT["UPDATE"] = "UPDATE";
27
+ })(EVENT = exports.EVENT || (exports.EVENT = {}));
28
+ const textDecoder = new TextDecoder('utf8');
29
+ class WorkerSubscription {
30
+ constructor(workerData) {
31
+ _WorkerSubscription_worker$.set(this, void 0);
32
+ _WorkerSubscription_emitter.set(this, new stream_1.EventEmitter());
33
+ _WorkerSubscription_onNext.set(this, ({ type, data }) => {
34
+ if (type === 'message') {
35
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").emit(EVENT.UPDATE, { data: JSON.parse(textDecoder.decode(data)) });
36
+ }
37
+ else if (type === 'init') {
38
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").emit(EVENT.START);
39
+ if (data) {
40
+ // We receive a file buffer for 'init', not an object
41
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").emit(EVENT.UPDATE, { data: JSON.parse(textDecoder.decode(data)) });
42
+ }
43
+ }
44
+ else {
45
+ __classPrivateFieldGet(this, _WorkerSubscription_onError, "f").call(this, new Error(`Unsupported type '${type}' with value of '${data}' received from source worker.`));
46
+ __classPrivateFieldGet(this, _WorkerSubscription_worker$, "f").unsubscribe();
47
+ __classPrivateFieldSet(this, _WorkerSubscription_worker$, null, "f");
48
+ }
49
+ });
50
+ _WorkerSubscription_onError.set(this, e => {
51
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").emit(EVENT.ERROR, e);
52
+ __classPrivateFieldGet(this, _WorkerSubscription_onComplete, "f").call(this);
53
+ });
54
+ _WorkerSubscription_onComplete.set(this, () => {
55
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").emit(EVENT.EXIT);
56
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").removeAllListeners();
57
+ });
58
+ __classPrivateFieldSet(this, _WorkerSubscription_worker$, (0, ObservableWorker_1.default)(workerData).subscribe({
59
+ next: __classPrivateFieldGet(this, _WorkerSubscription_onNext, "f"),
60
+ error: __classPrivateFieldGet(this, _WorkerSubscription_onError, "f"),
61
+ complete: __classPrivateFieldGet(this, _WorkerSubscription_onComplete, "f")
62
+ }), "f");
63
+ }
64
+ get closed() {
65
+ var _a;
66
+ return (_a = __classPrivateFieldGet(this, _WorkerSubscription_worker$, "f")) === null || _a === void 0 ? void 0 : _a.closed;
67
+ }
68
+ stop() {
69
+ if (this.closed) {
70
+ throw new Error('Cannot stop source - subscription is already closed');
71
+ }
72
+ __classPrivateFieldGet(this, _WorkerSubscription_worker$, "f").unsubscribe();
73
+ __classPrivateFieldGet(this, _WorkerSubscription_onComplete, "f").call(this);
74
+ }
75
+ once(type, handler) {
76
+ const autoUnsubscribeHandler = (...args) => {
77
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").off(type, autoUnsubscribeHandler);
78
+ handler(...args);
79
+ };
80
+ this.on(type, autoUnsubscribeHandler);
81
+ return () => __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").off(type, autoUnsubscribeHandler);
82
+ }
83
+ on(type, handler) {
84
+ __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").on(type, handler);
85
+ return () => __classPrivateFieldGet(this, _WorkerSubscription_emitter, "f").off(type, handler);
86
+ }
87
+ }
88
+ exports.default = WorkerSubscription;
89
+ _WorkerSubscription_worker$ = new WeakMap(), _WorkerSubscription_emitter = new WeakMap(), _WorkerSubscription_onNext = new WeakMap(), _WorkerSubscription_onError = new WeakMap(), _WorkerSubscription_onComplete = new WeakMap();
90
+ //# sourceMappingURL=WorkerSubscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerSubscription.js","sourceRoot":"","sources":["../src/WorkerSubscription.ts"],"names":[],"mappings":"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"}