-
Notifications
You must be signed in to change notification settings - Fork 236
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactored js portion of library into typescript
- Loading branch information
1 parent
570dedf
commit 77bcc0f
Showing
8 changed files
with
166 additions
and
161 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,7 +7,7 @@ | |
node_modules/ | ||
npm-debug.log | ||
yarn-error.log | ||
lib/ | ||
build/ | ||
|
||
# Xcode | ||
# | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
import { NativeModules } from 'react-native'; | ||
|
||
const { ReactNativeBiometrics: bridge } = NativeModules; | ||
|
||
interface IsSensorAvailableResult { | ||
available: boolean | ||
biometryType?: string | ||
error?: string | ||
} | ||
|
||
interface CreateKeysResult { | ||
publicKey: string | ||
} | ||
|
||
interface BiometricKeysExistResult { | ||
keysExist: boolean | ||
} | ||
|
||
interface DeleteKeysResult { | ||
keysDeleted: boolean | ||
} | ||
|
||
interface CreateSignatureOptions { | ||
promptMessage: string | ||
payload: string | ||
cancelButtonText?: string | ||
} | ||
|
||
interface CreateSignatureResult { | ||
success: boolean | ||
signature?: string | ||
error?: string | ||
} | ||
|
||
interface SimplePromptOptions { | ||
promptMessage: string | ||
cancelButtonText?: string | ||
} | ||
|
||
interface SimplePromptResult { | ||
success: boolean | ||
error?: string | ||
} | ||
|
||
module ReactNativeBiometrics { | ||
/** | ||
* Enum for touch id sensor type | ||
*/ | ||
export const TouchID = 'TouchID'; | ||
/** | ||
* Enum for face id sensor type | ||
*/ | ||
export const FaceID = 'FaceID'; | ||
/** | ||
* Enum for generic biometrics (this is the only value available on android) | ||
*/ | ||
export const Biometrics = 'Biometrics'; | ||
|
||
/** | ||
* Returns promise that resolves to an object with object.biometryType = Biometrics | TouchID | FaceID | ||
* @returns {Promise<Object>} Promise that resolves to an object with details about biometrics available | ||
*/ | ||
export function isSensorAvailable(): Promise<IsSensorAvailableResult> { | ||
return bridge.isSensorAvailable(); | ||
} | ||
/** | ||
* Creates a public private key pair,returns promise that resolves to | ||
* an object with object.publicKey, which is the public key of the newly generated key pair | ||
* @returns {Promise<Object>} Promise that resolves to object with details about the newly generated public key | ||
*/ | ||
export function createKeys(): Promise<CreateKeysResult> { | ||
return bridge.createKeys(); | ||
} | ||
|
||
/** | ||
* Returns promise that resolves to an object with object.keysExists = true | false | ||
* indicating if the keys were found to exist or not | ||
* @returns {Promise<Object>} Promise that resolves to object with details aobut the existence of keys | ||
*/ | ||
export function biometricKeysExist(): Promise<BiometricKeysExistResult> { | ||
return bridge.biometricKeysExist(); | ||
} | ||
|
||
/** | ||
* Returns promise that resolves to an object with true | false | ||
* indicating if the keys were properly deleted | ||
* @returns {Promise<Object>} Promise that resolves to an object with details about the deletion | ||
*/ | ||
export function deleteKeys(): Promise<DeleteKeysResult> { | ||
return bridge.deleteKeys(); | ||
} | ||
|
||
/** | ||
* Prompts user with biometrics dialog using the passed in prompt message and | ||
* returns promise that resolves to an object with object.signature, | ||
* which is cryptographic signature of the payload | ||
* @param {Object} createSignatureOptions | ||
* @param {string} createSignatureOptions.promptMessage | ||
* @param {string} createSignatureOptions.payload | ||
* @param {string} createSignatureOptions.cancelButtonText (Android only) | ||
* @returns {Promise<Object>} Promise that resolves to an object cryptographic signature details | ||
*/ | ||
export function createSignature(createSignatureOptions: CreateSignatureOptions): Promise<CreateSignatureResult> { | ||
if (!createSignatureOptions.cancelButtonText) { | ||
createSignatureOptions.cancelButtonText = 'Cancel'; | ||
} | ||
|
||
return bridge.createSignature(createSignatureOptions); | ||
} | ||
|
||
/** | ||
* Prompts user with biometrics dialog using the passed in prompt message and | ||
* returns promise that resolves to an object with object.success = true if the user passes, | ||
* object.success = false if the user cancels, and rejects if anything fails | ||
* @param {Object} simplePromptOptions | ||
* @param {string} simplePromptOptions.promptMessage | ||
* @param {string} simplePromptOptions.cancelButtonText (Android only) | ||
* @returns {Promise<Object>} Promise that resolves an object with details about the biometrics result | ||
*/ | ||
export function simplePrompt(simplePromptOptions: SimplePromptOptions): Promise<SimplePromptResult> { | ||
if (!simplePromptOptions.cancelButtonText) { | ||
simplePromptOptions.cancelButtonText = 'Cancel'; | ||
} | ||
|
||
return bridge.simplePrompt(simplePromptOptions); | ||
} | ||
} | ||
|
||
export default ReactNativeBiometrics; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
declare module 'react-native' |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{ | ||
"compilerOptions": { | ||
"strict": true, | ||
"noImplicitAny": true, | ||
"target": "es5", | ||
"declaration": true, | ||
"sourceMap": true, | ||
"moduleResolution": "node", | ||
"outDir": "build", | ||
"lib": ["es2015", "es2015.promise"] | ||
}, | ||
"include": [ | ||
"index.ts", | ||
"modules.d.ts" | ||
] | ||
} |