@d-najd/universal-media-tracker-sdk 0.0.9 → 0.1.1

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 (29) hide show
  1. package/dist/index.d.ts +7 -1
  2. package/dist/index.js +27 -2
  3. package/dist/types/handler/base/baseHandler.d.ts +10 -0
  4. package/dist/types/handler/base/createHandler.d.ts +5 -0
  5. package/dist/types/handler/base/createHandler.js +1 -0
  6. package/dist/types/handler/base/handler.d.ts +4 -2
  7. package/dist/types/handler/base/handler.js +1 -0
  8. package/dist/types/handler/base/handlerTypes.d.ts +2 -0
  9. package/dist/types/handler/base/handlerTypes.js +1 -0
  10. package/dist/types/handler/media/baseResourceHandler.d.ts +9 -0
  11. package/dist/types/handler/media/baseResourceHandler.js +1 -0
  12. package/dist/types/handler/media/catalog/createCatalogHandler.d.ts +4 -4
  13. package/dist/types/handler/media/createResourceHandler.d.ts +6 -4
  14. package/dist/types/handler/media/resourceHandler.d.ts +5 -4
  15. package/dist/types/handler/plugin/factory/createPluginFactoryHandler.d.ts +5 -0
  16. package/dist/types/handler/plugin/factory/createPluginFactoryHandler.js +1 -0
  17. package/dist/types/handler/plugin/factory/pluginFactoryHandlerArgs.d.ts +4 -0
  18. package/dist/types/handler/plugin/factory/pluginFactoryHandlerArgs.js +1 -0
  19. package/dist/types/handler/plugin/factory/pluginFactoryHandlerResponse.d.ts +12 -0
  20. package/dist/types/handler/plugin/factory/pluginFactoryHandlerResponse.js +1 -0
  21. package/dist/types/handler/plugin/source/createPluginSourceHandler.d.ts +5 -0
  22. package/dist/types/handler/plugin/source/createPluginSourceHandler.js +1 -0
  23. package/dist/types/handler/plugin/source/pluginSourceHandlerArgs.d.ts +4 -0
  24. package/dist/types/handler/plugin/source/pluginSourceHandlerArgs.js +1 -0
  25. package/dist/types/handler/plugin/source/pluginSourceHandlerResponse.d.ts +11 -0
  26. package/dist/types/handler/plugin/source/pluginSourceHandlerResponse.js +1 -0
  27. package/package.json +1 -1
  28. package/dist/types/handler/media/resourceHandlerType.d.ts +0 -2
  29. /package/dist/types/handler/{media/resourceHandlerType.js → base/baseHandler.js} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import PluginConfig from "./types/pluginConfig";
2
- import CreateResourceHandler from "./types/handler/media/createResourceHandler";
3
2
  import CreateCatalogHandler from "./types/handler/media/catalog/createCatalogHandler";
