Socket
Socket
Sign inDemoInstall

extendable-media-recorder

Package Overview
Dependencies
4
Maintainers
1
Versions
373
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.11 to 1.0.12

build/es2015/interfaces/native-media-recorder-constructor.d.ts

2

build/es2015/interfaces/index.d.ts

@@ -6,1 +6,3 @@ export * from './media-encoder';

export * from './media-recorder-options';
export * from './native-media-recorder-constructor';
export * from './native-media-recorder';

2

build/es2015/interfaces/index.js

@@ -1,1 +0,1 @@

//# sourceMappingURL=index.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/index.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-encoder.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-encoder.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-format-recoder.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-format-recoder.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-recorder-constructor.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-recorder-constructor.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-recorder-options.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-recorder-options.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-recorder.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-recorder.js.map

@@ -22,2 +22,2 @@ import 'core-js/es7/reflect'; // tslint:disable-line:ordered-imports

export const isSupported = injector.get(isSupportedPromise);
//# sourceMappingURL=module.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/module.js.map

@@ -1,7 +0,7 @@

import { OpaqueToken } from '@angular/core';
import { IMediaEncoder } from '../interfaces';
export declare const encoders: OpaqueToken;
import { InjectionToken } from '@angular/core';
import { IMediaFormatRecoder } from '../interfaces';
export declare const encoders: InjectionToken<IMediaFormatRecoder[]>;
export declare const ENCODERS_PROVIDER: {
provide: OpaqueToken;
useValue: IMediaEncoder[];
provide: InjectionToken<IMediaFormatRecoder[]>;
useValue: IMediaFormatRecoder[];
};

@@ -1,5 +0,5 @@

import { OpaqueToken } from '@angular/core';
export const encoders = new OpaqueToken('ENCODERS');
import { InjectionToken } from '@angular/core';
export const encoders = new InjectionToken('ENCODERS');
const ncdrs = [];
export const ENCODERS_PROVIDER = { provide: encoders, useValue: ncdrs };
//# sourceMappingURL=encoders.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/encoders.js.map

@@ -1,7 +0,7 @@

import { OpaqueToken } from '@angular/core';
export declare const isSupportedPromise: OpaqueToken;
import { InjectionToken } from '@angular/core';
export declare const isSupportedPromise: InjectionToken<Promise<boolean>>;
export declare const IS_SUPPORTED_PROMISE_PROVIDER: {
deps: OpaqueToken[];
provide: OpaqueToken;
useFactory: (window: any) => Promise<boolean>;
deps: InjectionToken<Window>[];
provide: InjectionToken<Promise<boolean>>;
useFactory: (window: Window) => Promise<boolean>;
};

@@ -1,4 +0,4 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { window as wndw } from './window';
export const isSupportedPromise = new OpaqueToken('IS_SUPPORTED_PROMISE');
export const isSupportedPromise = new InjectionToken('IS_SUPPORTED_PROMISE');
export const IS_SUPPORTED_PROMISE_PROVIDER = {

@@ -9,2 +9,2 @@ deps: [wndw],

};
//# sourceMappingURL=is-supported-promise.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/is-supported-promise.js.map

@@ -1,8 +0,8 @@

import { OpaqueToken } from '@angular/core';
import { IMediaRecorderConstructor } from '../interfaces';
export declare const mediaRecorderConstructor: OpaqueToken;
import { InjectionToken } from '@angular/core';
import { IMediaEncoder, IMediaFormatRecoder, IMediaRecorderConstructor, INativeMediaRecorderConstructor } from '../interfaces';
export declare const mediaRecorderConstructor: InjectionToken<IMediaRecorderConstructor>;
export declare const MEDIA_RECORDER_CONSTRUCTOR_PROVIDER: {
deps: OpaqueToken[];
provide: OpaqueToken;
useFactory: (ncdrs: any, NativeMediaRecorder: any) => IMediaRecorderConstructor;
deps: InjectionToken<IMediaFormatRecoder[]>[];
provide: InjectionToken<IMediaRecorderConstructor>;
useFactory: (ncdrs: IMediaEncoder[], NativeMediaRecorder: INativeMediaRecorderConstructor) => IMediaRecorderConstructor;
};

