0.14.8 • Published 4 days ago

ascertain v0.14.8

Weekly downloads
313
License
MIT
Repository
github
Last release
4 days ago

Ascertain

Ascertain what data is not suitable for your library

0-Deps, simple, blazing fast, for browser and node js object schema validator

Coverage Status Build Status NPM version Downloads Snyk

Features

  • value validation
  • class validation
  • structure validation
  • regexp validation
  • and/or validation
  • object keys validation
  • object values validation

Usage Example

Create data ascertain

import ascertain, { optional, and, or, $keys, $values, Schema, as } from 'ascertain';

// create data sample
const data = {
  number: 1,
  string: 'string',
  boolean: true,
  function: () => {},
  array: [],
  object: {},
  date: new Date,
  regexp: 'regexp',
  oneOfValue: 1,
  arrayOfNumbers: [1,2,3,4,5],
  objectSchema: {
    number: 1,
  },
  optional: null,
  keyValue: {
    keyOne: 1,
    keyTwo: 2,
    keyThree: 3,
  },
  // fault tolernat type casting
  parsedNumber: as.number('1'),
  parsedString: as.number('string'),
  parsedBoolean: as.boolean('false'),
  parsedArray: as.array('1,2,3,4,5', ','),
  parsedJSON: as.json('{ "number": 1 }'),
  parsedBase64: as.base64('dGVzdA=='),
};

// create data schema
const schema: Schema<typeof data> = {
  number: Number,
  string: String,
  boolean: Boolean,
  function: Function,
  array: Array,
  object: Object,
  date: and(Date, { toJSON: Function }),
  regexp: /regexp/,
  oneOfValue: or(1, 2, 3),
  arrayOfNumbers: [Number],
  objectSchema: {
    number: Number,
  },
  optional: optional({
    number: Number,
  }),
  keyValue: {
    [$keys]: /^key[A-Z]/,
    [$values]: Number
  },
  parsedNumber: Number,
  parsedString: String,
  parsedBoolean: Boolean,
  parsedArray: [String],
  parsedJSON: {
    number: 1,
  },
  parsedBase64: String,
};

// validate
const validate = ascertain<typeof data>(schema, data, '[DATA]');

License

License The MIT License Copyright (c) 2024 Ivan Zakharchanka

0.14.8

4 days ago

0.14.7

5 days ago

0.14.6

6 days ago

0.14.5

7 days ago

0.14.4

8 days ago

0.14.3

12 days ago

0.14.2

13 days ago

0.14.1

14 days ago

0.14.0

15 days ago

0.13.4

19 days ago

0.13.3

22 days ago

0.13.2

28 days ago

0.13.1

29 days ago

0.13.0

1 month ago

0.12.31

1 month ago

0.12.32

1 month ago

0.12.33

1 month ago

0.12.30

2 months ago

0.12.29

2 months ago

0.12.28

3 months ago

0.12.27

4 months ago

0.12.26

4 months ago

0.12.25

4 months ago

0.12.24

5 months ago

0.12.10

9 months ago

0.12.11

8 months ago

0.12.16

7 months ago

0.12.17

7 months ago

0.12.18

7 months ago

0.12.19

7 months ago

0.12.12

8 months ago

0.12.13

8 months ago

0.12.14

8 months ago

0.12.15

8 months ago

0.12.20

6 months ago

0.12.21

6 months ago

0.12.22

6 months ago

0.12.23

5 months ago

0.12.7

10 months ago

0.12.8

10 months ago

0.12.9

9 months ago

0.12.6

10 months ago

0.12.5

11 months ago

0.12.3

11 months ago

0.12.4

11 months ago

0.12.0

1 year ago

0.12.1

12 months ago

0.12.2

12 months ago

0.10.3

1 year ago

0.11.0

1 year ago

0.10.1

1 year ago

0.10.2

1 year ago

0.9.23

1 year ago

0.9.21

1 year ago

0.9.22

1 year ago

0.9.17

1 year ago

0.9.18

1 year ago

0.9.19

1 year ago

0.9.20

1 year ago

0.9.12

1 year ago

0.9.13

1 year ago

0.9.14

1 year ago

0.9.15

1 year ago

0.9.10

2 years ago

0.9.11

2 years ago

0.9.16

1 year ago

0.9.8

2 years ago

0.9.9

2 years ago

0.10.0

2 years ago

0.9.2

2 years ago

0.9.7

2 years ago

0.9.4

2 years ago

0.9.3

2 years ago

0.9.6

2 years ago

0.9.5

2 years ago

0.8.9

2 years ago

0.8.8

2 years ago

0.8.7

2 years ago

0.9.0

2 years ago

0.9.1

2 years ago

0.8.10

2 years ago

0.8.5

2 years ago

0.8.4

2 years ago

0.8.6

2 years ago

0.8.3

2 years ago

0.8.2

2 years ago

0.7.31

2 years ago

0.7.30

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.7.22

2 years ago

0.7.21

2 years ago

0.7.24

2 years ago

0.7.23

2 years ago

0.7.20

2 years ago

0.7.29

2 years ago

0.7.26

2 years ago

0.7.25

2 years ago

0.7.28

2 years ago

0.7.27

2 years ago

0.7.19

2 years ago

0.7.18

2 years ago

0.7.17

2 years ago

0.7.16

3 years ago

0.7.15

3 years ago

0.7.14

3 years ago

0.7.13

3 years ago

0.7.12

3 years ago

0.7.11

3 years ago

0.7.10

3 years ago

0.7.9

3 years ago

0.7.8

3 years ago

0.7.7

3 years ago

0.7.6

3 years ago

0.7.5

3 years ago

0.7.2

3 years ago

0.7.1

3 years ago

0.7.4

3 years ago

0.6.5

3 years ago

0.7.3

3 years ago

0.6.4

3 years ago

0.7.0

3 years ago

0.6.3

3 years ago

0.6.2

3 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.5.9

3 years ago

0.5.8

3 years ago

0.5.7

3 years ago

0.5.6

4 years ago

0.5.5

5 years ago

0.5.4

5 years ago

0.5.3

5 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago