2.3.142 • Published 10 months ago

@modernpoacher/rules-runner v2.3.142

Weekly downloads
20
License
ISC
Repository
github
Last release
10 months ago

@modernpoacher/rules-runner

Encapsulate rules in an easily comprehended JSON/JavaScript object literal format.

Install

npm i -P @modernpoacher/rules-runner

Examples

if the conditions are met then will execute.

const RulesRunner = require('@modernpoacher/rules-runner')

const config = {
  'Must be 16 or older if no adult is present': {
    if: {
      'person.age': {
        lessThan: 16
      },
      'person.adultPresent': false
    },
    then: {
      'person.error': 'Must be 16 or older if no adult is present',
      'errors.all[]': 'person'
    }
  },
  'Must be employed': {
    if: {
      'company.isEmployed': false
    },
    then: {
      'company.error': 'Must be employed',
      'errors.all[]': 'company'
    }
  }
}

const rulesRunner = new RulesRunner(config)

const values = {
  person: {
    age: 15,
    adultPresent: false
  },
  company: {
    isEmployed: false
  }
}

rulesRunner.run(values)

assert.equal(values.person.error, 'Must be 16 or older if no adult is present')
assert.equal(values.company.error, 'Must be employed')
assert.deepEqual(values.errors.all, ['person', 'company'])

if the conditions are not met otherwise will execute.

const RulesRunner = require('@modernpoacher/rules-runner')

const config = {
  'Person will be in house if person is tired or hungry': {
    if: {
      'person.age': {
        lessThan: 16
      },
      'person.adultPresent': false
    },
    then: {
      'person.location': 'house'
    },
    otherwise: {
      'person.location': 'work'
    }
  }
}

const rulesRunner = new RulesRunner(config)

const values = {
  person: {
    age: 17,
    adultPresent: true
  }
}

rulesRunner.run(values)

assert.equal(values.person.location, 'work')

Comparators

  • equals
'person.exists': true
'person.firstName': 'John'
'person.age': 21
  • boolean
'person.exists': false
  • between
'person.age': { between: [1, 20] }
  • contains
'person.name': { contains: 'Jr' }
  • lessThan
'person.age': { lessThan: 21 }
  • greaterThan
'person.age': { greaterThan: 20 }
  • oneOf
'person.state': { oneOf: ['CA', 'TX', 'NY'] }
  • anyOf
'person.state': { anyOf: ['CA', 'TX', 'NY'] }
  • allOf
'person.state': { allOf: ['CA', 'TX', 'NY'] }
  • matches
'person.name': { matches: '/(john|bob|mary)/i' }
  • not