@@ -1,5 +0,5 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { encoders } from './encoders';
import { nativeMediaRecorderConstructor } from './native-media-recorder-constructor';
export const mediaRecorderConstructor = new OpaqueToken('MEDIA_RECORDER_CONSTRUCTOR');
export const mediaRecorderConstructor = new InjectionToken('MEDIA_RECORDER_CONSTRUCTOR');
export const MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

@@ -38,5 +38,9 @@ deps: [

}
if (this._listeners.has(type)) {
this._listeners.get(type).add(listener);
if (this._listeners === null) {
throw new Error(); // @todo
}
const listenersOfType = this._listeners.get(type);
if (listenersOfType !== undefined) {
listenersOfType.add(listener);
}
else {

@@ -46,3 +50,3 @@ this._listeners.set(type, new Set([listener]));

}
dispatchEvent(event) {
dispatchEvent(_) {
return true;

@@ -54,6 +58,9 @@ }

}
if (this._listeners.has(type)) {
const listeners = this._listeners.get(type);
listeners.delete(listener);
if (listeners.size === 0) {
if (this._listeners === null) {
throw new Error(); // @todo
}
const listenersOfType = this._listeners.get(type);
if (listenersOfType !== undefined) {
listenersOfType.delete(listener);
if (listenersOfType.size === 0) {
this._listeners.delete(type);

@@ -67,2 +74,5 @@ }

}
if (this._extendedEncoder === null || this._stream === null) {
throw new Error();
}
this._extendedRecorder = this._extendedEncoder.start(this._stream);

@@ -74,11 +84,15 @@ }

}
if (this._extendedRecorder === null) {
throw new Error(); // @todo
}
this._extendedRecorder
.stop()
.then((arrayBuffer) => {
if (this._listeners.has('dataavailable')) {
const listeners = this._listeners.get('dataavailable');
if (listeners) {
listeners.forEach((listener) => listener({ data: arrayBuffer }));
}
if (this._listeners === null) {
throw new Error(); // @todo
}
const listenersOfType = this._listeners.get('dataavailable');
if (listenersOfType) {
listenersOfType.forEach((listener) => listener({ data: arrayBuffer }));
}
});

@@ -94,2 +108,2 @@ }

};
//# sourceMappingURL=media-recorder-constructor.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/media-recorder-constructor.js.map

@@ -1,7 +0,8 @@

import { OpaqueToken } from '@angular/core';
export declare const nativeMediaRecorderConstructor: OpaqueToken;
import { InjectionToken } from '@angular/core';
import { INativeMediaRecorder } from '../interfaces';
export declare const nativeMediaRecorderConstructor: InjectionToken<Promise<INativeMediaRecorder | null>>;
export declare const NATIVE_MEDIA_RECORDER_CONSTRUCTOR_PROVIDER: {
deps: OpaqueToken[];
provide: OpaqueToken;
useFactory: (window: any) => any;
deps: InjectionToken<Window>[];
provide: InjectionToken<Promise<INativeMediaRecorder | null>>;
useFactory: (window: Window) => Promise<INativeMediaRecorder | null>;
};

@@ -1,4 +0,4 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { window as wndw } from './window';
export const nativeMediaRecorderConstructor = new OpaqueToken('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');
export const nativeMediaRecorderConstructor = new InjectionToken('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');
export const NATIVE_MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

@@ -11,2 +11,2 @@ deps: [wndw],

};
//# sourceMappingURL=native-media-recorder-constructor.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/native-media-recorder-constructor.js.map

@@ -1,7 +0,7 @@

import { OpaqueToken } from '@angular/core';
declare const windowToken: OpaqueToken;
import { InjectionToken } from '@angular/core';
export declare const windowToken: InjectionToken<Window>;
export { windowToken as window };
export declare const WINDOW_PROVIDER: {
provide: OpaqueToken;
provide: InjectionToken<Window>;
useValue: {};
};

