react-chromecast-caf 0.0.3 → 0.0.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.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
+ export * from './receiver-capture';
2
+ export * from './sender-capture';
1
3
  export * from './useChromecastCafReceiver';
2
4
  export * from './useChromecastCafSender';
package/dist/index.js CHANGED
@@ -1,3 +1,75 @@
1
- export { useChromecastCafReceiver } from './useChromecastCafReceiver.js';
2
- export { useChromecastCafSender } from './useChromecastCafSender.js';
1
+ import { useState, useEffect } from 'react';
2
+
3
+ const load$1 = (() => {
4
+ let promise = null;
5
+ return () => {
6
+ if (promise === null) {
7
+ promise = new Promise((resolve) => {
8
+ const script = document.createElement('script');
9
+ script.src =
10
+ 'https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js';
11
+ document.body.appendChild(script);
12
+ const loop = () => {
13
+ if ('cast' in window && 'framework' in cast) {
14
+ resolve({
15
+ cast: cast,
16
+ });
17
+ return;
18
+ }
19
+ setTimeout(() => {
20
+ loop();
21
+ }, 100);
22
+ };
23
+ loop();
24
+ });
25
+ }
26
+ return promise;
27
+ };
28
+ })();
29
+ const useChromecastCafReceiver = () => {
30
+ const [receiver, setReceiver] = useState({
31
+ cast: null,
32
+ });
33
+ useEffect(() => {
34
+ load$1().then((sender) => {
35
+ setReceiver(sender);
36
+ });
37
+ }, []);
38
+ return receiver;
39
+ };
40
+
41
+ const load = (() => {
42
+ let promise = null;
43
+ return () => {
44
+ if (promise === null) {
45
+ promise = new Promise((resolve) => {
46
+ const script = document.createElement('script');
47
+ script.src =
48
+ 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1';
49
+ window.__onGCastApiAvailable = (isAvailable) => {
50
+ if (isAvailable) {
51
+ resolve({
52
+ cast,
53
+ });
54
+ }
55
+ };
56
+ document.body.appendChild(script);
57
+ });
58
+ }
59
+ return promise;
60
+ };
61
+ })();
62
+ const useChromecastCafSender = () => {
63
+ const [sender, setSender] = useState({
64
+ cast: null,
65
+ });
66
+ useEffect(() => {
67
+ load().then((sender) => {
68
+ setSender(sender);
69
+ });
70
+ }, []);
71
+ return sender;
72
+ };
73
+
74
+ export { useChromecastCafReceiver, useChromecastCafSender };
3
75
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.js","sources":["../src/useChromecastCafReceiver.ts","../src/useChromecastCafSender.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport type { ReceiverCast } from './receiver-capture'\n\nexport type Receiver = {\n\tcast: ReceiverCast\n\t// @TODO: Add framework and debug\n}\n\nconst load = (() => {\n\tlet promise: Promise<Receiver> | null = null\n\n\treturn () => {\n\t\tif (promise === null) {\n\t\t\tpromise = new Promise((resolve) => {\n\t\t\t\tconst script = document.createElement('script')\n\t\t\t\tscript.src =\n\t\t\t\t\t'https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js'\n\t\t\t\tdocument.body.appendChild(script)\n\n\t\t\t\tconst loop = () => {\n\t\t\t\t\tif ('cast' in window && 'framework' in cast) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tcast: cast as unknown as ReceiverCast,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tloop()\n\t\t\t\t\t}, 100)\n\t\t\t\t}\n\t\t\t\tloop()\n\t\t\t})\n\t\t}\n\t\treturn promise\n\t}\n})()\n\nexport const useChromecastCafReceiver = () => {\n\tconst [receiver, setReceiver] = useState<Receiver | { cast: null }>({\n\t\tcast: null,\n\t})\n\n\tuseEffect(() => {\n\t\tload().then((sender) => {\n\t\t\tsetReceiver(sender)\n\t\t})\n\t}, [])\n\n\treturn receiver\n}\n","import { useEffect, useState } from 'react'\nimport type { SenderCast } from './sender-capture'\nexport { SenderCast }\n\nexport type Sender = {\n\tcast: SenderCast\n\t// @TODO: Add chrome\n}\n\nconst load = (() => {\n\tlet promise: Promise<Sender> | null = null\n\n\treturn () => {\n\t\tif (promise === null) {\n\t\t\tpromise = new Promise((resolve) => {\n\t\t\t\tconst script = document.createElement('script')\n\t\t\t\tscript.src =\n\t\t\t\t\t'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1'\n\t\t\t\twindow.__onGCastApiAvailable = (isAvailable) => {\n\t\t\t\t\tif (isAvailable) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tcast,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdocument.body.appendChild(script)\n\t\t\t})\n\t\t}\n\t\treturn promise\n\t}\n})()\n\nexport const useChromecastCafSender = () => {\n\tconst [sender, setSender] = useState<\n\t\t| Sender\n\t\t| {\n\t\t\t\tcast: null\n\t\t }\n\t>({\n\t\tcast: null,\n\t})\n\n\tuseEffect(() => {\n\t\tload().then((sender) => {\n\t\t\tsetSender(sender)\n\t\t})\n\t}, [])\n\n\treturn sender\n}\n"],"names":["load"],"mappings":";;AAQA,MAAMA,MAAI,GAAG,CAAC,MAAK;IAClB,IAAI,OAAO,GAA6B,IAAI;AAE5C,IAAA,OAAO,MAAK;AACX,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACrB,YAAA,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,gBAAA,MAAM,CAAC,GAAG;AACT,oBAAA,kFAAkF;AACnF,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBAEjC,MAAM,IAAI,GAAG,MAAK;oBACjB,IAAI,MAAM,IAAI,MAAM,IAAI,WAAW,IAAI,IAAI,EAAE;AAC5C,wBAAA,OAAO,CAAC;AACP,4BAAA,IAAI,EAAE,IAA+B;AACrC,yBAAA,CAAC;wBACF;oBACD;oBACA,UAAU,CAAC,MAAK;AACf,wBAAA,IAAI,EAAE;oBACP,CAAC,EAAE,GAAG,CAAC;AACR,gBAAA,CAAC;AACD,gBAAA,IAAI,EAAE;AACP,YAAA,CAAC,CAAC;QACH;AACA,QAAA,OAAO,OAAO;AACf,IAAA,CAAC;AACF,CAAC,GAAG;AAEG,MAAM,wBAAwB,GAAG,MAAK;AAC5C,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA4B;AACnE,QAAA,IAAI,EAAE,IAAI;AACV,KAAA,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAAA,MAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YACtB,WAAW,CAAC,MAAM,CAAC;AACpB,QAAA,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AAChB;;ACxCA,MAAM,IAAI,GAAG,CAAC,MAAK;IAClB,IAAI,OAAO,GAA2B,IAAI;AAE1C,IAAA,OAAO,MAAK;AACX,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACrB,YAAA,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,gBAAA,MAAM,CAAC,GAAG;AACT,oBAAA,4EAA4E;AAC7E,gBAAA,MAAM,CAAC,qBAAqB,GAAG,CAAC,WAAW,KAAI;oBAC9C,IAAI,WAAW,EAAE;AAChB,wBAAA,OAAO,CAAC;4BACP,IAAI;AACJ,yBAAA,CAAC;oBACH;AACD,gBAAA,CAAC;AACD,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAClC,YAAA,CAAC,CAAC;QACH;AACA,QAAA,OAAO,OAAO;AACf,IAAA,CAAC;AACF,CAAC,GAAG;AAEG,MAAM,sBAAsB,GAAG,MAAK;AAC1C,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAKlC;AACD,QAAA,IAAI,EAAE,IAAI;AACV,KAAA,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YACtB,SAAS,CAAC,MAAM,CAAC;AAClB,QAAA,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,MAAM;AACd;;;;"}
@@ -0,0 +1 @@
1
+ export type ReceiverCast = typeof import('chromecast-caf-receiver').cast;
@@ -0,0 +1 @@
1
+ export type SenderCast = Window['cast'];
@@ -1,8 +1,7 @@
1
- import { type Cast } from 'chromecast-caf-receiver-module';
2
- type Receiver = {
3
- cast: Cast;
1
+ import type { ReceiverCast } from './receiver-capture';
2
+ export type Receiver = {
3
+ cast: ReceiverCast;
4
4
  };
5
5
  export declare const useChromecastCafReceiver: () => Receiver | {
6
6
  cast: null;
7
7
  };
8
- export {};
@@ -1,10 +1,8 @@
1
- import type { Cast, Chrome } from 'chromecast-caf-sender-module';
2
- type Sender = {
3
- chrome: Chrome;
4
- cast: Cast;
1
+ import type { SenderCast } from './sender-capture';
2
+ export { SenderCast };
3
+ export type Sender = {
4
+ cast: SenderCast;
5
5
  };
6
6
  export declare const useChromecastCafSender: () => Sender | {
7
- chrome: null;
8
7
  cast: null;
9
8
  };
10
- export {};
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-chromecast-caf",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "React hooks to use the Chromecast sender and receiver SDK in your project.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -15,7 +15,8 @@
15
15
  "start": "rollup -c -w",
16
16
  "dev": "npm start",
17
17
  "build": "rollup -c",
18
- "prepare": "npm run build"
18
+ "prepare": "npm run build",
19
+ "test": "vitest typecheck"
19
20
  },
20
21
  "repository": {
21
22
  "type": "git",
@@ -40,6 +41,10 @@
40
41
  "files": [
41
42
  "/dist/"
42
43
  ],
44
+ "dependencies": {
45
+ "@types/chromecast-caf-receiver": "^6.0.25",
46
+ "@types/chromecast-caf-sender": "^1.0.11"
47
+ },
43
48
  "devDependencies": {
44
49
  "@rollup/plugin-commonjs": "^25.0.8",
45
50
  "@rollup/plugin-node-resolve": "^15.0.1",
@@ -50,11 +55,8 @@
50
55
  "rollup-plugin-delete": "^3.0.2",
51
56
  "rollup-plugin-peer-deps-external": "^2.2.4",
52
57
  "rollup-plugin-typescript2": "^0.36.0",
58
+ "tslib": "^2.8.1",
53
59
  "typescript": "^5.9.3",
54
- "tslib": "^2.8.1"
55
- },
56
- "dependencies": {
57
- "@types/chromecast-caf-receiver": "^6.0.25",
58
- "@types/chromecast-caf-sender": "^1.0.11"
60
+ "vitest": "^4.0.18"
59
61
  }
60
62
  }
@@ -1,10 +0,0 @@
1
- declare module 'chromecast-caf-receiver-module' {
2
- import '@types/chromecast-caf-receiver'
3
- export type Cast = typeof window.cast
4
- }
5
-
6
- declare module 'chromecast-caf-sender-module' {
7
- import '@types/chromecast-caf-sender'
8
- export type Cast = typeof window.cast
9
- export type Chrome = typeof window.chrome
10
- }
@@ -1,42 +0,0 @@
1
- import { useState, useEffect } from 'react';
2
-
3
- const load = (() => {
4
- let promise = null;
5
- return () => {
6
- if (promise === null) {
7
- promise = new Promise((resolve) => {
8
- const script = document.createElement('script');
9
- script.src =
10
- 'https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js';
11
- document.body.appendChild(script);
12
- const loop = () => {
13
- if ('cast' in window && 'framework' in cast) {
14
- resolve({
15
- cast,
16
- });
17
- return;
18
- }
19
- setTimeout(() => {
20
- loop();
21
- }, 100);
22
- };
23
- loop();
24
- });
25
- }
26
- return promise;
27
- };
28
- })();
29
- const useChromecastCafReceiver = () => {
30
- const [receiver, setReceiver] = useState({
31
- cast: null,
32
- });
33
- useEffect(() => {
34
- load().then((sender) => {
35
- setReceiver(sender);
36
- });
37
- }, []);
38
- return receiver;
39
- };
40
-
41
- export { useChromecastCafReceiver };
42
- //# sourceMappingURL=useChromecastCafReceiver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useChromecastCafReceiver.js","sources":["../src/useChromecastCafReceiver.ts"],"sourcesContent":["import { type Cast } from 'chromecast-caf-receiver-module'\nimport { useEffect, useState } from 'react'\n\ntype Receiver = {\n\tcast: Cast\n}\n\nconst load = (() => {\n\tlet promise: Promise<Receiver> | null = null\n\n\treturn () => {\n\t\tif (promise === null) {\n\t\t\tpromise = new Promise((resolve) => {\n\t\t\t\tconst script = document.createElement('script')\n\t\t\t\tscript.src =\n\t\t\t\t\t'https://www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js'\n\t\t\t\tdocument.body.appendChild(script)\n\n\t\t\t\tconst loop = () => {\n\t\t\t\t\tif ('cast' in window && 'framework' in cast) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tcast,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tloop()\n\t\t\t\t\t}, 100)\n\t\t\t\t}\n\t\t\t\tloop()\n\t\t\t})\n\t\t}\n\t\treturn promise\n\t}\n})()\n\nexport const useChromecastCafReceiver = () => {\n\tconst [receiver, setReceiver] = useState<Receiver | { cast: null }>({\n\t\tcast: null,\n\t})\n\n\tuseEffect(() => {\n\t\tload().then((sender) => {\n\t\t\tsetReceiver(sender)\n\t\t})\n\t}, [])\n\n\treturn receiver\n}\n"],"names":[],"mappings":";;AAOA,MAAM,IAAI,GAAG,CAAC,MAAK;IAClB,IAAI,OAAO,GAA6B,IAAI;AAE5C,IAAA,OAAO,MAAK;AACX,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACrB,YAAA,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,gBAAA,MAAM,CAAC,GAAG;AACT,oBAAA,kFAAkF;AACnF,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBAEjC,MAAM,IAAI,GAAG,MAAK;oBACjB,IAAI,MAAM,IAAI,MAAM,IAAI,WAAW,IAAI,IAAI,EAAE;AAC5C,wBAAA,OAAO,CAAC;4BACP,IAAI;AACJ,yBAAA,CAAC;wBACF;oBACD;oBACA,UAAU,CAAC,MAAK;AACf,wBAAA,IAAI,EAAE;oBACP,CAAC,EAAE,GAAG,CAAC;AACR,gBAAA,CAAC;AACD,gBAAA,IAAI,EAAE;AACP,YAAA,CAAC,CAAC;QACH;AACA,QAAA,OAAO,OAAO;AACf,IAAA,CAAC;AACF,CAAC,GAAG;AAEG,MAAM,wBAAwB,GAAG,MAAK;AAC5C,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA4B;AACnE,QAAA,IAAI,EAAE,IAAI;AACV,KAAA,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YACtB,WAAW,CAAC,MAAM,CAAC;AACpB,QAAA,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,QAAQ;AAChB;;;;"}
@@ -1,39 +0,0 @@
1
- import { useState, useEffect } from 'react';
2
-
3
- const load = (() => {
4
- let promise = null;
5
- return () => {
6
- if (promise === null) {
7
- promise = new Promise((resolve) => {
8
- const script = document.createElement('script');
9
- script.src =
10
- 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1';
11
- window.__onGCastApiAvailable = (isAvailable) => {
12
- if (isAvailable) {
13
- resolve({
14
- chrome,
15
- cast,
16
- });
17
- }
18
- };
19
- document.body.appendChild(script);
20
- });
21
- }
22
- return promise;
23
- };
24
- })();
25
- const useChromecastCafSender = () => {
26
- const [sender, setSender] = useState({
27
- chrome: null,
28
- cast: null,
29
- });
30
- useEffect(() => {
31
- load().then((sender) => {
32
- setSender(sender);
33
- });
34
- }, []);
35
- return sender;
36
- };
37
-
38
- export { useChromecastCafSender };
39
- //# sourceMappingURL=useChromecastCafSender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useChromecastCafSender.js","sources":["../src/useChromecastCafSender.ts"],"sourcesContent":["import type { Cast, Chrome } from 'chromecast-caf-sender-module'\nimport { useEffect, useState } from 'react'\n\ntype Sender = {\n\tchrome: Chrome\n\tcast: Cast\n}\n\nconst load = (() => {\n\tlet promise: Promise<Sender> | null = null\n\n\treturn () => {\n\t\tif (promise === null) {\n\t\t\tpromise = new Promise((resolve) => {\n\t\t\t\tconst script = document.createElement('script')\n\t\t\t\tscript.src =\n\t\t\t\t\t'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1'\n\t\t\t\twindow.__onGCastApiAvailable = (isAvailable) => {\n\t\t\t\t\tif (isAvailable) {\n\t\t\t\t\t\tresolve({\n\t\t\t\t\t\t\tchrome,\n\t\t\t\t\t\t\tcast,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdocument.body.appendChild(script)\n\t\t\t})\n\t\t}\n\t\treturn promise\n\t}\n})()\n\nexport const useChromecastCafSender = () => {\n\tconst [sender, setSender] = useState<\n\t\t| Sender\n\t\t| {\n\t\t\t\tchrome: null\n\t\t\t\tcast: null\n\t\t }\n\t>({\n\t\tchrome: null,\n\t\tcast: null,\n\t})\n\n\tuseEffect(() => {\n\t\tload().then((sender) => {\n\t\t\tsetSender(sender)\n\t\t})\n\t}, [])\n\n\treturn sender\n}\n"],"names":[],"mappings":";;AAQA,MAAM,IAAI,GAAG,CAAC,MAAK;IAClB,IAAI,OAAO,GAA2B,IAAI;AAE1C,IAAA,OAAO,MAAK;AACX,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACrB,YAAA,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,gBAAA,MAAM,CAAC,GAAG;AACT,oBAAA,4EAA4E;AAC7E,gBAAA,MAAM,CAAC,qBAAqB,GAAG,CAAC,WAAW,KAAI;oBAC9C,IAAI,WAAW,EAAE;AAChB,wBAAA,OAAO,CAAC;4BACP,MAAM;4BACN,IAAI;AACJ,yBAAA,CAAC;oBACH;AACD,gBAAA,CAAC;AACD,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAClC,YAAA,CAAC,CAAC;QACH;AACA,QAAA,OAAO,OAAO;AACf,IAAA,CAAC;AACF,CAAC,GAAG;AAEG,MAAM,sBAAsB,GAAG,MAAK;AAC1C,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAMlC;AACD,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,IAAI,EAAE,IAAI;AACV,KAAA,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;YACtB,SAAS,CAAC,MAAM,CAAC;AAClB,QAAA,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,OAAO,MAAM;AACd;;;;"}