Skip to main content

@terascope/file-asset-apis / file/file-reader-api / FileTerasliceAPI

Class: FileTerasliceAPI

Defined in: file/file-reader-api.ts:13

Extends​

Constructors​

Constructor​

new FileTerasliceAPI(config, logger): FileTerasliceAPI

Defined in: file/file-reader-api.ts:17

Parameters​

ParameterType
configReaderAPIConfig
loggerLogger

Returns​

FileTerasliceAPI

Overrides​

FileFetcher.constructor

Properties​

PropertyModifierTypeDefault valueInherited fromDefined in
clientpublic__modulefseFileFetcher.clientfile/file-fetcher.ts:7
compressorpublicCompressorundefinedFileFetcher.compressorbase/chunked-file-reader.ts:73
filePerSliceprotectedbooleanundefinedFileFetcher.filePerSlicebase/chunked-file-reader.ts:82
loggerpublicLoggerundefinedFileFetcher.loggerbase/chunked-file-reader.ts:72
segmentFileConfigreadonlySliceConfigundefined-file/file-reader-api.ts:14
sizereadonlynumberundefinedFileFetcher.sizefile/file-fetcher.ts:8
slicerConfigreadonlyFileSliceConfigundefined-file/file-reader-api.ts:15

Accessors​

format​

Get Signature​

get format(): Format

Defined in: base/chunked-file-reader.ts:126

Returns​

Format

Inherited from​

FileFetcher.format


lineDelimiter​

Get Signature​

get lineDelimiter(): string

Defined in: base/chunked-file-reader.ts:122

Returns​

string

Inherited from​

FileFetcher.lineDelimiter

Methods​

canReadFile()​

canReadFile(fileName): boolean

Defined in: file/file-reader-api.ts:40

Determines if a file name or file path can be processed, it will return false if the name of path contains a segment that starts with "."

Parameters​

ParameterType
fileNamestring

Returns​

boolean


csv()​

protected csv(incomingData, slice): Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Defined in: base/chunked-file-reader.ts:232

Parameters​

ParameterType
incomingDatastring
sliceFileSlice

Returns​

Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Inherited from​

FileFetcher.csv


fetch()​

protected fetch(slice): Promise<string>

Defined in: file/file-fetcher.ts:29

low level api that fetches the unprocessed contents of the file, please use the "read" method for correct file and data parsing

Parameters​

ParameterType
sliceFileSlice

Returns​

Promise<string>

Example​

const slice = {
offset: 0,
length: 1000,
path: 'some/file.txt',
total: 1000
};
const results = await fileReader.fetch(slice);
results === 'the unprocessed contents of the file here'

Inherited from​

FileFetcher.fetch


getMargin()​

protected getMargin(slice, delimiter): Promise<string>

Defined in: base/chunked-file-reader.ts:199

Parameters​

ParameterType
sliceFileSlice
delimiterstring

Returns​

Promise<string>

Inherited from​

FileFetcher.getMargin


json()​

protected json(incomingData, slice): Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Defined in: base/chunked-file-reader.ts:293

Parameters​

ParameterType
incomingDatastring
sliceFileSlice

Returns​

Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Inherited from​

FileFetcher.json


ldjson()​

protected ldjson(incomingData, slice): Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Defined in: base/chunked-file-reader.ts:319

Parameters​

ParameterType
incomingDatastring
sliceFileSlice

Returns​

Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Inherited from​

FileFetcher.ldjson


makeSlicer()​

makeSlicer(): Promise<() => Promise<FileSlice[] | null>>

Defined in: file/file-reader-api.ts:137

Generates a function that will resolve one or more slices each time it is called. These slices will can be used to "fetch" chunks of data. Returns null when complete

Returns​

Promise<() => Promise<FileSlice[] | null>>

Example​

const config = {
size: 1000,
file_per_slice: false,
line_delimiter: '\n',
size: 300,
format: "ldjson"
path: 'some/dir'
}
const fileReader = new FileReader(config);
const slicer = await fileReader.newSlicer();

const results = await slicer();
results === [
{
offset: 0,
length: 1000,
path: 'some/dir/file.txt',
total: 1000
}
]

raw()​

protected raw(incomingData, slice): Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Defined in: base/chunked-file-reader.ts:223

Parameters​

ParameterType
incomingDatastring
sliceFileSlice

Returns​

Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Inherited from​

FileFetcher.raw


read()​

read(slice): Promise<DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>[]>

Defined in: base/chunked-file-reader.ts:333

Parameters​

ParameterType
sliceFileSlice

Returns​

Promise<DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>>[]>

Inherited from​

FileFetcher.read


segmentFile()​

segmentFile(file): FileSlice[]

Defined in: file/file-reader-api.ts:103

Create file segments from input, these will can be used to fetch specific chunks of a file

Parameters​

ParameterType
file{ path: string; size: number; }
file.pathstring
file.sizenumber

Returns​

FileSlice[]

Example​

const config = {
size: 1000,
file_per_slice: false,
line_delimiter: '\n',
size: 300,
format: "ldjson"
}
const fileReader = new FileReader(config);
const results = fileReader.segmentFile({
path: 'some/file.txt',
size: 2000
});
results === [
{
offset: 0,
length: 1000,
path: 'some/file.txt',
total: 1000
},
{
offset: 1001,
length: 1000,
path: 'some/file.txt',
total: 1000
},
]

tsv()​

protected tsv(incomingData, slice): Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Defined in: base/chunked-file-reader.ts:287

Parameters​

ParameterType
incomingDatastring
sliceFileSlice

Returns​

Promise<(DataEntity<Record<string, any>, _DataEntityMetadata<Record<string, any>>> | null)[]>

Inherited from​

FileFetcher.tsv


validatePath()​

validatePath(path): void

Defined in: file/file-reader-api.ts:54

Determines if a directory can be processed, will throw if it is a symlink or if the directory is empty

Parameters​

ParameterType
pathstring

Returns​

void

Example​

fileReader.validatePath('some/emptyDir') => Error
fileReader.validatePath('some/symlinkedDir') => Error
fileReader.validatePath('some/dir') => void