https://github.com/unicreators/object-normalizer
object normalizer.
https://github.com/unicreators/object-normalizer
javascript normalize normalizer object-normalizer
Last synced: 12 months ago
JSON representation
object normalizer.
- Host: GitHub
- URL: https://github.com/unicreators/object-normalizer
- Owner: unicreators
- License: mit
- Created: 2017-04-22T01:49:41.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-04-26T00:12:42.000Z (almost 9 years ago)
- Last Synced: 2025-03-14T09:47:14.345Z (12 months ago)
- Topics: javascript, normalize, normalizer, object-normalizer
- Language: JavaScript
- Size: 6.84 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## ObjectNormalizer
object normalizer.
## Install
```sh
$ npm install object-normalizer
```
## Usage
### Normal
```js
const schema = {
'prop1': function (value) {
if (value == undefined)
value = 1;
return value;
},
'prop2': function (value) {
if (typeof value !== 'function')
throw new Error(`'prop2' must be of Function type.`);
return value;
}
};
const defaultPropertyName = 'prop2';
let nor = new ObjectNormalizer(schema, defaultPropertyName);
let r = nor.normalize(function () { });
console.log(r);
// { prop1: 1, prop2: [Function] }
```
### Multiple
```js
const schema = {
parent1: function (value) {
if (value == undefined) value = 'parent1';
return value;
},
parent2: {
schema: {
'prop1': function (value) {
if (value == undefined) value = 1;
return value;
},
'prop2': function (value) {
if (typeof value !== 'function')
throw new Error(`'prop2' must be of Function type.`);
return value;
}
},
defaultProperty: 'prop2'
}
};
const defaultPropertyName = 'parent2';
let nor = new ObjectNormalizer(schema, defaultPropertyName);
let r = nor.normalize(function () { return 'hello!'; });
console.log(r);
// { parent1: 'parent1', parent2: { prop1: 1, prop2: [Function] } }
console.log(r.parent2.prop2());
// hello!
```
### Array
```js
const schema = {
// array
'prop1': [function (value) {
if (value == undefined)
value = 1;
return value;
}],
'prop2': function (value) {
if (typeof value !== 'function')
throw new Error(`'prop2' must be of Function type.`);
return value;
},
// to array, not validate
'prop3': []
};
const defaultPropertyName = 'prop2';
let nor = new ObjectNormalizer(schema, defaultPropertyName);
let r = nor.normalize(function () { });
console.log(r);
// { prop1: [], prop2: [Function], prop3: [] }
```
### Root array
```js
// array
const schema = [{
'prop1': function (value) {
if (value == undefined)
value = 1;
return value;
},
'prop2': function (value) {
if (typeof value !== 'function')
throw new Error(`'prop2' must be of Function type.`);
return value;
}
}];
const defaultPropertyName = 'prop2';
let nor = new ObjectNormalizer(schema, defaultPropertyName);
let r = nor.normalize(function () { });
console.log(r);
// [{ prop1: 1, prop2: [Function] }]
```
### License
[MIT](LICENSE)