Remove ImageStore JS files from RN open source

Summary: This is being removed from RN as part of Lean Core.

Reviewed By: rickhanlonii

Differential Revision: D15666249

fbshipit-source-id: 00612b999184f216cc3deb72c6b24af359060abe
This commit is contained in:
Christoph Nakazawa authored and Facebook Github Bot committed 2019-06-07 06:39:29 -07:00
1 parent 93b9ac74e5
commit 8e16a60faa
3 files changed
+14 -147

No files matched your search

-103
View File
@@ -1,103 +0,0 @@
/**
* 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 NativeImageStore from './NativeImageStore';
const Platform = require('../Utilities/Platform');
const warnOnce = require('../Utilities/warnOnce');
function warnUnimplementedMethod(methodName: string): void {
warnOnce(
`imagestore-${methodName}`,
`react-native: ImageStore.${methodName}() is not implemented on ${
Platform.OS
}`,
);
}
class ImageStore {
/**
* Check if the ImageStore contains image data for the specified URI.
* @platform ios
*/
static hasImageForTag(uri: string, callback: (hasImage: boolean) => void) {
if (NativeImageStore.hasImageForTag) {
NativeImageStore.hasImageForTag(uri, callback);
} else {
warnUnimplementedMethod('hasImageForTag');
}
}
/**
* Delete an image from the ImageStore. Images are stored in memory and
* must be manually removed when you are finished with them, otherwise they
* will continue to use up RAM until the app is terminated. It is safe to
* call `removeImageForTag()` without first calling `hasImageForTag()`, it
* will simply fail silently.
* @platform ios
*/
static removeImageForTag(uri: string) {
if (NativeImageStore.removeImageForTag) {
NativeImageStore.removeImageForTag(uri);
} else {
warnUnimplementedMethod('removeImageForTag');
}
}
/**
* Stores a base64-encoded image in the ImageStore, and returns a URI that
* can be used to access or display the image later. Images are stored in
* memory only, and must be manually deleted when you are finished with
* them by calling `removeImageForTag()`.
*
* Note that it is very inefficient to transfer large quantities of binary
* data between JS and native code, so you should avoid calling this more
* than necessary.
* @platform ios
*/
static addImageFromBase64(
base64ImageData: string,
success: (uri: string) => void,
failure: (error: any) => void,
) {
if (NativeImageStore.addImageFromBase64) {
NativeImageStore.addImageFromBase64(base64ImageData, success, failure);
} else {
warnUnimplementedMethod('addImageFromBase64');
}
}
/**
* Retrieves the base64-encoded data for an image in the ImageStore. If the
* specified URI does not match an image in the store, the failure callback
* will be called.
*
* Note that it is very inefficient to transfer large quantities of binary
* data between JS and native code, so you should avoid calling this more
* than necessary. To display an image in the ImageStore, you can just pass
* the URI to an `<Image/>` component; there is no need to retrieve the
* base64 data.
*/
static getBase64ForTag(
uri: string,
success: (base64ImageData: string) => void,
failure: (error: any) => void,
) {
if (NativeImageStore.getBase64ForTag) {
NativeImageStore.getBase64ForTag(uri, success, failure);
} else {
warnUnimplementedMethod('getBase64ForTag');
}
}
}
module.exports = ImageStore;
-34
View File
@@ -1,34 +0,0 @@
/**
* 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 '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
export interface Spec extends TurboModule {
// Common
+getBase64ForTag: (
uri: string,
success: (base64ImageData: string) => void,
failure: (error: Object) => void,
) => void;
// iOS-only
+hasImageForTag: (uri: string, callback: (hasImage: boolean) => void) => void;
+removeImageForTag: (uri: string) => void;
+addImageFromBase64: (
base64ImageData: string,
success: (uri: string) => void,
failure: (error: Object) => void,
) => void;
}
export default TurboModuleRegistry.getEnforcing<Spec>('ImageStoreManager');
+14 -10
View File
@@ -61,16 +61,6 @@ module.exports = {
);
return require('../Image/ImageEditor');
},
get ImageStore() {
warnOnce(
'imagestore-deprecation',
'ImageStore is deprecated and will be removed in a future release. ' +
'To get a base64-encoded string from a local image use either of the following third-party libraries:' +
"* expo-file-system: `readAsStringAsync(filepath, 'base64')`" +
"* react-native-fs: `readFile(filepath, 'base64')`",
);
return require('../Image/ImageStore');
},
get InputAccessoryView() {
return require('../Components/TextInput/InputAccessoryView');
},
@@ -413,4 +403,18 @@ if (__DEV__) {
);
},
});
// $FlowFixMe This is intentional: Flow will error when attempting to access ImageStore.
Object.defineProperty(module.exports, 'ImageStore', {
configurable: true,
get() {
invariant(
false,
'ImageStore has been removed from React Native. ' +
'To get a base64-encoded string from a local image use either of the following third-party libraries:' +
"* expo-file-system: `readAsStringAsync(filepath, 'base64')`" +
"* react-native-fs: `readFile(filepath, 'base64')`",
);
},
});
}