react-say-fork
Version:
# Goal and TODOs * Add Typescript support * Make compononents style-customizable
68 lines (67 loc) • 2.65 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.jestFnWithPromises = void 0;
var events_1 = require("events");
var createDeferred_1 = require("./createDeferred");
function jestFnWithPromises(implementation) {
var fn = jest.fn(function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
fn.deferreds[fn.deferreds.length - 1].resolve(args);
fn.deferreds = __spreadArray(__spreadArray([], fn.deferreds, true), [(0, createDeferred_1.default)()], false);
fn.promises = fn.deferreds.map(function (_a) {
var promise = _a.promise;
return promise;
});
implementation && implementation.apply(void 0, args);
});
var firstDeferred = (0, createDeferred_1.default)();
fn.deferreds = [firstDeferred];
fn.promises = [firstDeferred.promise];
return fn;
}
exports.jestFnWithPromises = jestFnWithPromises;
function createMockSpeechSynthesisPonyfill() {
var SpeechSynthesisUtterance = /** @class */ (function () {
function SpeechSynthesisUtterance(text) {
this._events = new events_1.default();
this.text = text;
}
SpeechSynthesisUtterance.prototype.addEventListener = function (name, handler) {
var _a;
(_a = this._events) === null || _a === void 0 ? void 0 : _a.addListener(name, handler);
};
SpeechSynthesisUtterance.prototype.dispatchEvent = function (event) {
this._events.emit(event.type, event);
};
SpeechSynthesisUtterance.prototype.removeEventListener = function (name, handler) {
this._events.removeListener(name, handler);
};
return SpeechSynthesisUtterance;
}());
return {
speechSynthesis: {
cancel: jestFnWithPromises(),
getVoices: function () { return [
{
name: 'Cantonese',
voiceURI: 'http://localhost/voice/zh-YUE',
},
]; },
speak: jestFnWithPromises(),
},
SpeechSynthesisUtterance: SpeechSynthesisUtterance,
};
}
exports.default = createMockSpeechSynthesisPonyfill;