1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.inferType = void 0;
|
4 | var formats_1 = require("./formats");
|
5 | function inferType(value) {
|
6 | if (value === null) {
|
7 | return { name: "null", value: null };
|
8 | }
|
9 | if (typeof value === "boolean") {
|
10 | return { name: "bool", value: value };
|
11 | }
|
12 | if (typeof value === "number") {
|
13 | if (Number.isInteger(value)) {
|
14 | return { name: "int", value: value };
|
15 | }
|
16 | else {
|
17 | return { name: "float", value: value };
|
18 | }
|
19 | }
|
20 | if (typeof value === "string") {
|
21 | return { name: "string", value: value, format: (0, formats_1.inferFormat)(value) };
|
22 | }
|
23 | if (typeof value === "object") {
|
24 | if (Array.isArray(value)) {
|
25 | return {
|
26 | name: "array",
|
27 | value: value,
|
28 | };
|
29 | }
|
30 | return {
|
31 | name: "object",
|
32 | value: value,
|
33 | };
|
34 | }
|
35 | return { name: "null", value: null };
|
36 | }
|
37 | exports.inferType = inferType;
|