UNPKG

1.23 kBJavaScriptView Raw
1"use strict";
2// Copyright IBM Corp. and LoopBack contributors 2017,2019. All Rights Reserved.
3// Node module: @loopback/repository
4// This file is licensed under the MIT License.
5// License text available at https://opensource.org/licenses/MIT
6Object.defineProperty(exports, "__esModule", { value: true });
7exports.NumberType = void 0;
8const tslib_1 = require("tslib");
9const util_1 = tslib_1.__importDefault(require("util"));
10/* eslint-disable @typescript-eslint/no-explicit-any */
11/**
12 * Number type
13 */
14class NumberType {
15 constructor() {
16 this.name = 'number';
17 }
18 isInstance(value) {
19 return value == null || (!isNaN(value) && typeof value === 'number');
20 }
21 isCoercible(value) {
22 return value == null || !isNaN(Number(value));
23 }
24 defaultValue() {
25 return 0;
26 }
27 coerce(value) {
28 if (value == null)
29 return value;
30 const n = Number(value);
31 if (isNaN(n)) {
32 const msg = util_1.default.format('Invalid %s: %j', this.name, value);
33 throw new TypeError(msg);
34 }
35 return n;
36 }
37 serialize(value) {
38 return value;
39 }
40}
41exports.NumberType = NumberType;
42//# sourceMappingURL=number.js.map
\No newline at end of file