metadata-detector-broker 3.0.85 → 3.0.87

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 (32) hide show
  1. package/build/es2019/interfaces/index.d.ts +2 -0
  2. package/build/es2019/interfaces/index.d.ts.map +1 -0
  3. package/build/es2019/interfaces/index.js +2 -0
  4. package/build/es2019/interfaces/index.js.map +1 -0
  5. package/build/es2019/interfaces/metadata-detector-broker-definition.d.ts +6 -0
  6. package/build/es2019/interfaces/metadata-detector-broker-definition.d.ts.map +1 -0
  7. package/build/es2019/interfaces/metadata-detector-broker-definition.js +2 -0
  8. package/build/es2019/interfaces/metadata-detector-broker-definition.js.map +1 -0
  9. package/build/es2019/module.d.ts +5 -4
  10. package/build/es2019/module.d.ts.map +1 -1
  11. package/build/es2019/module.js +16 -44
  12. package/build/es2019/module.js.map +1 -1
  13. package/build/es2019/types/index.d.ts +3 -0
  14. package/build/es2019/types/index.d.ts.map +1 -0
  15. package/build/es2019/types/index.js +3 -0
  16. package/build/es2019/types/index.js.map +1 -0
  17. package/build/es2019/types/metadata-detector-broker-loader.d.ts +4 -0
  18. package/build/es2019/types/metadata-detector-broker-loader.d.ts.map +1 -0
  19. package/build/es2019/types/metadata-detector-broker-loader.js +2 -0
  20. package/build/es2019/types/metadata-detector-broker-loader.js.map +1 -0
  21. package/build/es2019/types/metadata-detector-broker-wrapper.d.ts +4 -0
  22. package/build/es2019/types/metadata-detector-broker-wrapper.d.ts.map +1 -0
  23. package/build/es2019/types/metadata-detector-broker-wrapper.js +2 -0
  24. package/build/es2019/types/metadata-detector-broker-wrapper.js.map +1 -0
  25. package/build/es5/bundle.js +24 -59
  26. package/package.json +16 -16
  27. package/src/interfaces/index.ts +1 -0
  28. package/src/interfaces/metadata-detector-broker-definition.ts +7 -0
  29. package/src/module.ts +23 -58
  30. package/src/types/index.ts +2 -0
  31. package/src/types/metadata-detector-broker-loader.ts +4 -0
  32. package/src/types/metadata-detector-broker-wrapper.ts +4 -0
