Skip to content

Commit a1d9eea

Browse files
committed
Setup prettier
1 parent 2062827 commit a1d9eea

33 files changed

+1824
-1262
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ jobs:
3434
- name: Lint
3535
if: matrix.node-version == '16.x'
3636
run: npm run lint
37+
- name: Prettier
38+
if: matrix.node-version == '16.x'
39+
run: npm run prettier:check
3740
- name: Test Node
3841
run: npm run test:node
3942
- name: Test Browser

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/package.json
2+
/package-lock.json
3+
/CHANGES.md

.prettierrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"singleQuote": true,
3+
"trailingComma": "none"
4+
}

README.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -128,18 +128,18 @@ argument:
128128

129129
- `null`: Requires a null value.
130130
- `boolean`: Defines whether the property must be present:
131-
- `true`: The property must be present.
132-
- `false`: The property is optional.
131+
- `true`: The property must be present.
132+
- `false`: The property is optional.
133133
- `string`: Defines a built-in type. These types are defined:
134-
- `"null"`: Same as the `null` spec.
135-
- `"defined"`: Same as the `true` spec.
136-
- `"optional"`: Same as the `false` spec.
137-
- `"boolean"`: Requires a boolean primitive.
138-
- `"number"`: Requires a number primitive.
139-
- `"integer"`: Requires a number primitive that has no fractions.
140-
- `"string"`: Requires a string primitive.
141-
- `"object"`: Requires an object.
142-
- `"array"`: Requires an array.
134+
- `"null"`: Same as the `null` spec.
135+
- `"defined"`: Same as the `true` spec.
136+
- `"optional"`: Same as the `false` spec.
137+
- `"boolean"`: Requires a boolean primitive.
138+
- `"number"`: Requires a number primitive.
139+
- `"integer"`: Requires a number primitive that has no fractions.
140+
- `"string"`: Requires a string primitive.
141+
- `"object"`: Requires an object.
142+
- `"array"`: Requires an array.
143143
- `regexp`: Requires the value to be a string and match the regular expression.
144144
- `function`: Defines a custom specification. The function is expected to
145145
return `false` if the value is not considered valid.
@@ -164,13 +164,13 @@ objects that validate reading from the object and assigning values:
164164
read an undefined property. When using the writer with `JSON.stringify` or
165165
`my_schema.verify(writer)` it will throw if non-optional values are missing.
166166
If `emitter` is specified, these events will be emitted:
167-
- `set` when a property is assigned a new value
168-
- `delete` when a property is deleted
169-
- `push` when `push` is called on an array
170-
- `pop` when `pop` is called on an array
171-
- `unshift` when `unshift` is called on an array
172-
- `shift` when `shift` is called on an array
173-
- `splice` when `splice` is called on an array
167+
- `set` when a property is assigned a new value
168+
- `delete` when a property is deleted
169+
- `push` when `push` is called on an array
170+
- `pop` when `pop` is called on an array
171+
- `unshift` when `unshift` is called on an array
172+
- `shift` when `shift` is called on an array
173+
- `splice` when `splice` is called on an array
174174
- `data = my_schema.verify(writer)`: Checks if any properties are missing in
175175
the given writer and returns the unwrapped data. Throws if the given object
176176
is not a schema writer.

lib/array-verifyer.js

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@ const { arrayPath } = require('./path');
55
const { type } = require('./type');
66
const { stringify } = require('./stringify');
77
const { specName } = require('./spec-name');
8-
const {
9-
failSet,
10-
failDelete,
11-
failSchemaValidation
12-
} = require('./fail');
8+
const { failSet, failDelete, failSchemaValidation } = require('./fail');
139
const { raw, unwrap } = require('./raw');
1410
const { createItemGetter } = require('./create-item-getter');
1511

