UNPKG

gremlin

Version:

JavaScript Gremlin Language Variant

111 lines (102 loc) 5.69 kB
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /** * GraphBinary 1.0 support implementation. * * The officially expected entrypoint is GraphBinaryReader/GraphBinaryWriter pair of classes, * examine lib/driver/** for use cases. * * See AnySerializer.serialize() for the mechanism of serializer selection for a given JavaScript value, * also consider AnySerializer.serialize() unit tests for real examples. * See NumberSerializationStrategy to understand how it deals with JavaScript numbers' serialization. * * Consider AnySerializer.serialize()/deserialize() unit tests to see what is not implemented, * what is ignored, what is not expected to be (de)serialized, etc. * * TODO: it has the following open topics: * - [] Should we do anything for application/vnd.graphbinary-v1.0-stringd mime type support? * Core Data Types support: * - [] 0x22: BigDecimal * - [] 0x2b: Tree * - [] 0x2c: Metrics * - [] 0x2d: TraversalMetrics * - [] 0x00: Custom * Extended Types support: * - [] 0x80: Char * - [] 0x81: Duration * - [] 0x82: InetAddress * - [] 0x83: Instant * - [] 0x84: LocalDate * - [] 0x85: LocalDateTime * - [] 0x86: LocalTime * - [] 0x87: MonthDay * - [] 0x88: OffsetDateTime * - [] 0x89: OffsetTime * - [] 0x8a: Period * - [] 0x8b: Year * - [] 0x8c: YearMonth * - [] 0x8d: ZonedDateTime * - [] 0x8e: ZoneOffset * * @author Igor Ostapenko */ /*eslint-disable*/ 'use strict'; const ioc = {}; ioc.DataType = require('./internals/DataType'); ioc.utils = require('./internals/utils'); ioc.serializers = {}; ioc.intSerializer = new (require('./internals/IntSerializer'))(ioc); ioc.longSerializer = new (require('./internals/LongSerializer'))(ioc); ioc.longSerializerNg = new (require('./internals/LongSerializerNg'))(ioc); ioc.stringSerializer = new (require('./internals/StringSerializer'))(ioc, ioc.DataType.STRING); ioc.offsetDateTimeSerializer = new (require('./internals/OffsetDateTimeSerializer'))(ioc, ioc.DataType.OFFSETDATETIME); ioc.dateSerializer = new (require('./internals/DateSerializer'))(ioc, ioc.DataType.DATE); ioc.timestampSerializer = new (require('./internals/DateSerializer'))(ioc, ioc.DataType.TIMESTAMP); ioc.classSerializer = new (require('./internals/ClassSerializer'))(ioc); ioc.doubleSerializer = new (require('./internals/DoubleSerializer'))(ioc); ioc.floatSerializer = new (require('./internals/FloatSerializer'))(ioc); ioc.listSerializer = new (require('./internals/ArraySerializer'))(ioc, ioc.DataType.LIST); ioc.mapSerializer = new (require('./internals/MapSerializer'))(ioc); ioc.setSerializer = new (require('./internals/SetSerializer'))(ioc, ioc.DataType.SET); ioc.uuidSerializer = new (require('./internals/UuidSerializer'))(ioc); ioc.edgeSerializer = new (require('./internals/EdgeSerializer'))(ioc); ioc.pathSerializer = new (require('./internals/PathSerializer'))(ioc); ioc.propertySerializer = new (require('./internals/PropertySerializer'))(ioc); ioc.vertexSerializer = new (require('./internals/VertexSerializer'))(ioc); ioc.vertexPropertySerializer = new (require('./internals/VertexPropertySerializer'))(ioc); ioc.bytecodeSerializer = new (require('./internals/BytecodeSerializer'))(ioc); ioc.pSerializer = new (require('./internals/PSerializer'))(ioc); ioc.traverserSerializer = new (require('./internals/TraverserSerializer'))(ioc); ioc.enumSerializer = new (require('./internals/EnumSerializer'))(ioc); ioc.lambdaSerializer = new (require('./internals/LambdaSerializer'))(ioc); ioc.bigIntegerSerializer = new (require('./internals/BigIntegerSerializer'))(ioc); ioc.byteSerializer = new (require('./internals/ByteSerializer'))(ioc); ioc.byteBufferSerializer = new (require('./internals/ByteBufferSerializer'))(ioc); ioc.shortSerializer = new (require('./internals/ShortSerializer'))(ioc); ioc.booleanSerializer = new (require('./internals/BooleanSerializer'))(ioc); ioc.textPSerializer = new (require('./internals/TextPSerializer'))(ioc); ioc.traversalStrategySerializer = new (require('./internals/TraversalStrategySerializer'))(ioc); ioc.bulkSetSerializer = new (require('./internals/BulkSetSerializer'))(ioc); ioc.unspecifiedNullSerializer = new (require('./internals/UnspecifiedNullSerializer'))(ioc); ioc.numberSerializationStrategy = new (require('./internals/NumberSerializationStrategy'))(ioc); ioc.anySerializer = new (require('./internals/AnySerializer'))(ioc); ioc.graphBinaryReader = new (require('./internals/GraphBinaryReader.js'))(ioc); ioc.graphBinaryWriter = new (require('./internals/GraphBinaryWriter'))(ioc); module.exports = ioc;