@beenotung/tslib
Version:
utils library in Typescript
48 lines (47 loc) • 1.5 kB
JavaScript
;
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;
}
}
}