@@ -19,7 +15,8 @@ function arrayVerifyer(itemTest, item_spec) {
1915
const verify = (value, property) => {
2016
type.array.verify(value, property);
2117
value.forEach((element, index) =>
22-
itemTest.verify(element, arrayPath(property, index)));
18+
itemTest.verify(element, arrayPath(property, index))
19+
);
2320
return value;
2421
};
2522
verify.raw = raw;
@@ -86,8 +83,11 @@ function createArrayItemWriter(itemTest, item_spec) {
8683
function getArrayIndex(key, base) {
8784
const index = parseInt(key, 10);
8885
if (String(index) !== key || index < 0) {
89-
failSchemaValidation(new TypeError(`Expected property "${
90-
arrayPath(base, key)}" to be a valid array index`));
86+
failSchemaValidation(
87+
new TypeError(
88+
`Expected property "${arrayPath(base, key)}" to be a valid array index`
89+
)
90+
);
9191
}
9292
return index;
9393
}
@@ -120,13 +120,25 @@ function emitArrayEvents(array, emitter, base, itemTest, item_spec) {
120120
Object.setPrototypeOf(array, proto);
121121
}
122122

123-
function verifyArrayMethodValues(base, method, offset, values, itemTest,
124-
item_spec) {
123+
function verifyArrayMethodValues(
124+
base,
125+
method,
126+
offset,
127+
values,
128+
itemTest,
129+
item_spec
130+
) {
125131
values.forEach((value, i) => {
126132
if (itemTest(value) === false) {
127-
failSchemaValidation(new TypeError(`Expected argument ${
128-
i + offset + 1} of ${base}.${method} to be ${
129-
specName(item_spec)} but got ${stringify(value)}`));
133+
failSchemaValidation(
134+
new TypeError(
135+
`Expected argument ${
136+
i + offset + 1
137+
} of ${base}.${method} to be ${specName(
138+
item_spec
139+
)} but got ${stringify(value)}`
140+
)
141+
);
130142
}
131143
});
132144
}

lib/create-item-getter.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@ function createItemGetter(valueTest, emitter, parent, read_write) {
1919
if (type.string(key) && !type.function(value) && type.defined(value)) {
2020
const factory = valueTest.verify && valueTest.verify[read_write];
2121
if (factory) {
22-
return (cache[key]
23-
|| (cache[key] = factory(value, emitter, objectPath(parent, key))));
22+
return (
23+
cache[key] ||
24+
(cache[key] = factory(value, emitter, objectPath(parent, key)))
25+
);
2426
}
2527
}
2628
return value;

lib/fail.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,3 @@ function failNotSchemaObject() {
2828
function failSpec(spec) {
2929
throw new TypeError(`Invalid spec ${stringify(spec)}`);
3030
}
31-

lib/literal.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@ function literal() {
1515
const values = slice.call(arguments);
1616

1717
const literalTest = literalTester(values);
18-
lazy(literalTest, SPEC_NAME,
19-
() => `literal(${values.map(stringify).join(', ')})`);
18+
lazy(
19+
literalTest,
20+
SPEC_NAME,
21+
() => `literal(${values.map(stringify).join(', ')})`
22+
);
2023

2124
return literalTest;
2225
}
2326

2427
function literalTester(values) {
25-
return (value) => values.some(v => v === value);
28+
return (value) => values.some((v) => v === value);
2629
}

lib/map.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,31 @@ function map(key_spec, value_spec) {
1515

1616
const mapTest = mapTester(keyTest, valueTest);
1717
mapTest.verify = mapVerifyer(keyVerifyer(keyTest, key_spec), valueTest);
18-
lazy(mapTest, SPEC_NAME,
19-
() => `map(${specName(key_spec)}, ${specName(value_spec)})`);
18+
lazy(
19+
mapTest,
20+
SPEC_NAME,
21+
() => `map(${specName(key_spec)}, ${specName(value_spec)})`
22+
);
2023

2124
return mapTest;
2225
}
2326

2427
function mapTester(keyTest, valueTest) {
25-
return (value) => type.object(value)
26-
&& Object.keys(value).every(key => keyTest(key) && valueTest(value[key]));
28+
return (value) =>
29+
type.object(value) &&
30+
Object.keys(value).every((key) => keyTest(key) && valueTest(value[key]));
2731
}
2832

2933
function keyVerifyer(fn, spec) {
3034
return (key, property) => {
3135
if (fn(key, property) === false) {
32-
failSchemaValidation(new TypeError(property && property !== key
33-
? `Expected key "${key}" in "${property}" to be ${specName(spec)}`
34-
: `Expected key "${key}" to be ${specName(spec)}`));
36+
failSchemaValidation(
37+
new TypeError(
38+
property && property !== key
39+
? `Expected key "${key}" in "${property}" to be ${specName(spec)}`
40+
: `Expected key "${key}" to be ${specName(spec)}`
41+
)
42+
);
3543
}
3644
return property;
3745
};

lib/object-verifyer.js

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@
33
const { objectPath } = require('./path');
44
const { lazy } = require('./lazy');
55
const { type } = require('./type');
6-
const {
7-
failSchemaValidation,
8-
failSet,
9-
failDelete
10-
} = require('./fail');
6+
const { failSchemaValidation, failSet, failDelete } = require('./fail');
117
const { raw, unwrap } = require('./raw');
128

139
exports.objectVerifyer = objectVerifyer;
@@ -17,12 +13,14 @@ function objectVerifyer(tests) {
1713
const verify = (value, property, opt) => {
1814
type.object.verify(value, property);
1915
const value_keys = Object.keys(value);
20-
(opt ? value_keys : test_keys)
21-
.forEach(key => getTest(tests, key, property)
22-
.verify(value[key], objectPath(property, key))
23-
);
16+
(opt ? value_keys : test_keys).forEach((key) =>
17+
getTest(tests, key, property).verify(
18+
value[key],
19+
objectPath(property, key)
20+
)
21+
);
2422
if (!opt && value_keys.length !== test_keys.length) {
25-
value_keys.forEach(key => getTest(tests, key, property));
23+
value_keys.forEach((key) => getTest(tests, key, property));
2624
}
2725
return value;
2826
};
@@ -34,8 +32,12 @@ function objectVerifyer(tests) {
3432
}
3533

3634
function getTest(tests, key, base) {
37-
return tests[key] || failSchemaValidation(
38-
new ReferenceError(`Invalid property "${objectPath(base, key)}"`));
35+
return (
36+
tests[key] ||
37+
failSchemaValidation(
38+
new ReferenceError(`Invalid property "${objectPath(base, key)}"`)
39+
)
40+
);
3941
}
4042

4143
function verifyWriter(verify) {
@@ -56,8 +58,9 @@ function createWriter(tests) {
5658
return (object, emitter, base) => {
5759
object = unwrap(object);
5860
type.object.verify(object);
59-
Object.keys(object).forEach(key => getTest(tests, key, base)
60-
.verify(object[key], key, true));
61+
Object.keys(object).forEach((key) =>
62+
getTest(tests, key, base).verify(object[key], key, true)
63+
);
6164
return new Proxy(object, {
6265
get: createPropertyGetter(tests, emitter, base, 'write'),
6366
set(target, key, value) {
@@ -113,8 +116,10 @@ function createPropertyGetter(tests, emitter, base, read_write) {
113116
}
114117
const factory = test.verify && test.verify[read_write];
115118
if (factory) {
116-
return (cache[key]
117-
|| (cache[key] = factory(value, emitter, objectPath(base, key))));
119+
return (
120+
cache[key] ||
121+
(cache[key] = factory(value, emitter, objectPath(base, key)))
122+
);
118123
}
119124
}
120125
return value;

0 commit comments

Comments
 (0)