Skip to content

Commit ff3c335

Browse files
committed
Add typings to lib, add jsdoc comments
1 parent e870da2 commit ff3c335

17 files changed

+463
-255
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
.DS_Store
2-
node_modules/
2+
node_modules
33

44
# local env files
55
.env.local

.npmignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
.DS_Store
22
node_modules/
33

4+
# Various dot and configuration files
5+
.eslintignore
6+
.eslintrc.js
7+
.prettierrc
8+
.rollup.config.js
9+
tsconfig.json
10+
411
# local env files
512
.env.local
613
.env.*.local

lib/types/helper.d.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,2 @@
11
/// <reference types="youtube" />
2-
/**
3-
* seekIfAutoplay seeks to the provided timestamp if autoplay is enabled
4-
* @param player The player instance
5-
* @param playerVars The player vars
6-
*/
72
export declare function seekIfAutoplay(player: YT.Player, playerVars: YT.PlayerVars): void;

lib/types/index.d.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import { App } from 'vue';
1+
import { Plugin } from 'vue';
22
import YouTubePlayer from './player';
3-
declare const plugin: {
4-
install: (app: App) => void;
5-
};
3+
declare const plugin: Plugin;
64
export { YouTubePlayer };
75
export default plugin;

lib/types/manager.d.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,9 @@ export interface Manager {
55
players: Array<ManagerCallbackFunction>;
66
events: Record<string, string>;
77
uid: number;
8-
/**
9-
* registerFactory registers the player factory
10-
* @param factory The underlying YT factory (usually window.YT)
11-
*/
128
registerFactory(factory: YT.Player): void;
13-
/**
14-
* registerEvents registers all player state events
15-
*/
169
registerEvents(): void;
17-
/**
18-
* register registers a new player via the manager
19-
* @param callback the callback function executed when the player gets loaded into the component
20-
*/
2110
register(callback: ManagerCallbackFunction): void;
22-
/**
23-
* runBacklog iterates over registered players, which were unable to initiate because the YouTube API script wasn't
24-
* ready yet
25-
*/
2611
runBacklog(): void;
2712
}
2813
export declare function createManager(): Manager;

lib/vue-youtube-iframe.cjs.js

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,8 @@ function createManager() {
4545
}
4646
const manager = createManager();
4747

