1.11.5 • Published 2 years ago

izanami-node v1.11.5

Weekly downloads
17
License
Apache-2.0
Repository
github
Last release
2 years 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

2 years ago

1.11.4

2 years ago

1.11.3

2 years ago

1.11.2

2 years ago

1.11.1

2 years ago

1.11.0

2 years ago

1.10.20

3 years ago

1.10.21

3 years ago

1.10.19

3 years ago

1.10.18

3 years ago

1.10.17

3 years ago

1.10.15

3 years ago

1.10.16

3 years ago

1.10.14

3 years ago

1.10.13

3 years ago

1.10.3

4 years ago

1.10.2

4 years ago

1.9.1

4 years ago

1.10.1

4 years ago

1.9.2

4 years ago

1.10.0

4 years ago

1.9.0

4 years ago

1.9.0-BETA1

4 years ago

1.8.5

4 years ago

1.8.4

4 years ago

1.8.3

5 years ago

1.8.3-BETA5

5 years ago

1.8.3-BETA4

5 years ago

1.8.3-BETA3

5 years ago

1.8.3-BETA1

5 years ago

1.8.3-BETA2

5 years ago

1.8.2

5 years ago

1.8.1

5 years ago

1.8.0

5 years ago

1.7.2

5 years ago

1.7.1

5 years ago

1.7.0

5 years ago

1.6.0

6 years ago

1.5.4

6 years ago

1.5.3

6 years ago

1.5.2

6 years ago

1.5.1

6 years ago

1.5.0

6 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.9

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

1.0.1-alpha.178

7 years ago

0.0.6-alpha.177

7 years ago

0.0.6-alpha.176

7 years ago

0.0.6-alpha.175

7 years ago

0.0.6-alpha.174

7 years ago

0.0.6-alpha.173

7 years ago

0.0.6-alpha.172

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1-alpha.147

7 years ago

0.0.1-alpha.145

7 years ago

0.0.1-alpha.144

7 years ago

0.0.1-alpha.143

7 years ago

0.0.1-alpha.141

7 years ago

0.0.1-alpha.140

7 years ago

0.0.1-alpha.139

7 years ago

0.0.1

7 years ago

0.0.1-alpha.137

7 years ago

0.0.1-alpha.135

7 years ago

0.0.1-alpha.136

7 years ago

0.0.1-alpha.134

7 years ago

0.0.1-alpha.133

7 years ago

0.0.1-alpha.131

7 years ago

0.0.1-alpha.130

7 years ago

0.0.1-alpha.127

7 years ago

0.0.1-alpha.129

7 years ago

0.0.1-alpha.126

7 years ago

0.0.1-alpha.122

7 years ago

0.0.1-alpha.124

7 years ago

0.0.1-alpha.120

7 years ago

0.0.1-alpha.119

7 years ago

0.0.1-alpha.117

7 years ago

0.0.1-alpha.116

7 years ago

0.0.1-alpha.115

7 years ago

0.0.1-alpha.114

7 years ago

0.0.1-alpha.113

7 years ago

0.0.1-alpha.112

7 years ago

0.0.1-alpha.111

7 years ago

0.0.1-alpha.110

7 years ago

0.0.1-alpha.109

8 years ago

0.0.1-alpha.106

8 years ago

0.0.1-alpha.105

8 years ago

0.0.1-alpha.104

8 years ago

0.0.1-alpha.101

8 years ago

0.0.1-alpha.98

8 years ago

0.0.1-alpha.97

8 years ago

0.0.1-alpha.96

8 years ago

0.0.1-alpha.95

8 years ago

0.0.1-alpha.94

8 years ago

0.0.1-alpha.93

8 years ago

0.0.1-alpha.92

8 years ago

0.0.1-alpha.91

8 years ago

0.0.1-alpha.90

8 years ago

0.0.1-alpha.89

8 years ago

0.0.1-alpha.88

8 years ago

0.0.1-alpha.87

8 years ago

0.0.1-alpha.1

8 years ago