3
+ import CreateResourceHandler from "./types/handler/media/createResourceHandler";
4
+ import CreatePluginSourceHandler from "./types/handler/plugin/source/createPluginSourceHandler";
5
+ import CreateHandler from "./types/handler/base/createHandler";
6
+ import CreatePluginFactoryHandler from "./types/handler/plugin/factory/createPluginFactoryHandler";
4
7
  export default class Plugin {
5
8
  readonly config: PluginConfig;
6
9
  private handlers;
@@ -12,6 +15,7 @@ export default class Plugin {
12
15
  */
13
16
  onLoad(callback: () => Promise<void>): void;
14
17
  onUnload(callback: () => Promise<void>): void;
18
+ defineHandler(handler: CreateHandler): string;
15
19
  /**
16
20
  * @see Handler
17
21
  */
@@ -22,6 +26,8 @@ export default class Plugin {
22
26
  * @see defineResourceHandler
23
27
  */
24
28
  defineCatalogHandler(handler: CreateCatalogHandler): string;
29
+ definePluginSourceHandler(handler: CreatePluginSourceHandler): string;
30
+ definePluginFactoryHandler(handler: CreatePluginFactoryHandler): string;
25
31
  private getSpec;
26
32
  private onLoadCallback;
27
33
  private onUnloadCallback;
package/dist/index.js CHANGED
@@ -21,12 +21,20 @@ export default class Plugin {
21
21
  this.loaded = false;
22
22
  };
23
23
  }
24
+ defineHandler(handler) {
25
+ const newHandler = {
26
+ id: `${this.config.id}-custom-${this.counter++}`,
27
+ ...handler
28
+ };
29
+ this.handlers.set(newHandler.id, newHandler);
30
+ return newHandler.id;
31
+ }
24
32
  /**
25
33
  * @see Handler
26
34
  */
27
35
  defineResourceHandler(handler) {
28
36
  const newHandler = {
29
- id: `${this.config.id}-custom-${this.counter++}`,
37
+ id: `${this.config.id}-custom-resource-${this.counter++}`,
30
38
  name: `${this.config.name}`,
31
39
  ...handler
32
40
  };
@@ -40,12 +48,29 @@ export default class Plugin {
40
48
  */
41
49
  defineCatalogHandler(handler) {
42
50
  const newHandler = {
43
- id: `${this.config.id}-catalog-handler`,
51
+ id: `${this.config.id}-catalog`,
52
+ name: `${this.config.name}`,
44
53
  ...handler,
45
54
  type: 'catalog-request'
46
55
  };
47
56
  return this.defineResourceHandler(newHandler);
48
57
  }
58
+ definePluginSourceHandler(handler) {
59
+ const newHandler = {
60
+ id: `${this.config.id}-plugin-source`,
61
+ ...handler,
62
+ type: 'plugin-source'
63
+ };
64
+ return this.defineHandler(newHandler);
65
+ }
66
+ definePluginFactoryHandler(handler) {
67
+ const newHandler = {
68
+ id: `${this.config.id}-plugin-factory`,
69
+ ...handler,
70
+ type: 'plugin-factory'
71
+ };
72
+ return this.defineHandler(newHandler);
73
+ }
49
74
  // Used internally, private since its internal api
50
75
  // noinspection JSUnusedLocalSymbols
51
76
  getSpec() {
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Less strict version because helper scripts define default type and id
3
+ * @see Handler
4
+ */
5
+ type BaseHandler<T = any, R = any> = {
6
+ id?: string;
7
+ type?: string;
8
+ callback: (args: T) => Promise<R>;
9
+ };
10
+ export default BaseHandler;
@@ -0,0 +1,5 @@
1
+ import BaseHandler from "./baseHandler";
2
+ type CreateHandler<T = any, R = any> = BaseHandler<T, R> & {
3
+ type: string;
4
+ };
5
+ export default CreateHandler;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,8 @@
1
- type Handler<T = any, R = any> = {
1
+ import BaseHandler from "./baseHandler";
2
+ import HandlerTypes from "./handlerTypes";
3
+ type Handler<T = any, R = any> = BaseHandler<T, R> & {
2
4
  id: string;
3
- type: string;
5
+ type: HandlerTypes | string;
4
6
  callback: (args: T) => Promise<R>;
5
7
  };
6
8
  export default Handler;
@@ -8,5 +8,6 @@
8
8
  * id exists, it will be overridden.
9
9
  * - `name` name of the handler that will be displayed in the app
10
10
  * - `callback` callback function that is called when the handler is invoked
11
+ * @see BaseHandler
11
12
  */
12
13
  export {};
@@ -0,0 +1,2 @@
1
+ type ResourceHandlerType = 'catalog-request' | 'plugin-source' | 'plugin-factory';
2
+ export default ResourceHandlerType;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import BaseHandlerArgs from "../base/baseHandlerArgs";
2
+ import BaseHandlerResponse from "../base/baseHandlerResponse";
3
+ import ResourceType from "./resourceType";
4
+ import BaseHandler from "../base/baseHandler";
5
+ type BaseResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = BaseHandler<T, R> & {
6
+ name?: string;
7
+ resourceType?: ResourceType | string;
8
+ };
9
+ export default BaseResourceHandler;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,8 +1,8 @@
1
- import CreateResourceHandler from "../createResourceHandler";
1
+ import BaseResourceHandler from "../baseResourceHandler";
2
2
  import CatalogHandlerArgs from "./catalogHandlerArgs";
3
3
  import CatalogHandlerResponse from "./catalogHandlerResponse";
4
- import ResourceHandlerType from "../resourceHandlerType";
5
- type CreateCatalogHandler = Omit<CreateResourceHandler<CatalogHandlerArgs, CatalogHandlerResponse>, 'type'> & {
6
- type?: ResourceHandlerType | string;
4
+ import ResourceType from "../resourceType";
5
+ type CreateCatalogHandler = BaseResourceHandler<CatalogHandlerArgs, CatalogHandlerResponse> & {
6
+ resourceType: ResourceType | string;
7
7
  };
8
8
  export default CreateCatalogHandler;
@@ -1,8 +1,10 @@
1
1
  import BaseHandlerArgs from "../base/baseHandlerArgs";
2
2
  import BaseHandlerResponse from "../base/baseHandlerResponse";
3
- import ResourceHandler from "./resourceHandler";
4
- type CreateResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Omit<ResourceHandler<T, R>, 'id' | 'name'> & {
5
- id?: string;
6
- name?: string;
3
+ import BaseResourceHandler from "./baseResourceHandler";
4
+ import ResourceType from "./resourceType";
5
+ import HandlerTypes from "../base/handlerTypes";
6
+ type CreateResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = BaseResourceHandler<T, R> & {
7
+ type: HandlerTypes | string;
8
+ resourceType: ResourceType | string;
7
9
  };
8
10
  export default CreateResourceHandler;
@@ -1,14 +1,15 @@
1
1
  import BaseHandlerArgs from "../base/baseHandlerArgs";
2
2
  import BaseHandlerResponse from "../base/baseHandlerResponse";
3
- import Handler from "../base/handler";
4
- import ResourceHandlerType from "./resourceHandlerType";
5
3
  import ResourceType from "./resourceType";
6
- type ResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = Handler<T, R> & {
4
+ import BaseResourceHandler from "./baseResourceHandler";
5
+ import Handler from "../base/handler";
6
+ import HandlerTypes from "../base/handlerTypes";
7
+ type ResourceHandler<T extends BaseHandlerArgs = BaseHandlerArgs, R extends BaseHandlerResponse = BaseHandlerResponse> = BaseResourceHandler<T, R> & Handler<T, R> & {
7
8
  /**
8
9
  * Displayed in the app
9
10
  */
10
11
  name: string;
11
- type: ResourceHandlerType | string;
12
+ type: HandlerTypes | string;
12
13
  resourceType: ResourceType | string;
13
14
  };
14
15
  export default ResourceHandler;
@@ -0,0 +1,5 @@
1
+ import BaseHandler from "../../base/baseHandler";
2
+ import PluginFactoryHandlerArgs from "./pluginFactoryHandlerArgs";
3
+ import PluginFactoryHandlerResponse from "./pluginFactoryHandlerResponse";
4
+ type CreatePluginFactoryHandler = BaseHandler<PluginFactoryHandlerArgs, PluginFactoryHandlerResponse> & {};
5
+ export default CreatePluginFactoryHandler;
@@ -0,0 +1,4 @@
1
+ type PluginFactoryHandlerArgs = {
2
+ uri: string;
3
+ };
4
+ export default PluginFactoryHandlerArgs;
@@ -0,0 +1,12 @@
1
+ import Plugin from '../../../../index';
2
+ export type PluginFactoryHandlerResponse = {
3
+ readonly status: 'valid';
4
+ readonly plugin: Plugin;
5
+ } | {
6
+ readonly status: 'skip';
7
+ readonly reason?: string;
8
+ } | {
9
+ readonly status: 'invalid';
10
+ readonly reason: string;
11
+ };
12
+ export default PluginFactoryHandlerResponse;
@@ -0,0 +1,5 @@
1
+ import PluginSourceHandlerResponse from "./pluginSourceHandlerResponse";
2
+ import BaseHandler from "../../base/baseHandler";
3
+ import PluginSourceHandlerArgs from "./pluginSourceHandlerArgs";
4
+ type CreatePluginSourceHandler = BaseHandler<PluginSourceHandlerArgs, PluginSourceHandlerResponse> & {};
5
+ export default CreatePluginSourceHandler;
@@ -0,0 +1,4 @@
1
+ type PluginSourceHandlerArgs = {
2
+ uri: string;
3
+ };
4
+ export default PluginSourceHandlerArgs;
@@ -0,0 +1,11 @@
1
+ export type PluginSourceHandlerResponse = {
2
+ readonly status: 'valid';
3
+ readonly code: string;
4
+ } | {
5
+ readonly status: 'skip';
6
+ readonly reason?: string;
7
+ } | {
8
+ readonly status: 'invalid';
9
+ readonly reason: string;
10
+ };
11
+ export default PluginSourceHandlerResponse;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d-najd/universal-media-tracker-sdk",
3
- "version": "0.0.9",
3
+ "version": "0.1.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/types/index.d.ts",
6
6
  "files": [
@@ -1,2 +0,0 @@
1
- type ResourceHandlerType = 'catalog-request';
2
- export default ResourceHandlerType;