48-
/**
49-
* seekIfAutoplay seeks to the provided timestamp if autoplay is enabled
50-
* @param player The player instance
51-
* @param playerVars The player vars
52-
*/
5348
function seekIfAutoplay(player, playerVars) {
49+
console.log(YT);
5450
if (playerVars.autoplay != undefined && playerVars.autoplay == YT.AutoPlay.AutoPlay) {
5551
player.mute();
5652
if (playerVars.start != undefined && playerVars.start != 0) {
@@ -97,9 +93,9 @@ const player = vue.defineComponent({
9793
};
9894
},
9995
render() {
100-
return vue.h('div', [vue.h('div', { id: this.elementId })]);
96+
return vue.h('div', { class: ['vue-youtube-iframe'] }, [vue.h('div', { id: this.elementId })]);
10197
},
102-
template: '<div><div :id="elementId"></div></div>',
98+
template: '<div class="vue-youtube-iframe"><div :id="elementId"></div></div>',
10399
methods: {
104100
cueVideoById(videoId, startSeconds, suggestedQuality) {
105101
this.player.cueVideoById(videoId, startSeconds, suggestedQuality);
@@ -248,23 +244,26 @@ function createPlayer(factory, id, options) {
248244
return new factory.Player(id, options);
249245
}
250246

251-
const plugin = {
252-
install: (app) => {
253-
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
254-
const tag = document.createElement('script');
255-
tag.src = 'https://www.youtube.com/player_api';
256-
const firstScriptTag = document.getElementsByTagName('script')[0];
257-
if (firstScriptTag.parentNode != null) {
258-
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
259-
app.component('youtube-iframe', player);
260-
window.onYouTubeIframeAPIReady = () => {
261-
manager.registerFactory(window.YT);
262-
manager.registerEvents();
263-
manager.runBacklog();
264-
};
265-
}
247+
const install = (app) => {
248+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
249+
const tag = document.createElement('script');
250+
tag.src = 'https://www.youtube.com/player_api';
251+
console.log('New TS Version');
252+
const firstScriptTag = document.getElementsByTagName('script')[0];
253+
if (firstScriptTag.parentNode != null) {
254+
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
255+
app.component('youtube-iframe', player);
256+
window.onYouTubeIframeAPIReady = () => {
257+
console.log(typeof window.YT);
258+
manager.registerFactory(window.YT);
259+
manager.registerEvents();
260+
manager.runBacklog();
261+
};
266262
}
267-
},
263+
}
264+
};
265+
const plugin = {
266+
install,
268267
};
269268

270269
exports.YouTubePlayer = player;

lib/vue-youtube-iframe.esm.js

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,8 @@ function createManager() {
4141
}
4242
const manager = createManager();
4343

44-
/**
45-
* seekIfAutoplay seeks to the provided timestamp if autoplay is enabled
46-
* @param player The player instance
47-
* @param playerVars The player vars
48-
*/
4944
function seekIfAutoplay(player, playerVars) {
45+
console.log(YT);
5046
if (playerVars.autoplay != undefined && playerVars.autoplay == YT.AutoPlay.AutoPlay) {
5147
player.mute();
5248
if (playerVars.start != undefined && playerVars.start != 0) {
@@ -93,9 +89,9 @@ const player = defineComponent({
9389
};
9490
},
9591
render() {
96-
return h('div', [h('div', { id: this.elementId })]);
92+
return h('div', { class: ['vue-youtube-iframe'] }, [h('div', { id: this.elementId })]);
9793
},
98-
template: '<div><div :id="elementId"></div></div>',
94+
template: '<div class="vue-youtube-iframe"><div :id="elementId"></div></div>',
9995
methods: {
10096
cueVideoById(videoId, startSeconds, suggestedQuality) {
10197
this.player.cueVideoById(videoId, startSeconds, suggestedQuality);
@@ -244,23 +240,26 @@ function createPlayer(factory, id, options) {
244240
return new factory.Player(id, options);
245241
}
246242

247-
const plugin = {
248-
install: (app) => {
249-
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
250-
const tag = document.createElement('script');
251-
tag.src = 'https://www.youtube.com/player_api';
252-
const firstScriptTag = document.getElementsByTagName('script')[0];
253-
if (firstScriptTag.parentNode != null) {
254-
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
255-
app.component('youtube-iframe', player);
256-
window.onYouTubeIframeAPIReady = () => {
257-
manager.registerFactory(window.YT);
258-
manager.registerEvents();
259-
manager.runBacklog();
260-
};
261-
}
243+
const install = (app) => {
244+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
245+
const tag = document.createElement('script');
246+
tag.src = 'https://www.youtube.com/player_api';
247+
console.log('New TS Version');
248+
const firstScriptTag = document.getElementsByTagName('script')[0];
249+
if (firstScriptTag.parentNode != null) {
250+
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
251+
app.component('youtube-iframe', player);
252+
window.onYouTubeIframeAPIReady = () => {
253+
console.log(typeof window.YT);
254+
manager.registerFactory(window.YT);
255+
manager.registerEvents();
256+
manager.runBacklog();
257+
};
262258
}
263-
},
259+
}
260+
};
261+
const plugin = {
262+
install,
264263
};
265264

266265
export default plugin;

lib/vue-youtube-iframe.global.js

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a MIT-style
33
// license that can be found in the LICENSE file.
44
// vue-youtube-iframe 1.0.3
5-
(function (exports, vue) {
5+
var VueYoutubeIframe = (function (exports, vue) {
66
'use strict';
77

88
function createManager() {
@@ -42,12 +42,8 @@
4242
}
4343
const manager = createManager();
4444

45-
/**
46-
* seekIfAutoplay seeks to the provided timestamp if autoplay is enabled
47-
* @param player The player instance
48-
* @param playerVars The player vars
49-
*/
5045
function seekIfAutoplay(player, playerVars) {
46+
console.log(YT);
5147
if (playerVars.autoplay != undefined && playerVars.autoplay == YT.AutoPlay.AutoPlay) {
5248
player.mute();
5349
if (playerVars.start != undefined && playerVars.start != 0) {
@@ -94,9 +90,9 @@
9490
};
9591
},
9692
render() {
97-
return vue.h('div', [vue.h('div', { id: this.elementId })]);
93+
return vue.h('div', { class: ['vue-youtube-iframe'] }, [vue.h('div', { id: this.elementId })]);
9894
},
99-
template: '<div><div :id="elementId"></div></div>',
95+
template: '<div class="vue-youtube-iframe"><div :id="elementId"></div></div>',
10096
methods: {
10197
cueVideoById(videoId, startSeconds, suggestedQuality) {
10298
this.player.cueVideoById(videoId, startSeconds, suggestedQuality);
@@ -245,23 +241,26 @@
245241
return new factory.Player(id, options);
246242
}
247243

248-
const plugin = {
249-
install: (app) => {
250-
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
251-
const tag = document.createElement('script');
252-
tag.src = 'https://www.youtube.com/player_api';
253-
const firstScriptTag = document.getElementsByTagName('script')[0];
254-
if (firstScriptTag.parentNode != null) {
255-
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
256-
app.component('youtube-iframe', player);
257-
window.onYouTubeIframeAPIReady = () => {
258-
manager.registerFactory(window.YT);
259-
manager.registerEvents();
260-
manager.runBacklog();
261-
};
262-
}
244+
const install = (app) => {
245+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
246+
const tag = document.createElement('script');
247+
tag.src = 'https://www.youtube.com/player_api';
248+
console.log('New TS Version');
249+
const firstScriptTag = document.getElementsByTagName('script')[0];
250+
if (firstScriptTag.parentNode != null) {
251+
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
252+
app.component('youtube-iframe', player);
253+
window.onYouTubeIframeAPIReady = () => {
254+
console.log(typeof window.YT);
255+
manager.registerFactory(window.YT);
256+
manager.registerEvents();
257+
manager.runBacklog();
258+
};
263259
}
264-
},
260+
}
261+
};
262+
const plugin = {
263+
install,
265264
};
266265

267266
exports.YouTubePlayer = player;

lib/vue-youtube-iframe.umd.js

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
(function (global, factory) {
66
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) :
77
typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) :
8-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.VueYouTubeEmbed = {}, global.vue));
8+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.VueYoutubeIframe = {}, global.vue));
99
}(this, (function (exports, vue) { 'use strict';
1010

1111
function createManager() {
@@ -45,12 +45,8 @@
4545
}
4646
const manager = createManager();
4747

48-
/**
49-
* seekIfAutoplay seeks to the provided timestamp if autoplay is enabled
50-
* @param player The player instance
51-
* @param playerVars The player vars
52-
*/
5348
function seekIfAutoplay(player, playerVars) {
49+
console.log(YT);
5450
if (playerVars.autoplay != undefined && playerVars.autoplay == YT.AutoPlay.AutoPlay) {
5551
player.mute();
5652
if (playerVars.start != undefined && playerVars.start != 0) {
@@ -97,9 +93,9 @@
9793
};
9894
},
9995
render() {
100-
return vue.h('div', [vue.h('div', { id: this.elementId })]);
96+
return vue.h('div', { class: ['vue-youtube-iframe'] }, [vue.h('div', { id: this.elementId })]);
10197
},
102-
template: '<div><div :id="elementId"></div></div>',
98+
template: '<div class="vue-youtube-iframe"><div :id="elementId"></div></div>',
10399
methods: {
104100
cueVideoById(videoId, startSeconds, suggestedQuality) {
105101
this.player.cueVideoById(videoId, startSeconds, suggestedQuality);
@@ -248,23 +244,26 @@
248244
return new factory.Player(id, options);
249245
}
250246

251-
const plugin = {
252-
install: (app) => {
253-
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
254-
const tag = document.createElement('script');
255-
tag.src = 'https://www.youtube.com/player_api';
256-
const firstScriptTag = document.getElementsByTagName('script')[0];
257-
if (firstScriptTag.parentNode != null) {
258-
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
259-
app.component('youtube-iframe', player);
260-
window.onYouTubeIframeAPIReady = () => {
261-
manager.registerFactory(window.YT);
262-
manager.registerEvents();
263-
manager.runBacklog();
264-
};
265-
}
247+
const install = (app) => {
248+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
249+
const tag = document.createElement('script');
250+
tag.src = 'https://www.youtube.com/player_api';
251+
console.log('New TS Version');
252+
const firstScriptTag = document.getElementsByTagName('script')[0];
253+
if (firstScriptTag.parentNode != null) {
254+
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
255+
app.component('youtube-iframe', player);
256+
window.onYouTubeIframeAPIReady = () => {
257+
console.log(typeof window.YT);
258+
manager.registerFactory(window.YT);
259+
manager.registerEvents();
260+
manager.runBacklog();
261+
};
266262
}
267-
},
263+
}
264+
};
265+
const plugin = {
266+
install,
268267
};
269268

270269
exports.YouTubePlayer = player;

0 commit comments

Comments
 (0)