blob: f563ece3aa80be4a522a04701731c8d30e0fcd51 [file] [log] [blame]
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
import int from "./int.mjs";
import long from "./long.mjs";
import float from "./float.mjs";
import _null from "./null.mjs";
import _class from "./class.mjs";
import double from "./double.mjs";
import string from "./string.mjs";
import { array, arrayList, hashMap, hashSet } from "./collections.mjs";
import entry, { ENTRY_TYPE } from "./entry.mjs";
import foldedList, { FOLDED_TYPE } from "./folded-list.mjs";
import {
i8,
i16,
i32,
i64,
f32,
f64,
isRef,
kotlinArray,
kotlinString,
kotlinArrayList,
kotlinNullableArray,
kotlinNullableString,
kotlinNullableArrayList,
kotlinShortArray,
kotlinNullableShortArray,
kotlinUShortArray,
kotlinNullableUShortArray,
kotlinByteArray,
kotlinNullableByteArray,
kotlinUByteArray,
kotlinNullableUByteArray,
kotlinNullableIntArray,
kotlinIntArray,
kotlinUIntArray,
kotlinNullableUIntArray,
kotlinLongArray,
kotlinNullableULongArray,
kotlinULongArray,
kotlinNullableLongArray,
kotlinFloatArray,
kotlinNullableFloatArray,
kotlinDoubleArray,
kotlinNullableDoubleArray,
kotlinHashSet,
kotlinNullableHashSet,
kotlinHashMap,
kotlinNullableHashMap,
} from "../type-checkers/index.mjs";
const simpleFormatters = new Map([
[ENTRY_TYPE, entry],
[FOLDED_TYPE, foldedList],
[kotlinString(), string],
[kotlinNullableString(), string],
[i8(), int],
[i16(), int],
[i32(), int],
[i64(), long],
[f32(), float],
[f64(), double],
[kotlinArray(), array],
[kotlinNullableArray(), array],
[kotlinArray(), array],
[kotlinNullableArray(), array],
[kotlinByteArray(), array],
[kotlinNullableByteArray(), array],
[kotlinUByteArray(), array],
[kotlinNullableUByteArray(), array],
[kotlinShortArray(), array],
[kotlinNullableShortArray(), array],
[kotlinUShortArray(), array],
[kotlinNullableUShortArray(), array],
[kotlinIntArray(), array],
[kotlinNullableIntArray(), array],
[kotlinUIntArray(), array],
[kotlinNullableUIntArray(), array],
[kotlinLongArray(), array],
[kotlinNullableLongArray(), array],
[kotlinULongArray(), array],
[kotlinNullableULongArray(), array],
[kotlinFloatArray(), array],
[kotlinNullableFloatArray(), array],
[kotlinDoubleArray(), array],
[kotlinNullableDoubleArray(), array],
[kotlinArrayList(), arrayList],
[kotlinNullableArrayList(), arrayList],
[kotlinHashSet(), hashSet],
[kotlinNullableHashSet(), hashSet],
[kotlinHashMap(), hashMap],
[kotlinNullableHashMap(), hashMap],
])
export default {
get(object) {
const type = object?.type;
if (type == null) return undefined
const simpleFormatter = simpleFormatters.get(type)
if (simpleFormatter !== undefined) {
return object.value === null ? _null : simpleFormatter
}
if (isRef(type)) {
return object.value === null ? _null : _class
}
}
}