1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-27 16:10:57 -05:00
denoland-deno/fs/eol.ts
Vincent LE GOFF dcd01dd025 Eslint fixes (denoland/deno_std#356)
Make warnings fail
Original: 4543b563a9
2019-04-24 07:41:22 -04:00

31 lines
713 B
TypeScript

// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
/** EndOfLine character enum */
export enum EOL {
LF = "\n",
CRLF = "\r\n"
}
const regDetect = /(?:\r?\n)/g;
/**
* Detect the EOL character for string input.
* returns null if no newline
*/
export function detect(content: string): EOL | null {
const d = content.match(regDetect);
if (!d || d.length === 0) {
return null;
}
const crlf = d.filter((x: string): boolean => x === EOL.CRLF);
if (crlf.length > 0) {
return EOL.CRLF;
} else {
return EOL.LF;
}
}
/** Format the file to the targeted EOL */
export function format(content: string, eol: EOL): string {
return content.replace(regDetect, eol);
}