'person.state': { not: 'CA' }`
'person.state': { not: { oneOf: ['CA', 'TX'] } }
2.3.141

10 months ago

2.3.140

10 months ago

2.3.142

10 months ago

2.3.139

10 months ago

2.3.138

10 months ago

2.3.136

11 months ago

2.3.137

11 months ago

2.3.135

12 months ago

2.3.134

12 months ago

2.3.118

1 year ago

2.3.117

1 year ago

2.3.119

1 year ago

2.3.125

1 year ago

2.3.124

1 year ago

2.3.127

1 year ago

2.3.126

1 year ago

2.3.121

1 year ago

2.3.120

1 year ago

2.3.123

1 year ago

2.3.122

1 year ago

2.3.107

1 year ago

2.3.106

1 year ago

2.3.109

1 year ago

2.3.108

1 year ago

2.3.114

1 year ago

2.3.113

1 year ago

2.3.116

1 year ago

2.3.115

1 year ago

2.3.110

1 year ago

2.3.112

1 year ago

2.3.111

1 year ago

2.3.129

1 year ago

2.3.128

1 year ago

2.3.130

1 year ago

2.3.132

1 year ago

2.3.131

1 year ago

2.3.133

1 year ago

2.3.105

1 year ago

2.3.104

1 year ago

2.3.103

1 year ago

2.3.102

1 year ago

2.3.101

1 year ago

2.3.100

1 year ago

2.3.99

1 year ago

2.3.98

1 year ago

2.3.97

1 year ago

2.3.96

1 year ago

2.3.95

1 year ago

2.3.94

1 year ago

2.3.93

1 year ago

2.3.92

1 year ago

2.3.91

1 year ago

2.3.90

1 year ago

2.3.89

1 year ago

2.3.88

1 year ago

2.3.87

1 year ago

2.3.86

2 years ago

2.3.85

2 years ago

2.3.84

2 years ago

2.3.83

2 years ago

2.3.82

2 years ago

2.3.81

2 years ago

2.3.80

2 years ago

2.3.79

2 years ago

2.3.78

2 years ago

2.3.77

2 years ago

2.3.76

2 years ago

2.3.75

2 years ago

2.3.74

2 years ago

2.3.73

2 years ago

2.3.72

2 years ago

2.3.71

2 years ago

2.3.70

2 years ago

2.3.69

2 years ago

2.3.68

2 years ago

2.3.67

2 years ago

2.3.28

2 years ago

2.3.27

2 years ago

2.3.29

2 years ago

2.3.39

2 years ago

2.3.38

2 years ago

2.3.35

2 years ago

2.3.34

2 years ago

2.3.37

2 years ago

2.3.36

2 years ago

2.3.31

2 years ago

2.3.30

2 years ago

2.3.33

2 years ago

2.3.32

2 years ago

2.3.49

2 years ago

2.3.46

2 years ago

2.3.45

2 years ago

2.3.48

2 years ago

2.3.47

2 years ago

2.3.42

2 years ago

2.3.41

2 years ago

2.3.44

2 years ago

2.3.43

2 years ago

2.3.40

2 years ago

2.3.57

2 years ago

2.3.56

2 years ago

2.3.59

2 years ago

2.3.58

2 years ago

2.3.53

2 years ago

2.3.52

2 years ago

2.3.55

2 years ago

2.3.54

2 years ago

2.3.51

2 years ago

2.3.50

2 years ago

2.3.64

2 years ago

2.3.63

2 years ago

2.3.66

2 years ago

2.3.65

2 years ago

2.3.60

2 years ago

2.3.62

2 years ago

2.3.61

2 years ago

2.3.26

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.3.4

2 years ago

2.3.3

2 years ago

2.3.6

2 years ago

2.3.5

2 years ago

2.2.1

2 years ago

2.2.2

2 years ago

2.3.8

2 years ago

2.3.7

2 years ago

2.3.9

2 years ago

2.3.17

2 years ago

2.3.16

2 years ago

2.3.19

2 years ago

2.3.18

2 years ago

2.3.13

2 years ago

2.3.12

2 years ago

2.3.15

2 years ago

2.3.14

2 years ago

2.3.11

2 years ago

2.3.10

2 years ago

2.3.24

2 years ago

2.3.23

2 years ago

2.3.25

2 years ago

2.3.20

2 years ago

2.3.22

2 years ago

2.3.21

2 years ago

2.1.449

2 years ago

2.1.428

2 years ago

2.1.427

2 years ago

2.1.429

2 years ago

2.1.430

2 years ago

2.1.433

2 years ago

2.1.432

2 years ago

2.1.435

2 years ago

2.1.434

2 years ago

2.1.437

2 years ago

2.1.436

2 years ago

2.1.439

2 years ago

2.1.438

2 years ago

2.1.442

2 years ago

2.1.444

2 years ago

2.1.443

2 years ago

2.1.445

2 years ago

2.1.448

2 years ago

2.1.447

2 years ago

2.1.413

3 years ago

2.1.415

3 years ago

2.1.414

3 years ago

2.1.417

3 years ago

2.1.416

3 years ago

2.1.418

3 years ago

2.1.420

3 years ago

2.1.422

2 years ago

2.1.421

3 years ago

2.1.424

2 years ago

2.1.423

2 years ago

2.1.426

2 years ago

2.1.425

2 years ago

2.1.406

3 years ago

2.1.405

3 years ago

2.1.408

3 years ago

2.1.407

3 years ago

2.1.409

3 years ago

2.1.411

3 years ago

2.1.410

3 years ago

2.1.412

3 years ago

2.1.400

3 years ago

2.1.402

3 years ago

2.1.401

3 years ago

2.1.404

3 years ago

2.1.403

3 years ago

2.1.390

3 years ago

2.1.391

3 years ago

2.1.394

3 years ago

2.1.393

3 years ago

2.1.396

3 years ago

2.1.398

3 years ago

2.1.397

3 years ago

2.1.399

3 years ago

2.1.387

3 years ago

2.1.386

3 years ago

2.1.389

3 years ago

2.1.388

3 years ago

2.1.330

3 years ago

2.1.332

3 years ago

2.1.336

3 years ago

2.1.335

3 years ago

2.1.337

3 years ago

2.1.341

3 years ago

2.1.340

3 years ago

2.1.342

3 years ago

2.1.345

3 years ago

2.1.344

3 years ago

2.1.347

3 years ago

2.1.346

3 years ago

2.1.349

3 years ago

2.1.348

3 years ago

2.1.318

3 years ago

2.1.319

3 years ago

2.1.321

3 years ago

2.1.320

3 years ago

2.1.323

3 years ago

2.1.325

3 years ago

2.1.324

3 years ago

2.1.327

3 years ago

2.1.326

3 years ago

2.1.370

3 years ago

2.1.372

3 years ago

2.1.371

3 years ago

2.1.374

3 years ago

2.1.373

3 years ago

2.1.376

3 years ago

2.1.375

3 years ago

2.1.378

3 years ago

2.1.377

3 years ago

2.1.379

3 years ago

2.1.381

3 years ago

2.1.380

3 years ago

2.1.382

3 years ago

2.1.385

3 years ago

2.1.384

3 years ago

2.1.350

3 years ago

2.1.351

3 years ago

2.1.353

3 years ago

2.1.356

3 years ago

2.1.355

3 years ago

2.1.358

3 years ago

2.1.357

3 years ago

2.1.359

3 years ago

2.1.361

3 years ago

2.1.360

3 years ago

2.1.365

3 years ago

2.1.367

3 years ago

2.1.366

3 years ago

2.1.369

3 years ago

2.1.368

3 years ago

2.1.307

3 years ago

2.1.306

3 years ago

2.1.309

3 years ago

2.1.308

3 years ago

2.1.310

3 years ago

2.1.312

3 years ago

2.1.311

3 years ago

2.1.314

3 years ago

2.1.313

3 years ago

2.1.316

3 years ago

2.1.315

3 years ago

2.1.317

3 years ago

2.1.300

3 years ago

2.1.303

3 years ago

2.1.302

3 years ago

2.1.305

3 years ago

2.1.304

3 years ago

2.1.291

3 years ago

2.1.290

3 years ago

2.1.293

3 years ago

2.1.292

3 years ago

2.1.294

3 years ago

2.1.297

3 years ago

2.1.299

3 years ago

2.1.298

3 years ago

2.1.283

3 years ago

2.1.286

3 years ago

2.1.285

3 years ago

2.1.288

3 years ago

2.1.287

3 years ago

2.1.289

3 years ago

2.1.271

3 years ago

2.1.270

3 years ago

2.1.273

3 years ago

2.1.272

3 years ago

2.1.275

3 years ago

2.1.274

3 years ago

2.1.277

3 years ago

2.1.276

3 years ago

2.1.279

3 years ago

2.1.278

3 years ago

2.1.280

3 years ago

2.1.282

3 years ago

2.1.281

3 years ago

2.1.252

3 years ago

2.1.255

3 years ago

2.1.257

3 years ago

2.1.259

3 years ago

2.1.258

3 years ago

2.1.262

3 years ago

2.1.264

3 years ago

2.1.263

3 years ago

2.1.266

3 years ago

2.1.265

3 years ago

2.1.268

3 years ago

2.1.267

3 years ago

2.1.269

3 years ago

2.1.209

3 years ago

2.1.210

3 years ago

2.1.215

3 years ago

2.1.217

3 years ago

2.1.216

3 years ago

2.1.219

3 years ago

2.1.218

3 years ago

2.1.220

3 years ago

2.1.222

3 years ago

2.1.221

3 years ago

2.1.223

3 years ago

2.1.226

3 years ago

2.1.225

3 years ago

2.1.228

3 years ago

2.1.227

3 years ago

2.1.202

3 years ago

2.1.204

3 years ago

2.1.203

3 years ago

2.1.194

3 years ago

2.1.196

3 years ago

2.1.195

3 years ago

2.1.197

3 years ago

2.1.181

3 years ago

2.1.183

3 years ago

2.1.182

3 years ago

2.1.185

3 years ago

2.1.184

3 years ago

2.1.187

3 years ago

2.1.188

3 years ago

2.1.251

3 years ago

2.1.250

3 years ago

2.1.229

3 years ago

2.1.231

3 years ago

2.1.235

3 years ago

2.1.234

3 years ago

2.1.236

3 years ago

2.1.239

3 years ago

2.1.238

3 years ago

2.1.242

3 years ago

2.1.243

3 years ago

2.1.246

3 years ago

2.1.245

3 years ago

2.1.248

3 years ago

2.1.170

3 years ago

2.1.172

3 years ago

2.1.171

3 years ago

2.1.174

3 years ago

2.1.173

3 years ago

2.1.176

3 years ago

2.1.175

3 years ago

2.1.178

3 years ago

2.1.177

3 years ago

2.1.179

3 years ago

2.1.180

3 years ago

2.1.161

3 years ago

2.1.160

3 years ago

2.1.163

3 years ago

2.1.162

3 years ago

2.1.165

3 years ago

2.1.164

3 years ago

2.1.167

3 years ago

2.1.166

3 years ago

2.1.169

3 years ago

2.1.168

3 years ago

2.1.150

3 years ago

2.1.151

3 years ago

2.1.134

3 years ago

2.1.133

3 years ago

2.1.136

3 years ago

2.1.135

3 years ago

2.1.138

3 years ago

2.1.137

3 years ago

2.1.139

3 years ago

2.1.141

3 years ago

2.1.140

3 years ago

2.1.143

3 years ago

2.1.142

3 years ago

2.1.145

3 years ago

2.1.147

3 years ago

2.1.146

3 years ago

2.1.149

3 years ago

2.1.148

3 years ago

2.1.130

3 years ago

2.1.132

3 years ago

2.1.113

4 years ago

2.1.115

4 years ago

2.1.118

3 years ago

2.1.123

3 years ago

2.1.122

3 years ago

2.1.125

3 years ago

2.1.124

3 years ago

2.1.127

3 years ago

2.1.126

3 years ago

2.1.129

3 years ago

2.1.89

4 years ago

2.1.87

4 years ago

2.1.88

4 years ago

2.1.85

4 years ago

2.1.86

4 years ago

2.1.83

4 years ago

2.1.84

4 years ago

2.1.81

4 years ago

2.1.80

4 years ago

2.1.96

4 years ago

2.1.97

4 years ago

2.1.94

4 years ago

2.1.95

4 years ago

2.1.107

4 years ago

2.1.90

4 years ago

2.1.58

4 years ago

2.1.59

4 years ago

2.1.109

4 years ago

2.1.108

4 years ago

2.1.69

4 years ago

2.1.67

4 years ago

2.1.68

4 years ago

2.1.65

4 years ago

2.1.66

4 years ago

2.1.63

4 years ago

2.1.64

4 years ago

2.1.61

4 years ago

2.1.62

4 years ago

2.1.60

4 years ago

2.1.78

4 years ago

2.1.79

4 years ago

2.1.76

4 years ago

2.1.77

4 years ago

2.1.74

4 years ago

2.1.75

4 years ago

2.1.72

4 years ago

2.1.73

4 years ago

2.1.70

4 years ago

2.1.71

4 years ago

2.1.49

4 years ago

2.1.47

4 years ago

2.1.48

4 years ago

2.1.45

4 years ago

2.1.46

4 years ago

2.1.43

4 years ago

2.1.44

4 years ago

2.1.41

4 years ago

2.1.42

4 years ago

2.1.40

4 years ago

2.1.56

4 years ago

2.1.57

4 years ago

2.1.54

4 years ago

2.1.55

4 years ago

2.1.52

4 years ago

2.1.53

4 years ago

2.1.50

4 years ago

2.1.51

4 years ago

2.1.38

4 years ago

2.1.39

4 years ago

2.1.36

4 years ago

2.1.37

4 years ago

2.1.34

4 years ago

2.1.35

4 years ago

2.1.33

4 years ago

2.1.27

4 years ago

2.1.28

4 years ago

2.1.25

4 years ago

2.1.26

4 years ago

2.1.24

4 years ago

2.1.29

4 years ago

2.1.32

4 years ago

2.1.30

4 years ago

2.1.31

4 years ago

2.1.23

4 years ago

2.1.21

4 years ago

2.1.22

4 years ago

2.1.20

4 years ago

2.1.18

4 years ago

2.1.19

4 years ago

2.1.16

4 years ago

2.1.17

4 years ago

2.1.6

4 years ago

2.1.8

4 years ago

2.1.7

4 years ago

2.1.9

4 years ago

2.1.14

4 years ago

2.1.15

4 years ago

2.1.12

4 years ago

2.1.13

4 years ago

2.1.10

4 years ago

2.1.11

4 years ago

2.1.5

4 years ago

2.1.2

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.12

5 years ago

2.0.11

5 years ago

2.0.10

5 years ago

2.0.9

5 years ago

2.0.8

5 years ago

2.0.7

5 years ago

2.0.6

5 years ago

2.0.5

5 years ago

2.0.4

5 years ago

2.0.2

6 years ago

2.0.1

6 years ago