swc/crates/swc_bundler/tests/.cache/deno/3585e6feea6092da3750047f296439657b52a12d.ts
2021-11-09 20:42:49 +09:00

32 lines
730 B
TypeScript

// Loaded from https://deno.land/std@0.85.0/fs/eol.ts
// Copyright 2018-2021 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 hasCRLF = d.some((x: string): boolean => x === EOL.CRLF);
return hasCRLF ? EOL.CRLF : EOL.LF;
}
/** Format the file to the targeted EOL */
export function format(content: string, eol: EOL): string {
return content.replace(regDetect, eol);
}