1.11.5 • Published 9 months ago

izanami-node v1.11.5

Weekly downloads
17
License
Apache-2.0
Repository
github
Last release
9 months ago

Node js client

Install

npm install izanami-node

Import

const Izanami = require('izanami-node');

Usage

The node client expose conveniant methods to call Izanami.

Configure the client:

const izanamicConfig = Object.assign({}, Izanami.defaultConfig, {
  host: 'http://localhost:9000',
  clientId: process.env.CLIENT_ID || 'xxxx',
  clientSecret: process.env.CLIENT_SECRET || 'xxxx',
});

// Get a configs client
const configClient = Izanami.configClient(izanamicConfig);
// Get a feature client 
const featureClient = Izanami.featureClient(izanamicConfig);
// Get a experiments client 
const experimentsClient = Izanami.experimentsClient(izanamicConfig);

Configs

Get a config

configClient.config("my.config.id").then(config => {
  console.log('The config is ', config);
  tree.should.be.deep.equal({
      "value": "test"
  })
});

Get the configs tree

configClient.configs("my.config.*").then(tree => {
  tree.should.be.deep.equal({
      "my": {
        "config": {
          "id": {
            "value": "test"
          },
          "id2": {
            "another": {
              "value": "a value"
            }
          }
        }
      }
    });
});

Features

Check a feature

featureClient.checkFeature("my.feature.id").then(active => {
  console.log('The feature is ', active);
});

Or with a context:

featureClient.checkFeature("my.feature.id", {client: "ragnard.lodbrock@gmail.com"}).then(active => {
  console.log('The feature is ', active);
});

Get the features tree

featureClient.features("my.feature.*").then(tree => {
  tree.should.be.deep.equal({
    "my": {
      "feature": {
        "id": {
          "active": true
        },
        "id2": {
          "active": false
        }
      }
    }
  });
});

Or with a context:

featureClient.features("my.feature.*", {client: "ragnard.lodbrock@gmail.com"}).then(tree => {
  tree.should.be.deep.equal({
    "my": {
      "feature": {
        "id": {
          "active": true
        },
        "id2": {
          "active": false
        }
      }
    }
  });
});

Experiments

Get an experiment

experimentsClient.experiment("my.experiment.id").then(experiment => {
  //Empty json if the experiment doesn't exists 
  console.log('The experiment is ', experiment);
});

Get experiments as tree

experimentsClient.experiments("my.experiment.*", "ragnard.lodbrock@gmail.com").then(tree => {
  //Empty json if the experiment doesn't exists 
  console.log('The experiment is ', experiment);
  tree.should.be.deep.equal({
    "my": {
      "experiment": {
        "id": {
          "variant": "A"
        },
        "id2": {
          "variant": "B"
        }
      }
    }
  })
});

Get a variant

experimentsClient.variantFor("my.experiment.id", "ragnard.lodbrock@gmail.com").then(variant => {
  //Empty json if the variant doesn't exists 
  console.log('The variant is ', variant);
});

Mark variant displayed

experimentsClient.displayed("my.experiment.id", "ragnard.lodbrock@gmail.com").then(__ => {
  console.log('The variant is marked displayed');
});

Mark variant won

experimentsClient.won("my.experiment.id", "ragnard.lodbrock@gmail.com").then(__ => {
  console.log('The variant is marked won');
});

Express proxy

You use express as a proxy to expose Izanami to the client side.

const app = express();

Izanami.expressProxy({
  sessionPath: '/api/izanami', // default '/api/me'
  featureClient, // Optional
  experimentsClient, // Optional
  configClient, // Optional
  app, // Express app 
  path: 'my.namespace.*' // The pattern to filter experiments, configs and features
});
1.11.5

9 months ago

1.11.4

1 year ago

1.11.3

1 year ago

1.11.2

1 year ago

1.11.1

1 year ago

1.11.0

1 year ago

1.10.20

1 year ago

1.10.21

1 year ago

1.10.19

1 year ago

1.10.18

1 year ago

1.10.17

2 years ago

1.10.15

2 years ago

1.10.16

2 years ago

1.10.14

2 years ago

1.10.13

2 years ago

1.10.3

3 years ago

1.10.2

3 years ago

1.9.1

3 years ago

1.10.1

3 years ago

1.9.2

3 years ago

1.10.0

3 years ago

1.9.0

3 years ago

1.9.0-BETA1

3 years ago

1.8.5

3 years ago

1.8.4

3 years ago

1.8.3

3 years ago

1.8.3-BETA5

3 years ago

1.8.3-BETA4

3 years ago

1.8.3-BETA3

3 years ago

1.8.3-BETA1

3 years ago

1.8.3-BETA2

3 years ago

1.8.2

4 years ago

1.8.1

4 years ago

1.8.0

4 years ago

1.7.2

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.4

5 years ago

1.5.3

5 years ago

1.5.2

5 years ago

1.5.1

5 years ago

1.5.0

5 years ago

1.4.4

5 years ago

1.4.3

5 years ago

1.4.2

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.9

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

1.0.1-alpha.178

6 years ago

0.0.6-alpha.177

6 years ago

0.0.6-alpha.176

6 years ago

0.0.6-alpha.175

6 years ago

0.0.6-alpha.174

6 years ago

0.0.6-alpha.173

6 years ago

0.0.6-alpha.172

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1-alpha.147

6 years ago

0.0.1-alpha.145

6 years ago

0.0.1-alpha.144

6 years ago

0.0.1-alpha.143

6 years ago

0.0.1-alpha.141

6 years ago

0.0.1-alpha.140

6 years ago

0.0.1-alpha.139

6 years ago

0.0.1

6 years ago

0.0.1-alpha.137

6 years ago

0.0.1-alpha.135

6 years ago

0.0.1-alpha.136

6 years ago

0.0.1-alpha.134

6 years ago

0.0.1-alpha.133

6 years ago

0.0.1-alpha.131

6 years ago

0.0.1-alpha.130

6 years ago

0.0.1-alpha.127

6 years ago

0.0.1-alpha.129

6 years ago

0.0.1-alpha.126

6 years ago

0.0.1-alpha.122

6 years ago

0.0.1-alpha.124

6 years ago

0.0.1-alpha.120

6 years ago

0.0.1-alpha.119

6 years ago

0.0.1-alpha.117

6 years ago

0.0.1-alpha.116

6 years ago

0.0.1-alpha.115

6 years ago

0.0.1-alpha.114

6 years ago

0.0.1-alpha.113

6 years ago

0.0.1-alpha.112

6 years ago

0.0.1-alpha.111

6 years ago

0.0.1-alpha.110

6 years ago

0.0.1-alpha.109

6 years ago

0.0.1-alpha.106

6 years ago

0.0.1-alpha.105

6 years ago

0.0.1-alpha.104

6 years ago

0.0.1-alpha.101

6 years ago

0.0.1-alpha.98

6 years ago

0.0.1-alpha.97

6 years ago

0.0.1-alpha.96

6 years ago

0.0.1-alpha.95

6 years ago

0.0.1-alpha.94

6 years ago

0.0.1-alpha.93

6 years ago

0.0.1-alpha.92

6 years ago

0.0.1-alpha.91

6 years ago

0.0.1-alpha.90

6 years ago

0.0.1-alpha.89

6 years ago

0.0.1-alpha.88

6 years ago

0.0.1-alpha.87

6 years ago

0.0.1-alpha.1

6 years ago