@@ -0,0 +1,2 @@
1
+ export * from './metadata-detector-broker-definition';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './metadata-detector-broker-definition';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { IBrokerDefinition } from 'broker-factory';
2
+ export interface IMetadataDetectorBrokerDefinition extends IBrokerDefinition {
3
+ locate(arrayBuffer: ArrayBuffer): Promise<[number, number][]>;
4
+ strip(arrayBuffer: ArrayBuffer): Promise<ArrayBuffer>;
5
+ }
6
+ //# sourceMappingURL=metadata-detector-broker-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-detector-broker-definition.d.ts","sourceRoot":"","sources":["../../../src/interfaces/metadata-detector-broker-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,iCAAkC,SAAQ,iBAAiB;IACxE,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAE9D,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACzD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metadata-detector-broker-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-detector-broker-definition.js","sourceRoot":"","sources":["../../../src/interfaces/metadata-detector-broker-definition.ts"],"names":[],"mappings":""}
@@ -1,5 +1,6 @@
1
- export declare const load: (url: string) => {
2
- locate: (arrayBuffer: ArrayBuffer) => Promise<[number, number][]>;
3
- strip: (arrayBuffer: ArrayBuffer) => Promise<ArrayBuffer>;
4
- };
1
+ import { TMetadataDetectorBrokerLoader, TMetadataDetectorBrokerWrapper } from './types';
2
+ export * from './interfaces/index';
3
+ export * from './types/index';
4
+ export declare const wrap: TMetadataDetectorBrokerWrapper;
5
+ export declare const load: TMetadataDetectorBrokerLoader;
5
6
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAAS,MAAM;0BAKC,WAAW,KAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;yBAwB1C,WAAW,KAAG,OAAO,CAAC,WAAW,CAAC;CA4BjE,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAMxF,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAE9B,eAAO,MAAM,IAAI,EAAE,8BAOjB,CAAC;AAEH,eAAO,MAAM,IAAI,EAAE,6BAIlB,CAAC"}
@@ -1,48 +1,20 @@
1
- import { addUniqueNumber } from 'fast-unique-numbers';
1
+ import { createBroker } from 'broker-factory';
2
+ /*
3
+ * @todo Explicitly referencing the barrel file seems to be necessary when enabling the
4
+ * isolatedModules compiler option.
5
+ */
6
+ export * from './interfaces/index';
7
+ export * from './types/index';
8
+ export const wrap = createBroker({
9
+ locate: ({ call }) => {
10
+ return (arrayBuffer) => call('locate', { arrayBuffer }, [arrayBuffer]);
11
+ },
12
+ strip: ({ call }) => {
13
+ return (arrayBuffer) => call('strip', { arrayBuffer }, [arrayBuffer]);
14
+ }
15
+ });
2
16
  export const load = (url) => {
3
17
  const worker = new Worker(url);
4
- const ongoingRecordingRequests = new Set();
5
- const locate = (arrayBuffer) => {
6
- return new Promise((resolve, reject) => {
7
- const id = addUniqueNumber(ongoingRecordingRequests);
8
- const onMessage = ({ data }) => {
9
- if (data.id === id) {
10
- ongoingRecordingRequests.delete(id);
11
- worker.removeEventListener('message', onMessage);
12
- if (data.error === null) {
13
- resolve(data.result.locations);
14
- }
15
- else {
16
- reject(new Error(data.error.message));
17
- }
18
- }
19
- };
20
- worker.addEventListener('message', onMessage);
21
- worker.postMessage({ id, method: 'locate', params: { arrayBuffer } }, [arrayBuffer]);
22
- });
23
- };
24
- const strip = (arrayBuffer) => {
25
- return new Promise((resolve, reject) => {
26
- const id = addUniqueNumber(ongoingRecordingRequests);
27
- const onMessage = ({ data }) => {
28
- if (data.id === id) {
29
- ongoingRecordingRequests.delete(id);
30
- worker.removeEventListener('message', onMessage);
31
- if (data.error === null) {
32
- resolve(data.result.arrayBuffer);
33
- }
34
- else {
35
- reject(new Error(data.error.message));
36
- }
37
- }
38
- };
39
- worker.addEventListener('message', onMessage);
40
- worker.postMessage({ id, method: 'strip', params: { arrayBuffer } }, [arrayBuffer]);
41
- });
42
- };
43
- return {
44
- locate,
45
- strip
46
- };
18
+ return wrap(worker);
47
19
  };
