UNPKG

@beenotung/tslib

Version:
48 lines (47 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.iterateFileByLineWithProgressSync = iterateFileByLineWithProgressSync; exports.iterateFileByLineWithProgressAsync = iterateFileByLineWithProgressAsync; const tslib_1 = require("tslib"); const fs = tslib_1.__importStar(require("fs")); const fs_1 = require("./fs"); function iterateFileByLineWithProgressSync(options) { const stat = fs.statSync(options.file); const totalSize = stat.size; options.initCallback?.(totalSize); let lineNumber = 0; let offset = 0; for (const line of (0, fs_1.iterateFileByLine)(options.file)) { const result = options.eachLine({ line, totalSize, lineNumber, offset, }); lineNumber++; offset += line.length + 1; // +1 for linefeed if (result === 'break') { break; } } } async function iterateFileByLineWithProgressAsync(options) { const stat = fs.statSync(options.file); const totalSize = stat.size; options.initCallback?.(totalSize); let lineNumber = 0; let offset = 0; for (const line of (0, fs_1.iterateFileByLine)(options.file)) { const result = await options.eachLine({ line, totalSize, lineNumber, offset, }); lineNumber++; offset += line.length + 1; // +1 for linefeed if (result === 'break') { break; } } }