@@ -1,5 +0,5 @@

import { OpaqueToken } from '@angular/core';
const windowToken = new OpaqueToken('WINDOW');
import { InjectionToken } from '@angular/core';
export const windowToken = new InjectionToken('WINDOW');
export { windowToken as window };
export const WINDOW_PROVIDER = { provide: windowToken, useValue: (typeof window === 'undefined') ? {} : window };
//# sourceMappingURL=window.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/window.js.map

@@ -7,10 +7,10 @@ (function (global, factory) {

var encoders = new _angular_core.OpaqueToken('ENCODERS');
var encoders = new _angular_core.InjectionToken('ENCODERS');
var ncdrs$1 = [];
var ENCODERS_PROVIDER = { provide: encoders, useValue: ncdrs$1 };
var windowToken = new _angular_core.OpaqueToken('WINDOW');
var windowToken = new _angular_core.InjectionToken('WINDOW');
var WINDOW_PROVIDER = { provide: windowToken, useValue: typeof window === 'undefined' ? {} : window };
var isSupportedPromise = new _angular_core.OpaqueToken('IS_SUPPORTED_PROMISE');
var isSupportedPromise = new _angular_core.InjectionToken('IS_SUPPORTED_PROMISE');
var IS_SUPPORTED_PROMISE_PROVIDER = {

@@ -24,3 +24,3 @@ deps: [windowToken],

var nativeMediaRecorderConstructor = new _angular_core.OpaqueToken('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');
var nativeMediaRecorderConstructor = new _angular_core.InjectionToken('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');
var NATIVE_MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

@@ -38,3 +38,3 @@ deps: [windowToken],

var mediaRecorderConstructor = new _angular_core.OpaqueToken('MEDIA_RECORDER_CONSTRUCTOR');
var mediaRecorderConstructor = new _angular_core.InjectionToken('MEDIA_RECORDER_CONSTRUCTOR');
var MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

@@ -77,4 +77,8 @@ deps: [encoders, nativeMediaRecorderConstructor],

}
if (this._listeners.has(type)) {
this._listeners.get(type).add(listener);
if (this._listeners === null) {
throw new Error(); // @todo
}
var listenersOfType = this._listeners.get(type);
if (listenersOfType !== undefined) {
listenersOfType.add(listener);
} else {

@@ -86,3 +90,3 @@ this._listeners.set(type, new Set([listener]));

key: 'dispatchEvent',
value: function dispatchEvent(event) {
value: function dispatchEvent(_) {
return true;

@@ -96,6 +100,9 @@ }

}
if (this._listeners.has(type)) {
var listeners = this._listeners.get(type);
listeners.delete(listener);
if (listeners.size === 0) {
if (this._listeners === null) {
throw new Error(); // @todo
}
var listenersOfType = this._listeners.get(type);
if (listenersOfType !== undefined) {
listenersOfType.delete(listener);
if (listenersOfType.size === 0) {
this._listeners.delete(type);

@@ -111,2 +118,5 @@ }

}
if (this._extendedEncoder === null || this._stream === null) {
throw new Error();
}
this._extendedRecorder = this._extendedEncoder.start(this._stream);

@@ -122,11 +132,15 @@ }

}
if (this._extendedRecorder === null) {
throw new Error(); // @todo
}
this._extendedRecorder.stop().then(function (arrayBuffer) {
if (_this._listeners.has('dataavailable')) {
var listeners = _this._listeners.get('dataavailable');
if (listeners) {
listeners.forEach(function (listener) {
return listener({ data: arrayBuffer });
});
}
if (_this._listeners === null) {
throw new Error(); // @todo
}
var listenersOfType = _this._listeners.get('dataavailable');
if (listenersOfType) {
listenersOfType.forEach(function (listener) {
return listener({ data: arrayBuffer });
});
}
});

@@ -133,0 +147,0 @@ }

@@ -1,1 +0,1 @@

//# sourceMappingURL=index.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/index.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-encoder.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-encoder.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-format-recoder.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-format-recoder.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-recorder-constructor.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-recorder-constructor.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-recorder-options.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-recorder-options.js.map

@@ -1,1 +0,1 @@

//# sourceMappingURL=media-recorder.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/interfaces/media-recorder.js.map

@@ -22,2 +22,2 @@ import 'core-js/es7/reflect'; // tslint:disable-line:ordered-imports

export var isSupported = injector.get(isSupportedPromise);
//# sourceMappingURL=module.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/module.js.map

@@ -1,5 +0,5 @@

import { OpaqueToken } from '@angular/core';
export var encoders = new OpaqueToken('ENCODERS');
import { InjectionToken } from '@angular/core';
export var encoders = new InjectionToken('ENCODERS');
var ncdrs = [];
export var ENCODERS_PROVIDER = { provide: encoders, useValue: ncdrs };
//# sourceMappingURL=encoders.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/encoders.js.map

@@ -1,4 +0,4 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { window as wndw } from './window';
export var isSupportedPromise = new OpaqueToken('IS_SUPPORTED_PROMISE');
export var isSupportedPromise = new InjectionToken('IS_SUPPORTED_PROMISE');
export var IS_SUPPORTED_PROMISE_PROVIDER = {

@@ -9,2 +9,2 @@ deps: [wndw],

};
//# sourceMappingURL=is-supported-promise.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/is-supported-promise.js.map

@@ -1,5 +0,5 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { encoders } from './encoders';
import { nativeMediaRecorderConstructor } from './native-media-recorder-constructor';
export var mediaRecorderConstructor = new OpaqueToken('MEDIA_RECORDER_CONSTRUCTOR');
export var mediaRecorderConstructor = new InjectionToken('MEDIA_RECORDER_CONSTRUCTOR');
export var MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

@@ -38,5 +38,9 @@ deps: [

}
if (this._listeners.has(type)) {
this._listeners.get(type).add(listener);
if (this._listeners === null) {
throw new Error(); // @todo
}
var listenersOfType = this._listeners.get(type);
if (listenersOfType !== undefined) {
listenersOfType.add(listener);
}
else {

@@ -46,3 +50,3 @@ this._listeners.set(type, new Set([listener]));

};
MediaRecorder.prototype.dispatchEvent = function (event) {
MediaRecorder.prototype.dispatchEvent = function (_) {
return true;

@@ -54,6 +58,9 @@ };

}
if (this._listeners.has(type)) {
var listeners = this._listeners.get(type);
listeners.delete(listener);
if (listeners.size === 0) {
if (this._listeners === null) {
throw new Error(); // @todo
}
var listenersOfType = this._listeners.get(type);
if (listenersOfType !== undefined) {
listenersOfType.delete(listener);
if (listenersOfType.size === 0) {
this._listeners.delete(type);

@@ -67,2 +74,5 @@ }

}
if (this._extendedEncoder === null || this._stream === null) {
throw new Error();
}
this._extendedRecorder = this._extendedEncoder.start(this._stream);

@@ -75,11 +85,15 @@ };

}
if (this._extendedRecorder === null) {
throw new Error(); // @todo
}
this._extendedRecorder
.stop()
.then(function (arrayBuffer) {
if (_this._listeners.has('dataavailable')) {
var listeners = _this._listeners.get('dataavailable');
if (listeners) {
listeners.forEach(function (listener) { return listener({ data: arrayBuffer }); });
}
if (_this._listeners === null) {
throw new Error(); // @todo
}
var listenersOfType = _this._listeners.get('dataavailable');
if (listenersOfType) {
listenersOfType.forEach(function (listener) { return listener({ data: arrayBuffer }); });
}
});

@@ -96,2 +110,2 @@ };

};
//# sourceMappingURL=media-recorder-constructor.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/media-recorder-constructor.js.map

@@ -1,4 +0,4 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { window as wndw } from './window';
export var nativeMediaRecorderConstructor = new OpaqueToken('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');
export var nativeMediaRecorderConstructor = new InjectionToken('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');
export var NATIVE_MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

@@ -11,2 +11,2 @@ deps: [wndw],

};
//# sourceMappingURL=native-media-recorder-constructor.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/native-media-recorder-constructor.js.map

@@ -1,5 +0,5 @@

import { OpaqueToken } from '@angular/core';
var windowToken = new OpaqueToken('WINDOW');
import { InjectionToken } from '@angular/core';
export var windowToken = new InjectionToken('WINDOW');
export { windowToken as window };
export var WINDOW_PROVIDER = { provide: windowToken, useValue: (typeof window === 'undefined') ? {} : window };
//# sourceMappingURL=window.js.map
//# sourceMappingURL=/users/chrisguttandin/repositories/extendable-media-recorder/node_modules/tsconfig-holy-grail/src/providers/window.js.map

@@ -47,2 +47,3 @@ {

"ts-loader": "^2.2.2",
"tsconfig-holy-grail": "^2.2.13",
"tslint-config-holy-grail": "^9.0.8",

@@ -78,3 +79,3 @@ "typescript": "~2.3.4",

"types": "build/es2015/module.d.ts",
"version": "1.0.11"
"version": "1.0.12"
}

@@ -6,1 +6,3 @@ export * from './media-encoder';

export * from './media-recorder-options';
export * from './native-media-recorder-constructor';
export * from './native-media-recorder';

@@ -1,8 +0,8 @@

import { OpaqueToken } from '@angular/core';
import { IMediaEncoder } from '../interfaces';
import { InjectionToken } from '@angular/core';
import { IMediaFormatRecoder } from '../interfaces';
export const encoders = new OpaqueToken('ENCODERS');
export const encoders = new InjectionToken<IMediaFormatRecoder[]>('ENCODERS');
const ncdrs: IMediaEncoder[] = [];
const ncdrs: IMediaFormatRecoder[] = [];
export const ENCODERS_PROVIDER = { provide: encoders, useValue: ncdrs };

@@ -1,5 +0,5 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { window as wndw } from './window';
export const isSupportedPromise = new OpaqueToken('IS_SUPPORTED_PROMISE');
export const isSupportedPromise = new InjectionToken<Promise<boolean>>('IS_SUPPORTED_PROMISE');

@@ -9,3 +9,3 @@ export const IS_SUPPORTED_PROMISE_PROVIDER = {

provide: isSupportedPromise,
useFactory: (window): Promise<boolean> => Promise.resolve('MediaStream' in window)
useFactory: (window: Window): Promise<boolean> => Promise.resolve('MediaStream' in window)
};

@@ -1,7 +0,15 @@

import { OpaqueToken } from '@angular/core';
import { IMediaRecorder, IMediaRecorderConstructor, IMediaRecorderOptions } from '../interfaces';
import { InjectionToken } from '@angular/core';
import {
IMediaEncoder,
IMediaFormatRecoder,
IMediaRecorder,
IMediaRecorderConstructor,
IMediaRecorderOptions,
INativeMediaRecorder,
INativeMediaRecorderConstructor
} from '../interfaces';
import { encoders } from './encoders';
import { nativeMediaRecorderConstructor } from './native-media-recorder-constructor';
export const mediaRecorderConstructor = new OpaqueToken('MEDIA_RECORDER_CONSTRUCTOR');
export const mediaRecorderConstructor = new InjectionToken<IMediaRecorderConstructor>('MEDIA_RECORDER_CONSTRUCTOR');

@@ -15,16 +23,16 @@ export const MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

useFactory: (
ncdrs,
NativeMediaRecorder // tslint:disable-line:variable-name
ncdrs: IMediaEncoder[],
NativeMediaRecorder: INativeMediaRecorderConstructor // tslint:disable-line:variable-name
): IMediaRecorderConstructor => {
class MediaRecorder implements IMediaRecorder {
private _extendedEncoder;
private _extendedEncoder: null | IMediaEncoder;
private _extendedRecorder;
private _extendedRecorder: null | IMediaFormatRecoder;
private _listeners: Map<string, Set<Function>>;
private _listeners: null | Map<string, Set<Function>>;
private _nativeMediaRecorder;
private _nativeMediaRecorder: null | INativeMediaRecorder;
private _stream;
private _stream: null | MediaStream;

@@ -60,4 +68,10 @@ constructor (stream: MediaStream, options: IMediaRecorderOptions) {

if (this._listeners.has(type)) {
this._listeners.get(type).add(listener);
if (this._listeners === null) {
throw new Error(); // @todo
}
const listenersOfType = this._listeners.get(type);
if (listenersOfType !== undefined) {
listenersOfType.add(listener);
} else {

@@ -68,3 +82,3 @@ this._listeners.set(type, new Set([ listener ]));

public dispatchEvent (event: Event): boolean {
public dispatchEvent (_: Event): boolean {
return true;

@@ -78,8 +92,12 @@ }

if (this._listeners.has(type)) {
const listeners = this._listeners.get(type);
if (this._listeners === null) {
throw new Error(); // @todo
}
listeners.delete(listener);
const listenersOfType = this._listeners.get(type);
if (listeners.size === 0) {
if (listenersOfType !== undefined) {
listenersOfType.delete(listener);
if (listenersOfType.size === 0) {
this._listeners.delete(type);

@@ -95,2 +113,6 @@ }

if (this._extendedEncoder === null || this._stream === null) {
throw new Error();
}
this._extendedRecorder = this._extendedEncoder.start(this._stream);

@@ -104,11 +126,17 @@ }

if (this._extendedRecorder === null) {
throw new Error(); // @todo
}
this._extendedRecorder
.stop()
.then((arrayBuffer) => {
if (this._listeners.has('dataavailable')) {
const listeners = this._listeners.get('dataavailable');
if (this._listeners === null) {
throw new Error(); // @todo
}
if (listeners) {
listeners.forEach((listener) => listener({ data: arrayBuffer }));
}
const listenersOfType = this._listeners.get('dataavailable');
if (listenersOfType) {
listenersOfType.forEach((listener) => listener({ data: arrayBuffer }));
}

@@ -115,0 +143,0 @@ });

@@ -1,5 +0,6 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
import { INativeMediaRecorder } from '../interfaces';
import { window as wndw } from './window';
export const nativeMediaRecorderConstructor = new OpaqueToken('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');
export const nativeMediaRecorderConstructor = new InjectionToken<Promise<null | INativeMediaRecorder>>('NATIVE_MEDIA_RECORDER_CONSTRUCTOR');

@@ -9,5 +10,5 @@ export const NATIVE_MEDIA_RECORDER_CONSTRUCTOR_PROVIDER = {

provide: nativeMediaRecorderConstructor,
useFactory: (window) => (window.hasOwnProperty('MediaRecorder')) ?
window.MediaRecorder :
useFactory: (window: Window): Promise<null | INativeMediaRecorder> => (window.hasOwnProperty('MediaRecorder')) ?
(<any> window).MediaRecorder :
null
};

@@ -1,4 +0,4 @@

import { OpaqueToken } from '@angular/core';
import { InjectionToken } from '@angular/core';
const windowToken = new OpaqueToken('WINDOW');
export const windowToken = new InjectionToken<Window>('WINDOW');

@@ -5,0 +5,0 @@ export { windowToken as window };

{
"compileOnSave": false,
"compilerOptions": {
"declaration": true,
"experimentalDecorators": true,
"lib": [ "dom", "es2015" ],
"module": "es2015",
"moduleResolution": "node",
"outDir": "../build/es2015",
"sourceMap": true,
"target": "es2015",
"typeRoots": [
"../node_modules/@types"
]
}
"extends": "../node_modules/tsconfig-holy-grail/src/tsconfig-browser.json"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc