@storm-stack/core
Version:
A build toolkit and runtime used by Storm Software in TypeScript applications
128 lines (126 loc) • 5.26 kB
JavaScript
import { __name } from './chunk-43IZMM3W.js';
import { getUniqueBy } from '@stryke/helpers/get-unique';
import { StormJSON } from '@stryke/json/storm-json';
import { isNull } from '@stryke/type-checks/is-null';
import { isString } from '@stryke/type-checks/is-string';
import { isUndefined } from '@stryke/type-checks/is-undefined';
function stringifyDefaultValue(property, value) {
return stringifyValue(property.type, value ?? property.getDefaultValue());
}
__name(stringifyDefaultValue, "stringifyDefaultValue");
function stringifyStringValue(value) {
return `"${String(value).replaceAll('"', '\\"')}"`;
}
__name(stringifyStringValue, "stringifyStringValue");
function stringifyValue(type, value) {
return isUndefined(value) ? "undefined" : isNull(value) ? "null" : type.kind === (void 0).boolean ? Boolean(String(value).trim().toLowerCase()) === true ? "true" : "false" : type.kind === (void 0).string || type.kind === (void 0).literal && isString(type.literal) ? stringifyStringValue(value) : type.kind === (void 0).enum ? getEnumType(type).kind === (void 0).string ? stringifyStringValue(value) : `${String(value)}` : type.kind === (void 0).union ? isStringUnion(type) ? stringifyStringValue(value) : `${String(value)}` : type.kind === (void 0).array ? stringifyStringValue(StormJSON.stringify(value)) : type.kind === (void 0).object || type.kind === (void 0).objectLiteral ? StormJSON.stringify(value) : type.kind === (void 0).property || type.kind === (void 0).parameter ? stringifyValue(type.type, value) : String(value);
}
__name(stringifyValue, "stringifyValue");
function getEnumType(type) {
if (type.kind !== (void 0).enum) {
throw new Error(`Expected a TypeEnum, but received ${type.kind}.`);
}
const unique = getUniqueBy(type.values.filter((value) => value !== void 0 && value !== null), (enumMember) => isString(enumMember) ? {
kind: (void 0).string
} : {
kind: (void 0).number
});
if (unique.length === 0) {
throw new Error(`No valid enum members could be found.`);
}
return unique[0] && isString(unique[0]) ? {
kind: (void 0).string
} : {
kind: (void 0).number
};
}
__name(getEnumType, "getEnumType");
function getUnionTypes(type) {
if (type.kind === (void 0).union && type.types.length > 0) {
return getUniqueBy(type.types, (member) => member.kind);
}
throw new Error(`Expected a TypeUnion, but received ${type.kind}.`);
}
__name(getUnionTypes, "getUnionTypes");
function isStringUnion(type) {
return getUnionTypes(type).some((member) => member.kind === (void 0).string || member.kind === (void 0).literal && isString(member.literal));
}
__name(isStringUnion, "isStringUnion");
function kindToName(kind) {
if (kind === (void 0).void) {
return "void";
} else if (kind === (void 0).never) {
return "never";
} else if (kind === (void 0).null) {
return "null";
} else if (kind === (void 0).undefined) {
return "undefined";
} else if (kind === (void 0).symbol) {
return "symbol";
} else if (kind === (void 0).bigint) {
return "bigint";
} else if (kind === (void 0).number) {
return "number";
} else if (kind === (void 0).string) {
return "string";
} else if (kind === (void 0).boolean) {
return "boolean";
} else if (kind === (void 0).literal) {
return "literal";
} else if (kind === (void 0).class) {
return "class";
} else if (kind === (void 0).array) {
return "array";
} else if (kind === (void 0).object) {
return "object";
} else if (kind === (void 0).objectLiteral) {
return "objectLiteral";
} else if (kind === (void 0).union) {
return "union";
} else if (kind === (void 0).enum) {
return "enum";
} else if (kind === (void 0).regexp) {
return "regexp";
} else if (kind === (void 0).templateLiteral) {
return "templateLiteral";
} else if (kind === (void 0).property) {
return "property";
} else if (kind === (void 0).method) {
return "method";
} else if (kind === (void 0).function) {
return "function";
} else if (kind === (void 0).parameter) {
return "parameter";
} else if (kind === (void 0).promise) {
return "promise";
} else if (kind === (void 0).typeParameter) {
return "typeParameter";
} else if (kind === (void 0).tuple) {
return "tuple";
} else if (kind === (void 0).tupleMember) {
return "tupleMember";
} else if (kind === (void 0).enumMember) {
return "enumMember";
} else if (kind === (void 0).rest) {
return "rest";
} else if (kind === (void 0).indexSignature) {
return "indexSignature";
} else if (kind === (void 0).propertySignature) {
return "propertySignature";
} else if (kind === (void 0).methodSignature) {
return "methodSignature";
} else if (kind === (void 0).infer) {
return "infer";
} else if (kind === (void 0).callSignature) {
return "callSignature";
} else if (kind === (void 0).any) {
return "any";
} else if (kind === (void 0).intersection) {
return "intersection";
}
return "unknown";
}
__name(kindToName, "kindToName");
export { getEnumType, getUnionTypes, isStringUnion, kindToName, stringifyDefaultValue, stringifyStringValue, stringifyValue };
//# sourceMappingURL=chunk-JYZMY7IS.js.map
//# sourceMappingURL=chunk-JYZMY7IS.js.map