@storm-stack/core
Version:
A build toolkit and runtime used by Storm Software in TypeScript applications
1 lines • 15 kB
Source Map (JSON)
{"version":3,"sources":["../../src/lib/deepkit/utilities.ts"],"names":["stringifyDefaultValue","property","value","stringifyValue","type","getDefaultValue","stringifyStringValue","String","replaceAll","isUndefined","isNull","kind","ReflectionKind","boolean","Boolean","trim","toLowerCase","string","literal","isString","enum","getEnumType","union","isStringUnion","array","StormJSON","stringify","object","objectLiteral","parameter","Error","unique","getUniqueBy","values","filter","undefined","enumMember","number","length","getUnionTypes","types","member","some","kindToName","void","never","null","symbol","bigint","class","regexp","templateLiteral","method","function","promise","typeParameter","tuple","tupleMember","rest","indexSignature","propertySignature","methodSignature","infer","callSignature","any","intersection"],"mappings":"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","file":"chunk-Z52BGQCG.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Storm Stack\n\n This code was released as part of the Storm Stack project. Storm Stack\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/storm-stack.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/storm-stack\n Documentation: https://docs.stormsoftware.com/projects/storm-stack\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n ReflectionKind,\n ReflectionParameter,\n ReflectionProperty,\n Type,\n TypeNumber,\n TypeString\n} from \"@deepkit/type\";\nimport { getUniqueBy } from \"@stryke/helpers/get-unique\";\nimport { StormJSON } from \"@stryke/json/storm-json\";\nimport { isNull } from \"@stryke/type-checks/is-null\";\nimport { isString } from \"@stryke/type-checks/is-string\";\nimport { isUndefined } from \"@stryke/type-checks/is-undefined\";\n\n/**\n * Converts any {@link ReflectionProperty} or {@link ReflectionParameter}'s value to string representation.\n *\n * @param property - The {@link ReflectionProperty} or {@link ReflectionParameter} containing the value to stringify.\n * @param value - The value to stringify.\n * @returns A string representation of the value.\n */\nexport function stringifyDefaultValue(\n property: ReflectionProperty | ReflectionParameter,\n value?: any\n): string {\n return stringifyValue(property.type, value ?? property.getDefaultValue());\n}\n\n/**\n * Stringifies a value as a string.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the value.\n */\nexport function stringifyStringValue(value): string {\n return `\"${String(value).replaceAll('\"', '\\\\\"')}\"`;\n}\n\n/**\n * Converts any {@link Type}'s actual value to string representation.\n *\n * @param type - The {@link Type} of the value to stringify.\n * @param value - The value to stringify.\n * @returns A string representation of the value.\n */\nexport function stringifyValue(type: Type, value: any): string {\n return isUndefined(value)\n ? \"undefined\"\n : isNull(value)\n ? \"null\"\n : type.kind === ReflectionKind.boolean\n ? Boolean(String(value).trim().toLowerCase()) === true\n ? \"true\"\n : \"false\"\n : type.kind === ReflectionKind.string ||\n (type.kind === ReflectionKind.literal && isString(type.literal))\n ? stringifyStringValue(value)\n : type.kind === ReflectionKind.enum\n ? getEnumType(type).kind === ReflectionKind.string\n ? stringifyStringValue(value)\n : `${String(value)}`\n : type.kind === ReflectionKind.union\n ? isStringUnion(type)\n ? stringifyStringValue(value)\n : `${String(value)}`\n : type.kind === ReflectionKind.array\n ? stringifyStringValue(StormJSON.stringify(value))\n : type.kind === ReflectionKind.object ||\n type.kind === ReflectionKind.objectLiteral\n ? StormJSON.stringify(value)\n : type.kind === ReflectionKind.property ||\n type.kind === ReflectionKind.parameter\n ? stringifyValue(type.type, value)\n : String(value);\n}\n\n/**\n * Converts a {@link TypeEnum} to its underlying primitive type representation.\n *\n * @param type - The {@link TypeEnum} to evaluate.\n * @returns A string representation of the primitive type.\n */\nexport function getEnumType(type: Type): TypeString | TypeNumber {\n if (type.kind !== ReflectionKind.enum) {\n throw new Error(`Expected a TypeEnum, but received ${type.kind}.`);\n }\n\n const unique = getUniqueBy(\n type.values.filter(value => value !== undefined && value !== null),\n enumMember =>\n isString(enumMember)\n ? {\n kind: ReflectionKind.string\n }\n : {\n kind: ReflectionKind.number\n }\n );\n if (unique.length === 0) {\n throw new Error(`No valid enum members could be found.`);\n }\n\n return unique[0] && isString(unique[0])\n ? {\n kind: ReflectionKind.string\n }\n : {\n kind: ReflectionKind.number\n };\n}\n\n/**\n * Converts a {@link TypeUnion} to its underlying primitive type representation.\n *\n * @param type - The {@link TypeUnion} to evaluate.\n * @returns A string representation of the primitive type.\n */\nexport function getUnionTypes(type: Type): Type[] {\n if (type.kind === ReflectionKind.union && type.types.length > 0) {\n return getUniqueBy(type.types, member => member.kind);\n }\n\n throw new Error(`Expected a TypeUnion, but received ${type.kind}.`);\n}\n\nexport function isStringUnion(type: Type): boolean {\n return getUnionTypes(type).some(\n member =>\n member.kind === ReflectionKind.string ||\n (member.kind === ReflectionKind.literal && isString(member.literal))\n );\n}\n\n/**\n * Converts a ReflectionKind to its string representation.\n *\n * @param kind - The {@link ReflectionKind} to convert.\n * @returns A string representation of the kind.\n */\nexport function kindToName(kind: ReflectionKind): string {\n if (kind === ReflectionKind.void) {\n return \"void\";\n } else if (kind === ReflectionKind.never) {\n return \"never\";\n } else if (kind === ReflectionKind.null) {\n return \"null\";\n } else if (kind === ReflectionKind.undefined) {\n return \"undefined\";\n } else if (kind === ReflectionKind.symbol) {\n return \"symbol\";\n } else if (kind === ReflectionKind.bigint) {\n return \"bigint\";\n } else if (kind === ReflectionKind.number) {\n return \"number\";\n } else if (kind === ReflectionKind.string) {\n return \"string\";\n } else if (kind === ReflectionKind.boolean) {\n return \"boolean\";\n } else if (kind === ReflectionKind.literal) {\n return \"literal\";\n } else if (kind === ReflectionKind.class) {\n return \"class\";\n } else if (kind === ReflectionKind.array) {\n return \"array\";\n } else if (kind === ReflectionKind.object) {\n return \"object\";\n } else if (kind === ReflectionKind.objectLiteral) {\n return \"objectLiteral\";\n } else if (kind === ReflectionKind.union) {\n return \"union\";\n } else if (kind === ReflectionKind.enum) {\n return \"enum\";\n } else if (kind === ReflectionKind.regexp) {\n return \"regexp\";\n } else if (kind === ReflectionKind.templateLiteral) {\n return \"templateLiteral\";\n } else if (kind === ReflectionKind.property) {\n return \"property\";\n } else if (kind === ReflectionKind.method) {\n return \"method\";\n } else if (kind === ReflectionKind.function) {\n return \"function\";\n } else if (kind === ReflectionKind.parameter) {\n return \"parameter\";\n } else if (kind === ReflectionKind.promise) {\n return \"promise\";\n } else if (kind === ReflectionKind.typeParameter) {\n return \"typeParameter\";\n } else if (kind === ReflectionKind.tuple) {\n return \"tuple\";\n } else if (kind === ReflectionKind.tupleMember) {\n return \"tupleMember\";\n } else if (kind === ReflectionKind.enumMember) {\n return \"enumMember\";\n } else if (kind === ReflectionKind.rest) {\n return \"rest\";\n } else if (kind === ReflectionKind.indexSignature) {\n return \"indexSignature\";\n } else if (kind === ReflectionKind.propertySignature) {\n return \"propertySignature\";\n } else if (kind === ReflectionKind.methodSignature) {\n return \"methodSignature\";\n } else if (kind === ReflectionKind.infer) {\n return \"infer\";\n } else if (kind === ReflectionKind.callSignature) {\n return \"callSignature\";\n } else if (kind === ReflectionKind.any) {\n return \"any\";\n } else if (kind === ReflectionKind.intersection) {\n return \"intersection\";\n }\n\n return \"unknown\";\n}\n"]}