@appsemble/node-utils
Version:
NodeJS utilities used by Appsemble internally.
46 lines • 1.53 kB
JavaScript
export var Edm;
(function (Edm) {
Edm["null"] = "null";
Edm["Boolean"] = "Edm.Boolean";
Edm["Byte"] = "Edm.Byte";
Edm["Date"] = "Edm.Date";
Edm["DateTimeOffset"] = "Edm.DateTimeOffset";
Edm["Decimal"] = "Edm.Decimal";
Edm["Double"] = "Edm.Double";
Edm["Guid"] = "Edm.Guid";
Edm["Int16"] = "Edm.Int16";
Edm["Int32"] = "Edm.Int32";
Edm["Int64"] = "Edm.Int64";
Edm["SByte"] = "Edm.SByte";
Edm["Single"] = "Edm.Single";
Edm["String"] = "Edm.String";
})(Edm || (Edm = {}));
export function processLiteral(token) {
switch (token.value) {
case Edm.Boolean:
return token.raw === 'true';
case Edm.String:
return JSON.parse(`"${token.raw.slice(1, -1).replaceAll('"', '\\"').replaceAll("''", "'")}"`);
case Edm.Byte:
case Edm.Decimal:
case Edm.Double:
case Edm.Int16:
case Edm.Int32:
case Edm.Int64:
case Edm.SByte:
case Edm.Single:
return Number(token.raw);
case Edm.Date:
case Edm.DateTimeOffset:
// The Date constructor will convert it to UTC.
return new Date(token.raw);
case Edm.Guid:
return token.raw;
case Edm.null:
// @ts-expect-error 2322 null is not assignable to type (strictNullChecks) - Severe
return null;
default:
throw new TypeError(`${token.position}: Unhandled OData literal type: ${token.value}`);
}
}
//# sourceMappingURL=odata.js.map