Initial commit
This commit is contained in:
26
node_modules/strip-final-newline/index.js
generated
vendored
Normal file
26
node_modules/strip-final-newline/index.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export default function stripFinalNewline(input) {
|
||||
if (typeof input === 'string') {
|
||||
return stripFinalNewlineString(input);
|
||||
}
|
||||
|
||||
if (!(ArrayBuffer.isView(input) && input.BYTES_PER_ELEMENT === 1)) {
|
||||
throw new Error('Input must be a string or a Uint8Array');
|
||||
}
|
||||
|
||||
return stripFinalNewlineBinary(input);
|
||||
}
|
||||
|
||||
const stripFinalNewlineString = input =>
|
||||
input.at(-1) === LF
|
||||
? input.slice(0, input.at(-2) === CR ? -2 : -1)
|
||||
: input;
|
||||
|
||||
const stripFinalNewlineBinary = input =>
|
||||
input.at(-1) === LF_BINARY
|
||||
? input.subarray(0, input.at(-2) === CR_BINARY ? -2 : -1)
|
||||
: input;
|
||||
|
||||
const LF = '\n';
|
||||
const LF_BINARY = LF.codePointAt(0);
|
||||
const CR = '\r';
|
||||
const CR_BINARY = CR.codePointAt(0);
|
||||
Reference in New Issue
Block a user