UNPKG

react-say

Version:

[![npm version](https://badge.fury.io/js/react-say.svg)](https://badge.fury.io/js/react-say) [![Build Status](https://travis-ci.org/compulim/react-say.svg?branch=master)](https://travis-ci.org/compulim/react-say)

82 lines (70 loc) 6.98 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = createMockSpeechSynthesisPonyfill; exports.jestFnWithPromises = jestFnWithPromises; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _createDeferred = _interopRequireDefault(require("./createDeferred")); var _events = _interopRequireDefault(require("events")); function jestFnWithPromises(implementation) { var fn = jest.fn(function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } fn.deferreds[fn.deferreds.length - 1].resolve(args); fn.deferreds = [].concat((0, _toConsumableArray2["default"])(fn.deferreds), [(0, _createDeferred["default"])()]); fn.promises = fn.deferreds.map(function (_ref) { var promise = _ref.promise; return promise; }); implementation && implementation.apply(void 0, args); }); var firstDeferred = (0, _createDeferred["default"])(); fn.deferreds = [firstDeferred]; fn.promises = [firstDeferred.promise]; return fn; } function createMockSpeechSynthesisPonyfill() { var SpeechSynthesisUtterance = /*#__PURE__*/function () { function SpeechSynthesisUtterance(text) { (0, _classCallCheck2["default"])(this, SpeechSynthesisUtterance); this._events = new _events["default"](); this.text = text; } (0, _createClass2["default"])(SpeechSynthesisUtterance, [{ key: "addEventListener", value: function addEventListener(name, handler) { this._events.addListener(name, handler); } }, { key: "dispatchEvent", value: function dispatchEvent(event) { this._events.emit(event.type, event); } }, { key: "removeEventListener", value: function removeEventListener(name, handler) { this._events.removeListener(name, handler); } }]); return SpeechSynthesisUtterance; }(); return { speechSynthesis: { cancel: jestFnWithPromises(), getVoices: function getVoices() { return [{ name: 'Cantonese', voiceURI: 'http://localhost/voice/zh-YUE' }]; }, speak: jestFnWithPromises() }, SpeechSynthesisUtterance: SpeechSynthesisUtterance }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVNb2NrU3BlZWNoU3ludGhlc2lzUG9ueWZpbGwuanMiXSwibmFtZXMiOlsiamVzdEZuV2l0aFByb21pc2VzIiwiaW1wbGVtZW50YXRpb24iLCJmbiIsImplc3QiLCJhcmdzIiwiZGVmZXJyZWRzIiwibGVuZ3RoIiwicmVzb2x2ZSIsInByb21pc2VzIiwibWFwIiwicHJvbWlzZSIsImZpcnN0RGVmZXJyZWQiLCJjcmVhdGVNb2NrU3BlZWNoU3ludGhlc2lzUG9ueWZpbGwiLCJTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UiLCJ0ZXh0IiwiX2V2ZW50cyIsIkV2ZW50RW1pdHRlciIsIm5hbWUiLCJoYW5kbGVyIiwiYWRkTGlzdGVuZXIiLCJldmVudCIsImVtaXQiLCJ0eXBlIiwicmVtb3ZlTGlzdGVuZXIiLCJzcGVlY2hTeW50aGVzaXMiLCJjYW5jZWwiLCJnZXRWb2ljZXMiLCJ2b2ljZVVSSSIsInNwZWFrIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRU8sU0FBU0Esa0JBQVQsQ0FBNEJDLGNBQTVCLEVBQTRDO0FBQ2pELE1BQU1DLEVBQUUsR0FBR0MsSUFBSSxDQUFDRCxFQUFMLENBQVEsWUFBYTtBQUFBLHNDQUFURSxJQUFTO0FBQVRBLE1BQUFBLElBQVM7QUFBQTs7QUFDOUJGLElBQUFBLEVBQUUsQ0FBQ0csU0FBSCxDQUFhSCxFQUFFLENBQUNHLFNBQUgsQ0FBYUMsTUFBYixHQUFzQixDQUFuQyxFQUFzQ0MsT0FBdEMsQ0FBOENILElBQTlDO0FBQ0FGLElBQUFBLEVBQUUsQ0FBQ0csU0FBSCxpREFBbUJILEVBQUUsQ0FBQ0csU0FBdEIsSUFBaUMsaUNBQWpDO0FBQ0FILElBQUFBLEVBQUUsQ0FBQ00sUUFBSCxHQUFjTixFQUFFLENBQUNHLFNBQUgsQ0FBYUksR0FBYixDQUFpQjtBQUFBLFVBQUdDLE9BQUgsUUFBR0EsT0FBSDtBQUFBLGFBQWlCQSxPQUFqQjtBQUFBLEtBQWpCLENBQWQ7QUFFQVQsSUFBQUEsY0FBYyxJQUFJQSxjQUFjLE1BQWQsU0FBa0JHLElBQWxCLENBQWxCO0FBQ0QsR0FOVSxDQUFYO0FBUUEsTUFBTU8sYUFBYSxHQUFHLGlDQUF0QjtBQUVBVCxFQUFBQSxFQUFFLENBQUNHLFNBQUgsR0FBZSxDQUFDTSxhQUFELENBQWY7QUFDQVQsRUFBQUEsRUFBRSxDQUFDTSxRQUFILEdBQWMsQ0FBQ0csYUFBYSxDQUFDRCxPQUFmLENBQWQ7QUFFQSxTQUFPUixFQUFQO0FBQ0Q7O0FBRWMsU0FBU1UsaUNBQVQsR0FBNkM7QUFBQSxNQUNwREMsd0JBRG9EO0FBRXhELHNDQUFZQyxJQUFaLEVBQWtCO0FBQUE7QUFDaEIsV0FBS0MsT0FBTCxHQUFlLElBQUlDLGtCQUFKLEVBQWY7QUFFQSxXQUFLRixJQUFMLEdBQVlBLElBQVo7QUFDRDs7QUFOdUQ7QUFBQTtBQUFBLGFBUXhELDBCQUFpQkcsSUFBakIsRUFBdUJDLE9BQXZCLEVBQWdDO0FBQzlCLGFBQUtILE9BQUwsQ0FBYUksV0FBYixDQUF5QkYsSUFBekIsRUFBK0JDLE9BQS9CO0FBQ0Q7QUFWdUQ7QUFBQTtBQUFBLGFBWXhELHVCQUFjRSxLQUFkLEVBQXFCO0FBQ25CLGFBQUtMLE9BQUwsQ0FBYU0sSUFBYixDQUFrQkQsS0FBSyxDQUFDRSxJQUF4QixFQUE4QkYsS0FBOUI7QUFDRDtBQWR1RDtBQUFBO0FBQUEsYUFnQnhELDZCQUFvQkgsSUFBcEIsRUFBMEJDLE9BQTFCLEVBQW1DO0FBQ2pDLGFBQUtILE9BQUwsQ0FBYVEsY0FBYixDQUE0Qk4sSUFBNUIsRUFBa0NDLE9BQWxDO0FBQ0Q7QUFsQnVEO0FBQUE7QUFBQTs7QUFxQjFELFNBQU87QUFDTE0sSUFBQUEsZUFBZSxFQUFFO0FBQ2ZDLE1BQUFBLE1BQU0sRUFBRXpCLGtCQUFrQixFQURYO0FBRWYwQixNQUFBQSxTQUFTLEVBQUU7QUFBQSxlQUFNLENBQUM7QUFDaEJULFVBQUFBLElBQUksRUFBRSxXQURVO0FBRWhCVSxVQUFBQSxRQUFRLEVBQUU7QUFGTSxTQUFELENBQU47QUFBQSxPQUZJO0FBTWZDLE1BQUFBLEtBQUssRUFBRTVCLGtCQUFrQjtBQU5WLEtBRFo7QUFTTGEsSUFBQUEsd0JBQXdCLEVBQXhCQTtBQVRLLEdBQVA7QUFXRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVEZWZlcnJlZCBmcm9tICcuL2NyZWF0ZURlZmVycmVkJztcbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSAnZXZlbnRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGplc3RGbldpdGhQcm9taXNlcyhpbXBsZW1lbnRhdGlvbikge1xuICBjb25zdCBmbiA9IGplc3QuZm4oKC4uLmFyZ3MpID0+IHtcbiAgICBmbi5kZWZlcnJlZHNbZm4uZGVmZXJyZWRzLmxlbmd0aCAtIDFdLnJlc29sdmUoYXJncyk7XG4gICAgZm4uZGVmZXJyZWRzID0gWy4uLmZuLmRlZmVycmVkcywgY3JlYXRlRGVmZXJyZWQoKV07XG4gICAgZm4ucHJvbWlzZXMgPSBmbi5kZWZlcnJlZHMubWFwKCh7IHByb21pc2UgfSkgPT4gcHJvbWlzZSk7XG5cbiAgICBpbXBsZW1lbnRhdGlvbiAmJiBpbXBsZW1lbnRhdGlvbiguLi5hcmdzKTtcbiAgfSk7XG5cbiAgY29uc3QgZmlyc3REZWZlcnJlZCA9IGNyZWF0ZURlZmVycmVkKCk7XG5cbiAgZm4uZGVmZXJyZWRzID0gW2ZpcnN0RGVmZXJyZWRdO1xuICBmbi5wcm9taXNlcyA9IFtmaXJzdERlZmVycmVkLnByb21pc2VdO1xuXG4gIHJldHVybiBmbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlTW9ja1NwZWVjaFN5bnRoZXNpc1BvbnlmaWxsKCkge1xuICBjbGFzcyBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uge1xuICAgIGNvbnN0cnVjdG9yKHRleHQpIHtcbiAgICAgIHRoaXMuX2V2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgICAgdGhpcy50ZXh0ID0gdGV4dDtcbiAgICB9XG5cbiAgICBhZGRFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIpIHtcbiAgICAgIHRoaXMuX2V2ZW50cy5hZGRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyKTtcbiAgICB9XG5cbiAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KSB7XG4gICAgICB0aGlzLl9ldmVudHMuZW1pdChldmVudC50eXBlLCBldmVudCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyKSB7XG4gICAgICB0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXIobmFtZSwgaGFuZGxlcik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzcGVlY2hTeW50aGVzaXM6IHtcbiAgICAgIGNhbmNlbDogamVzdEZuV2l0aFByb21pc2VzKCksXG4gICAgICBnZXRWb2ljZXM6ICgpID0+IFt7XG4gICAgICAgIG5hbWU6ICdDYW50b25lc2UnLFxuICAgICAgICB2b2ljZVVSSTogJ2h0dHA6Ly9sb2NhbGhvc3Qvdm9pY2UvemgtWVVFJ1xuICAgICAgfV0sXG4gICAgICBzcGVhazogamVzdEZuV2l0aFByb21pc2VzKClcbiAgICB9LFxuICAgIFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZVxuICB9O1xufVxuIl19