48
20
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;IAChC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,wBAAwB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAExD,MAAM,MAAM,GAAG,CAAC,WAAwB,EAA+B,EAAE;QACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC,CAAC;YAErD,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAgB,EAAE,EAAE;gBACzC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACjB,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEpC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAEjD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;wBACtB,OAAO,CAAmB,IAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE9C,MAAM,CAAC,WAAW,CAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,WAAwB,EAAwB,EAAE;QAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC,CAAC;YAErD,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAAgB,EAAE,EAAE;gBACzC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACjB,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEpC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAEjD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;wBACtB,OAAO,CAAkB,IAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC1C,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE9C,MAAM,CAAC,WAAW,CAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO;QACH,MAAM;QACN,KAAK;KACR,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C;;;GAGG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAE9B,MAAM,CAAC,MAAM,IAAI,GAAmC,YAAY,CAAuE;IACnI,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;QAChB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAkC,CAAC,GAAW,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './metadata-detector-broker-loader';
2
+ export * from './metadata-detector-broker-wrapper';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './metadata-detector-broker-loader';
2
+ export * from './metadata-detector-broker-wrapper';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IDefaultBrokerDefinition } from 'broker-factory';
2
+ import { IMetadataDetectorBrokerDefinition } from '../interfaces';
3
+ export type TMetadataDetectorBrokerLoader = (url: string) => IMetadataDetectorBrokerDefinition & IDefaultBrokerDefinition;
4
+ //# sourceMappingURL=metadata-detector-broker-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-detector-broker-loader.d.ts","sourceRoot":"","sources":["../../../src/types/metadata-detector-broker-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,iCAAiC,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metadata-detector-broker-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-detector-broker-loader.js","sourceRoot":"","sources":["../../../src/types/metadata-detector-broker-loader.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { IDefaultBrokerDefinition } from 'broker-factory';
2
+ import { IMetadataDetectorBrokerDefinition } from '../interfaces';
3
+ export type TMetadataDetectorBrokerWrapper = (sender: MessagePort | Worker) => IMetadataDetectorBrokerDefinition & IDefaultBrokerDefinition;
4
+ //# sourceMappingURL=metadata-detector-broker-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-detector-broker-wrapper.d.ts","sourceRoot":"","sources":["../../../src/types/metadata-detector-broker-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,MAAM,8BAA8B,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,KAAK,iCAAiC,GAAG,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metadata-detector-broker-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-detector-broker-wrapper.js","sourceRoot":"","sources":["../../../src/types/metadata-detector-broker-wrapper.ts"],"names":[],"mappings":""}
@@ -1,68 +1,33 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fast-unique-numbers')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'fast-unique-numbers'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.metadataDetectorBroker = {}, global.fastUniqueNumbers));
5
- })(this, (function (exports, fastUniqueNumbers) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('broker-factory')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'broker-factory'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.metadataDetectorBroker = {}, global.brokerFactory));
5
+ })(this, (function (exports, brokerFactory) { 'use strict';
6
6
 
7
- var load = function load(url) {
8
- var worker = new Worker(url);
9
- var ongoingRecordingRequests = new Set();
10
- var locate = function locate(arrayBuffer) {
11
- return new Promise(function (resolve, reject) {
12
- var id = fastUniqueNumbers.addUniqueNumber(ongoingRecordingRequests);
13
- var _onMessage = function onMessage(_ref) {
14
- var data = _ref.data;
15
- if (data.id === id) {
16
- ongoingRecordingRequests["delete"](id);
17
- worker.removeEventListener('message', _onMessage);
18
- if (data.error === null) {
19
- resolve(data.result.locations);
20
- } else {
21
- reject(new Error(data.error.message));
22
- }
23
- }
24
- };
25
- worker.addEventListener('message', _onMessage);
26
- worker.postMessage({
27
- id: id,
28
- method: 'locate',
29
- params: {
30
- arrayBuffer: arrayBuffer
31
- }
7
+ var wrap = brokerFactory.createBroker({
8
+ locate: function locate(_ref) {
9
+ var call = _ref.call;
10
+ return function (arrayBuffer) {
11
+ return call('locate', {
12
+ arrayBuffer: arrayBuffer
32
13
  }, [arrayBuffer]);
33
- });
34
- };
35
- var strip = function strip(arrayBuffer) {
36
- return new Promise(function (resolve, reject) {
37
- var id = fastUniqueNumbers.addUniqueNumber(ongoingRecordingRequests);
38
- var _onMessage2 = function onMessage(_ref2) {
39
- var data = _ref2.data;
40
- if (data.id === id) {
41
- ongoingRecordingRequests["delete"](id);
42
- worker.removeEventListener('message', _onMessage2);
43
- if (data.error === null) {
44
- resolve(data.result.arrayBuffer);
45
- } else {
46
- reject(new Error(data.error.message));
47
- }
48
- }
49
- };
50
- worker.addEventListener('message', _onMessage2);
51
- worker.postMessage({
52
- id: id,
53
- method: 'strip',
54
- params: {
55
- arrayBuffer: arrayBuffer
56
- }
14
+ };
15
+ },
16
+ strip: function strip(_ref2) {
17
+ var call = _ref2.call;
18
+ return function (arrayBuffer) {
19
+ return call('strip', {
20
+ arrayBuffer: arrayBuffer
57
21
  }, [arrayBuffer]);
58
- });
59
- };
60
- return {
61
- locate: locate,
62
- strip: strip
63
- };
22
+ };
23
+ }
24
+ });
25
+ var load = function load(url) {
26
+ var worker = new Worker(url);
27
+ return wrap(worker);
64
28
  };
65
29
 
66
30
  exports.load = load;
31
+ exports.wrap = wrap;
67
32
 
68
33
  }));
package/package.json CHANGED
@@ -9,25 +9,25 @@
9
9
  }
10
10
  },
11
11
  "dependencies": {
12
- "@babel/runtime": "^7.26.0",
13
- "fast-unique-numbers": "^9.0.15",
14
- "metadata-detector-worker": "^4.0.85",
12
+ "@babel/runtime": "^7.26.9",
13
+ "broker-factory": "^3.1.2",
14
+ "metadata-detector-worker": "^5.0.3",
15
15
  "tslib": "^2.8.1"
16
16
  },
17
17
  "description": "The broker which is used by the metadata-detector package.",
18
18
  "devDependencies": {
19
- "@babel/core": "^7.26.0",
19
+ "@babel/core": "^7.26.9",
20
20
  "@babel/plugin-external-helpers": "^7.25.9",
21
- "@babel/plugin-transform-runtime": "^7.25.9",
22
- "@babel/preset-env": "^7.26.0",
23
- "@commitlint/cli": "^19.6.1",
24
- "@commitlint/config-angular": "^19.7.0",
21
+ "@babel/plugin-transform-runtime": "^7.26.9",
22
+ "@babel/preset-env": "^7.26.9",
23
+ "@commitlint/cli": "^19.7.1",
24
+ "@commitlint/config-angular": "^19.7.1",
25
25
  "@rollup/plugin-babel": "^6.0.4",
26
26
  "chai": "^4.3.10",
27
27
  "commitizen": "^4.3.1",
28
28
  "cz-conventional-changelog": "^3.3.0",
29
29
  "eslint": "^8.57.0",
30
- "eslint-config-holy-grail": "^60.0.17",
30
+ "eslint-config-holy-grail": "^60.0.20",
31
31
  "grunt": "^1.6.1",
32
32
  "grunt-cli": "^1.5.0",
33
33
  "grunt-sh": "^0.2.1",
@@ -40,20 +40,20 @@
40
40
  "karma-sinon-chai": "^2.0.2",
41
41
  "karma-webkit-launcher": "^2.6.0",
42
42
  "karma-webpack": "^5.0.1",
43
- "lint-staged": "^15.3.0",
43
+ "lint-staged": "^15.4.3",
44
44
  "load-grunt-config": "^4.0.1",
45
45
  "mocha": "^10.8.2",
46
- "prettier": "^3.4.2",
46
+ "prettier": "^3.5.2",
47
47
  "rimraf": "^6.0.1",
48
- "rollup": "^4.29.2",
48
+ "rollup": "^4.34.8",
49
49
  "sinon": "^17.0.2",
50
50
  "sinon-chai": "^3.7.0",
51
- "ts-loader": "^9.5.1",
51
+ "ts-loader": "^9.5.2",
52
52
  "tsconfig-holy-grail": "^15.0.2",
53
53
  "tslint": "^6.1.3",
54
54
  "tslint-config-holy-grail": "^56.0.6",
55
- "typescript": "^5.7.2",
56
- "webpack": "^5.97.1"
55
+ "typescript": "^5.7.3",
56
+ "webpack": "^5.98.0"
57
57
  },
58
58
  "files": [
59
59
  "build/es2019/",
@@ -80,5 +80,5 @@
80
80
  "test": "grunt lint && grunt test"
81
81
  },
82
82
  "types": "build/es2019/module.d.ts",
83
- "version": "3.0.85"
83
+ "version": "3.0.87"
84
84
  }
@@ -0,0 +1 @@
1
+ export * from './metadata-detector-broker-definition';
@@ -0,0 +1,7 @@
1
+ import { IBrokerDefinition } from 'broker-factory';
2
+
3
+ export interface IMetadataDetectorBrokerDefinition extends IBrokerDefinition {
4
+ locate(arrayBuffer: ArrayBuffer): Promise<[number, number][]>;
5
+
6
+ strip(arrayBuffer: ArrayBuffer): Promise<ArrayBuffer>;
7
+ }
package/src/module.ts CHANGED
@@ -1,61 +1,26 @@
1
- import { addUniqueNumber } from 'fast-unique-numbers';
2
- import { ILocateRequest, ILocateResponse, IStripRequest, IStripResponse, IWorkerEvent } from 'metadata-detector-worker';
3
-
4
- export const load = (url: string) => {
1
+ import { createBroker } from 'broker-factory';
2
+ import { TMetadataDetectorWorkerDefinition } from 'metadata-detector-worker';
3
+ import { IMetadataDetectorBrokerDefinition } from './interfaces';
4
+ import { TMetadataDetectorBrokerLoader, TMetadataDetectorBrokerWrapper } from './types';
5
+
6
+ /*
7
+ * @todo Explicitly referencing the barrel file seems to be necessary when enabling the
8
+ * isolatedModules compiler option.
9
+ */
10
+ export * from './interfaces/index';
11
+ export * from './types/index';
12
+
13
+ export const wrap: TMetadataDetectorBrokerWrapper = createBroker<IMetadataDetectorBrokerDefinition, TMetadataDetectorWorkerDefinition>({
14
+ locate: ({ call }) => {
15
+ return (arrayBuffer) => call('locate', { arrayBuffer }, [arrayBuffer]);
16
+ },
17
+ strip: ({ call }) => {
18
+ return (arrayBuffer) => call('strip', { arrayBuffer }, [arrayBuffer]);
19
+ }
20
+ });
21
+
22
+ export const load: TMetadataDetectorBrokerLoader = (url: string) => {
5
23
  const worker = new Worker(url);
6
24
 
7
- const ongoingRecordingRequests: Set<number> = new Set();
8
-
9
- const locate = (arrayBuffer: ArrayBuffer): Promise<[number, number][]> => {
10
- return new Promise((resolve, reject) => {
11
- const id = addUniqueNumber(ongoingRecordingRequests);
12
-
13
- const onMessage = ({ data }: IWorkerEvent) => {
14
- if (data.id === id) {
15
- ongoingRecordingRequests.delete(id);
16
-
17
- worker.removeEventListener('message', onMessage);
18
-
19
- if (data.error === null) {
20
- resolve((<ILocateResponse>data).result.locations);
21
- } else {
22
- reject(new Error(data.error.message));
23
- }
24
- }
25
- };
26
-
27
- worker.addEventListener('message', onMessage);
28
-
29
- worker.postMessage(<ILocateRequest>{ id, method: 'locate', params: { arrayBuffer } }, [arrayBuffer]);
30
- });
31
- };
32
-
33
- const strip = (arrayBuffer: ArrayBuffer): Promise<ArrayBuffer> => {
34
- return new Promise((resolve, reject) => {
35
- const id = addUniqueNumber(ongoingRecordingRequests);
36
-
37
- const onMessage = ({ data }: IWorkerEvent) => {
38
- if (data.id === id) {
39
- ongoingRecordingRequests.delete(id);
40
-
41
- worker.removeEventListener('message', onMessage);
42
-
43
- if (data.error === null) {
44
- resolve((<IStripResponse>data).result.arrayBuffer);
45
- } else {
46
- reject(new Error(data.error.message));
47
- }
48
- }
49
- };
50
-
51
- worker.addEventListener('message', onMessage);
52
-
53
- worker.postMessage(<IStripRequest>{ id, method: 'strip', params: { arrayBuffer } }, [arrayBuffer]);
54
- });
55
- };
56
-
57
- return {
58
- locate,
59
- strip
60
- };
25
+ return wrap(worker);
61
26
  };
@@ -0,0 +1,2 @@
1
+ export * from './metadata-detector-broker-loader';
2
+ export * from './metadata-detector-broker-wrapper';
@@ -0,0 +1,4 @@
1
+ import { IDefaultBrokerDefinition } from 'broker-factory';
2
+ import { IMetadataDetectorBrokerDefinition } from '../interfaces';
3
+
4
+ export type TMetadataDetectorBrokerLoader = (url: string) => IMetadataDetectorBrokerDefinition & IDefaultBrokerDefinition;
@@ -0,0 +1,4 @@
1
+ import { IDefaultBrokerDefinition } from 'broker-factory';
2
+ import { IMetadataDetectorBrokerDefinition } from '../interfaces';
3
+
4
+ export type TMetadataDetectorBrokerWrapper = (sender: MessagePort | Worker) => IMetadataDetectorBrokerDefinition & IDefaultBrokerDefinition;