Skip to content

Commit 87dbb09

Browse files
author
Gareth Jones
committed
fix: num to keep now works with date patterns that are all numbers
1 parent 3222ed5 commit 87dbb09

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

lib/RollingFileWriteStream.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@ class RollingFileWriteStream extends Writable {
246246
debug("_clean: existing files are: ", existingFileDetails);
247247
if (this._tooManyFiles(existingFileDetails.length)) {
248248
const fileNamesToRemove = existingFileDetails
249-
.map(f => path.format({ dir: this.fileObject.dir, base: f.filename }))
250-
.slice(0, existingFileDetails.length - this.options.numToKeep - 1);
249+
.slice(0, existingFileDetails.length - this.options.numToKeep - 1)
250+
.map(f => path.format({ dir: this.fileObject.dir, base: f.filename }));
251251
await deleteFiles(fileNamesToRemove);
252252
}
253253
}

lib/fileNameParser.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ module.exports = ({ file, keepFileExt, pattern }) => {
4040
if (indexStr !== undefined && indexStr.match(/^\d+$/)) {
4141
dateStr = f.slice(0, -1 * (indexStr.length + 1));
4242
debug(`dateStr is ${dateStr}`);
43+
if (pattern && !dateStr) {
44+
dateStr = indexStr;
45+
indexStr = "0";
46+
}
4347
} else {
4448
indexStr = "0";
4549
}

test/fileNameParser-test.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,27 @@ describe("fileNameParser", () => {
100100
});
101101
});
102102
});
103+
104+
describe("with a two-digit date pattern", () => {
105+
const parser = require("../lib/fileNameParser")({
106+
file: {
107+
dir: "/path/to/file",
108+
base: "thing.log",
109+
ext: ".log",
110+
name: "thing"
111+
},
112+
pattern: "mm"
113+
});
114+
it("should take a filename and return the date", () => {
115+
const expectedTimestamp = new Date(0,0);
116+
expectedTimestamp.setMinutes(34);
117+
parser("thing.log.34").should.eql({
118+
filename: "thing.log.34",
119+
date: "34",
120+
isCompressed: false,
121+
index: 0,
122+
timestamp: expectedTimestamp.getTime()
123+
});
124+
});
125+
})
103126
});

0 commit comments

Comments
 (0)