117 lines
5.2 KiB
JavaScript
117 lines
5.2 KiB
JavaScript
"use strict";
|
|
// 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.
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
/** @ignore */
|
|
var builder_1 = require("../builder");
|
|
exports.Builder = builder_1.Builder;
|
|
var bool_1 = require("./bool");
|
|
exports.BoolBuilder = bool_1.BoolBuilder;
|
|
var null_1 = require("./null");
|
|
exports.NullBuilder = null_1.NullBuilder;
|
|
var date_1 = require("./date");
|
|
exports.DateBuilder = date_1.DateBuilder;
|
|
exports.DateDayBuilder = date_1.DateDayBuilder;
|
|
exports.DateMillisecondBuilder = date_1.DateMillisecondBuilder;
|
|
var decimal_1 = require("./decimal");
|
|
exports.DecimalBuilder = decimal_1.DecimalBuilder;
|
|
var dictionary_1 = require("./dictionary");
|
|
exports.DictionaryBuilder = dictionary_1.DictionaryBuilder;
|
|
var fixedsizebinary_1 = require("./fixedsizebinary");
|
|
exports.FixedSizeBinaryBuilder = fixedsizebinary_1.FixedSizeBinaryBuilder;
|
|
var float_1 = require("./float");
|
|
exports.FloatBuilder = float_1.FloatBuilder;
|
|
exports.Float16Builder = float_1.Float16Builder;
|
|
exports.Float32Builder = float_1.Float32Builder;
|
|
exports.Float64Builder = float_1.Float64Builder;
|
|
var int_1 = require("./int");
|
|
exports.IntBuilder = int_1.IntBuilder;
|
|
exports.Int8Builder = int_1.Int8Builder;
|
|
exports.Int16Builder = int_1.Int16Builder;
|
|
exports.Int32Builder = int_1.Int32Builder;
|
|
exports.Int64Builder = int_1.Int64Builder;
|
|
exports.Uint8Builder = int_1.Uint8Builder;
|
|
exports.Uint16Builder = int_1.Uint16Builder;
|
|
exports.Uint32Builder = int_1.Uint32Builder;
|
|
exports.Uint64Builder = int_1.Uint64Builder;
|
|
var time_1 = require("./time");
|
|
exports.TimeBuilder = time_1.TimeBuilder;
|
|
exports.TimeSecondBuilder = time_1.TimeSecondBuilder;
|
|
exports.TimeMillisecondBuilder = time_1.TimeMillisecondBuilder;
|
|
exports.TimeMicrosecondBuilder = time_1.TimeMicrosecondBuilder;
|
|
exports.TimeNanosecondBuilder = time_1.TimeNanosecondBuilder;
|
|
var timestamp_1 = require("./timestamp");
|
|
exports.TimestampBuilder = timestamp_1.TimestampBuilder;
|
|
exports.TimestampSecondBuilder = timestamp_1.TimestampSecondBuilder;
|
|
exports.TimestampMillisecondBuilder = timestamp_1.TimestampMillisecondBuilder;
|
|
exports.TimestampMicrosecondBuilder = timestamp_1.TimestampMicrosecondBuilder;
|
|
exports.TimestampNanosecondBuilder = timestamp_1.TimestampNanosecondBuilder;
|
|
var interval_1 = require("./interval");
|
|
exports.IntervalBuilder = interval_1.IntervalBuilder;
|
|
exports.IntervalDayTimeBuilder = interval_1.IntervalDayTimeBuilder;
|
|
exports.IntervalYearMonthBuilder = interval_1.IntervalYearMonthBuilder;
|
|
var utf8_1 = require("./utf8");
|
|
exports.Utf8Builder = utf8_1.Utf8Builder;
|
|
var binary_1 = require("./binary");
|
|
exports.BinaryBuilder = binary_1.BinaryBuilder;
|
|
var list_1 = require("./list");
|
|
exports.ListBuilder = list_1.ListBuilder;
|
|
var fixedsizelist_1 = require("./fixedsizelist");
|
|
exports.FixedSizeListBuilder = fixedsizelist_1.FixedSizeListBuilder;
|
|
var map_1 = require("./map");
|
|
exports.MapBuilder = map_1.MapBuilder;
|
|
var struct_1 = require("./struct");
|
|
exports.StructBuilder = struct_1.StructBuilder;
|
|
var union_1 = require("./union");
|
|
exports.UnionBuilder = union_1.UnionBuilder;
|
|
exports.SparseUnionBuilder = union_1.SparseUnionBuilder;
|
|
exports.DenseUnionBuilder = union_1.DenseUnionBuilder;
|
|
const enum_1 = require("../enum");
|
|
const utf8_2 = require("./utf8");
|
|
const builder_2 = require("../builder");
|
|
const set_1 = require("../visitor/set");
|
|
const builderctor_1 = require("../visitor/builderctor");
|
|
/** @nocollapse */
|
|
builder_2.Builder.new = newBuilder;
|
|
function newBuilder(options) {
|
|
const type = options.type;
|
|
const builder = new (builderctor_1.instance.getVisitFn(type)())(options);
|
|
if (type.children && type.children.length > 0) {
|
|
const children = options['children'] || [];
|
|
const defaultOptions = { 'nullValues': options['nullValues'] };
|
|
const getChildOptions = Array.isArray(children)
|
|
? ((_, i) => children[i] || defaultOptions)
|
|
: (({ name }) => children[name] || defaultOptions);
|
|
type.children.forEach((field, index) => {
|
|
const { type } = field;
|
|
const opts = getChildOptions(field, index);
|
|
builder.children.push(newBuilder({ ...opts, type }));
|
|
});
|
|
}
|
|
return builder;
|
|
}
|
|
Object.keys(enum_1.Type)
|
|
.map((T) => enum_1.Type[T])
|
|
.filter((T) => typeof T === 'number' && T !== enum_1.Type.NONE)
|
|
.forEach((typeId) => {
|
|
const BuilderCtor = builderctor_1.instance.visit(typeId);
|
|
BuilderCtor.prototype._setValue = set_1.instance.getVisitFn(typeId);
|
|
});
|
|
utf8_2.Utf8Builder.prototype._setValue = set_1.instance.visitBinary;
|
|
|
|
//# sourceMappingURL=index.js.map
|