Spaces:
Sleeping
Sleeping
// 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. | |
/** @ignore */ | |
export { Builder } from '../builder'; | |
export { BoolBuilder } from './bool'; | |
export { NullBuilder } from './null'; | |
export { DateBuilder, DateDayBuilder, DateMillisecondBuilder } from './date'; | |
export { DecimalBuilder } from './decimal'; | |
export { DictionaryBuilder } from './dictionary'; | |
export { FixedSizeBinaryBuilder } from './fixedsizebinary'; | |
export { FloatBuilder, Float16Builder, Float32Builder, Float64Builder } from './float'; | |
export { IntBuilder, Int8Builder, Int16Builder, Int32Builder, Int64Builder, Uint8Builder, Uint16Builder, Uint32Builder, Uint64Builder } from './int'; | |
export { TimeBuilder, TimeSecondBuilder, TimeMillisecondBuilder, TimeMicrosecondBuilder, TimeNanosecondBuilder } from './time'; | |
export { TimestampBuilder, TimestampSecondBuilder, TimestampMillisecondBuilder, TimestampMicrosecondBuilder, TimestampNanosecondBuilder } from './timestamp'; | |
export { IntervalBuilder, IntervalDayTimeBuilder, IntervalYearMonthBuilder } from './interval'; | |
export { Utf8Builder } from './utf8'; | |
export { BinaryBuilder } from './binary'; | |
export { ListBuilder } from './list'; | |
export { FixedSizeListBuilder } from './fixedsizelist'; | |
export { MapBuilder } from './map'; | |
export { StructBuilder } from './struct'; | |
export { UnionBuilder, SparseUnionBuilder, DenseUnionBuilder } from './union'; | |
import { Type } from '../enum'; | |
import { Utf8Builder } from './utf8'; | |
import { Builder } from '../builder'; | |
import { instance as setVisitor } from '../visitor/set'; | |
import { instance as getBuilderConstructor } from '../visitor/builderctor'; | |
/** @nocollapse */ | |
Builder.new = newBuilder; | |
function newBuilder(options) { | |
const type = options.type; | |
const builder = new (getBuilderConstructor.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(Type) | |
.map((T) => Type[T]) | |
.filter((T) => typeof T === 'number' && T !== Type.NONE) | |
.forEach((typeId) => { | |
const BuilderCtor = getBuilderConstructor.visit(typeId); | |
BuilderCtor.prototype._setValue = setVisitor.getVisitFn(typeId); | |
}); | |
Utf8Builder.prototype._setValue = setVisitor.visitBinary; | |
//# sourceMappingURL=index.mjs.map | |