From 0e7a2ca54e623bcaed6999e973ca148e4b30d51c Mon Sep 17 00:00:00 2001 From: Eric Lewis Date: Wed, 22 May 2019 03:18:24 -0700 Subject: [PATCH] add spec for FileReaderModule (#24904) Summary: Part of #24875. ## Changelog [General] [Added] - add TM spec for FileReaderModule Pull Request resolved: https://github.com/facebook/react-native/pull/24904 Reviewed By: fkgozali Differential Revision: D15391738 Pulled By: rickhanlonii fbshipit-source-id: 69e6ff53aba2d2227607905e1f70310bdd01d224 --- Libraries/Blob/FileReader.js | 6 +++--- Libraries/Blob/NativeFileReaderModule.js | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 Libraries/Blob/NativeFileReaderModule.js diff --git a/Libraries/Blob/FileReader.js b/Libraries/Blob/FileReader.js index 7d8116fce9c..b9113966f1a 100644 --- a/Libraries/Blob/FileReader.js +++ b/Libraries/Blob/FileReader.js @@ -12,7 +12,7 @@ const EventTarget = require('event-target-shim'); const Blob = require('./Blob'); -const {FileReaderModule} = require('../BatchedBridge/NativeModules'); +import NativeFileReaderModule from './NativeFileReaderModule'; type ReadyState = | 0 // EMPTY @@ -87,7 +87,7 @@ class FileReader extends EventTarget(...READER_EVENTS) { readAsDataURL(blob: Blob) { this._aborted = false; - FileReaderModule.readAsDataURL(blob.data).then( + NativeFileReaderModule.readAsDataURL(blob.data).then( (text: string) => { if (this._aborted) { return; @@ -108,7 +108,7 @@ class FileReader extends EventTarget(...READER_EVENTS) { readAsText(blob: Blob, encoding: string = 'UTF-8') { this._aborted = false; - FileReaderModule.readAsText(blob.data, encoding).then( + NativeFileReaderModule.readAsText(blob.data, encoding).then( (text: string) => { if (this._aborted) { return; diff --git a/Libraries/Blob/NativeFileReaderModule.js b/Libraries/Blob/NativeFileReaderModule.js new file mode 100644 index 00000000000..b784d8c6f82 --- /dev/null +++ b/Libraries/Blob/NativeFileReaderModule.js @@ -0,0 +1,21 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +'use strict'; + +import type {TurboModule} from 'RCTExport'; +import * as TurboModuleRegistry from 'TurboModuleRegistry'; + +export interface Spec extends TurboModule { + +readAsDataURL: (data: Object) => Promise; + +readAsText: (data: Object, encoding: string) => Promise; +} + +export default TurboModuleRegistry.getEnforcing('FileReaderModule');