UNPKG

@ultipa-graph/ultipa-node-sdk

Version:

NodeJS SDK for ultipa-server 4.0

128 lines 4.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NullUtils = void 0; const ultipa_pb_1 = require("../../proto/ultipa_pb"); const types_1 = require("../../types"); const commont_1 = require("./commont"); var NullUtils; (function (NullUtils) { function uint8ArrayEqual(buf1, buf2) { if (buf1.byteLength != buf2.byteLength) return false; var dv1 = new Int8Array(buf1); var dv2 = new Int8Array(buf2); for (var i = 0; i != buf1.byteLength; i++) { if (dv1[i] != dv2[i]) return false; } return true; } NullUtils.uint8ArrayEqual = uint8ArrayEqual; let getListNullValue = () => { let d = new ultipa_pb_1.ListData(); d.setIsNull(true); return d.serializeBinary(); }; let getSetNullValue = () => { let d = new ultipa_pb_1.SetData(); d.setIsNull(true); return d.serializeBinary(); }; let getMapNullValue = () => { let d = new ultipa_pb_1.MapData(); d.setIsNull(true); return d.serializeBinary(); }; NullUtils.AllNullValueUint8Array = { int32: new Uint8Array([ 0x7f, 0xff, 0xff, 0xff ]), datetime: new Uint8Array([ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ]), uint32: new Uint8Array([ 0xff, 0xff, 0xff, 0xff ]), int64: new Uint8Array([ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ]), timestamp: new Uint8Array([ 0xff, 0xff, 0xff, 0xff ]), uint64: new Uint8Array([ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ]), float: new Uint8Array([ 0xff, 0xff, 0xff, 0xff ]), double: new Uint8Array([ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ]), decimal: new Uint8Array([0]), string: new Uint8Array([0]), point: new Uint8Array([ 0x6e, 0x75, 0x6c, 0x6c, ]), text: new Uint8Array([0]), blob: new Uint8Array([0]), list: getListNullValue(), set: getSetNullValue(), map: getMapNullValue(), }; NullUtils.nullValue = (type) => { const { PROPERTY_INT32, PROPERTY_STRING, PROPERTY_FLOAT, PROPERTY_DOUBLE, PROPERTY_UINT32, PROPERTY_INT64, PROPERTY_UINT64, PROPERTY_DATETIME, PROPERTY_TIMESTAMP, PROPERTY_TEXT, PROPERTY_BLOB, PROPERTY_POINT, PROPERTY_DECIMAL, PROPERTY_LIST, PROPERTY_SET, PROPERTY_MAP, } = types_1.ULTIPA.PropertyType; switch (type) { case PROPERTY_BLOB: return NullUtils.AllNullValueUint8Array.blob; case PROPERTY_STRING: return NullUtils.AllNullValueUint8Array.string; case PROPERTY_DECIMAL: return NullUtils.AllNullValueUint8Array.decimal; case PROPERTY_POINT: return NullUtils.AllNullValueUint8Array.point; case PROPERTY_TEXT: return NullUtils.AllNullValueUint8Array.text; case PROPERTY_INT32: return NullUtils.AllNullValueUint8Array.int32; case PROPERTY_FLOAT: return NullUtils.AllNullValueUint8Array.float; case PROPERTY_DOUBLE: return NullUtils.AllNullValueUint8Array.double; case PROPERTY_TIMESTAMP: return NullUtils.AllNullValueUint8Array.timestamp; case PROPERTY_UINT32: return NullUtils.AllNullValueUint8Array.uint32; case PROPERTY_INT64: return NullUtils.AllNullValueUint8Array.int64; case PROPERTY_DATETIME: return NullUtils.AllNullValueUint8Array.datetime; case PROPERTY_UINT64: return NullUtils.AllNullValueUint8Array.uint64; case PROPERTY_SET: return NullUtils.AllNullValueUint8Array.set; case PROPERTY_LIST: if (commont_1.TypeSupport.list) { return NullUtils.AllNullValueUint8Array.list; } break; case PROPERTY_MAP: if (commont_1.TypeSupport.map) { return NullUtils.AllNullValueUint8Array.map; } break; } commont_1.TypeSupport.NotSupport(type); }; NullUtils.isNullValueByBytes = (v, type) => { if (type === types_1.ULTIPA.PropertyType.PROPERTY_NULL) { return true; } let nullV = NullUtils.nullValue(type); return uint8ArrayEqual(v, nullV); }; })(NullUtils = exports.NullUtils || (exports.NullUtils = {})); //# sourceMappingURL=null.js.map