2.8.0 • Published 2 years ago

react-native-jolocom v2.8.0

Weekly downloads
105
License
Apache-2.0
Repository
github
Last release
2 years ago

react-native-jolocom

Jolocom SDK integration with React Native.

Getting started

Install

You need to install two packages, the @jolocom/native-core-react-native package contains the actual binding code and is generated from https://github.com/jolocom/rust-multi-target/tree/master/react-native

$ yarn add react-native-jolocom @jolocom/native-core-react-native

OR

$ npm install --save react-native-jolocom @jolocom/native-core-react-native

Mostly automatic installation

For React Native version >= 0.60, Android is automatic, but for iOS you need to do:

$ cd ios
$ pod install

For React Native version < 0.60 you need to link

$ react-native link react-native-jolocom @jolocom/native-core-react-native

Configure Metro

Some of the dependency require libraries from node and must be polyfilled. You will need to add this resolver.extraNodeModules config to your metro.config.js

/**
 * Metro configuration for React Native, to polyfill some required libraries
 */

module.exports = {
  resolver: {
    extraNodeModules: {
      // React Native bindings for jolocom/wallet-rs
      crypto: require.resolve("react-native-crypto"),
      // Polyfills for node packages
      "crypto-browserify": require.resolve("react-native-crypto"),
      stream: require.resolve("stream-browserify"),
      vm: require.resolve("vm-browserify"),
    },
  },
};

And of course you need to add those as dependency in your project:

$ yarn add react-native-crypto stream-browserify vm-browserify

Configure SDK storage

The SDK requires a storage backend, and there is currently only JolocomTypeormStorage implemented. An example typeorm configuration ormconfig.ts is provided below

// ormconfig.ts

import { entityList } from "@jolocom/sdk-storage-typeorm";
import { ConnectionOptions } from "typeorm";

// TODO Add migrations when you create any!
const migrations: any[] = [];

export default {
  type: "react-native",
  database: "MyApplicationData",
  location: "default",
  logging: ["error", "warn", "schema"],
  entities: entityList,
  migrations,
  migrationsRun: true,
  synchronize: false,
  cli: {
    migrationsDir: "src/migrations",
  },
} as ConnectionOptions;

Usage

Create an initializer function as follows and call it at an appropriate point during app initialisation. Note that it needs to be asynchronous due to typeorm setting up a database connection.

import {
  JolocomSDK,
  JolocomTypeormStorage,
  JolocomKeychainPasswordStore,
} from "react-native-jolocom";

import { createConnection } from "typeorm";
import ormconfig from "./ormconfig.ts";

async function initJolocom() {
  const conn = await createConnection(ormconfig);
  const storage = new JolocomTypeormStorage(conn);
  const passwordStore = new JolocomKeychainPasswordStore();
  return new JolocomSDK({ storage, passwordStore });
}

The SDK instance can be used as usual. Refer to https://github.com/jolocom/jolocom-sdk

2.8.0

2 years ago

2.7.2

2 years ago

2.7.1

2 years ago

2.7.0

3 years ago

2.5.6

3 years ago

2.6.0

3 years ago

2.5.0

3 years ago

2.5.0-rc1

3 years ago

2.5.0-rc2

3 years ago

2.3.0

3 years ago

2.4.0-rc0

3 years ago

2.3.0-rc1

3 years ago

2.3.0-rc0

3 years ago

2.2.0

3 years ago

2.1.0

3 years ago

2.0.0

4 years ago

2.0.0-rc5

4 years ago

2.0.0-rc4

4 years ago

2.0.0-rc3

4 years ago

2.0.0-rc2

4 years ago

2.0.0-rc1

4 years ago

2.0.0-rc0

4 years ago

1.4.11

4 years ago

1.4.13

4 years ago

1.4.12

4 years ago

1.4.9

4 years ago

1.4.8

4 years ago

1.4.10

4 years ago

1.4.7

4 years ago

1.4.6

4 years ago

1.4.5

4 years ago

1.4.4

4 years ago

1.4.3

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.1.3

4 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago