diff options
| author | Ryan Dahl <ry@tinyclouds.org> | 2019-10-10 05:31:23 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-10 05:31:23 -0400 |
| commit | e7562eed8c816cd0d97aab6b818d7c8453dbaa2b (patch) | |
| tree | c5a9f536e79d2c8d2d02897511a9138acaf35394 /std/fs/eol.ts | |
| parent | 3882c9d19a641e0c919f1350d87c6d7ee280cf78 (diff) | |
| parent | 93f7f00c956c14620ef031626f124b57397ca867 (diff) | |
Merge deno_std in main repo (#3091)
The history of deno_std is persevered but rewritten to update links to issues and PRs
Fixes denoland/deno_std#603
Diffstat (limited to 'std/fs/eol.ts')
| m--------- | std | 0 | ||||
| -rw-r--r-- | std/fs/eol.ts | 31 |
2 files changed, 31 insertions, 0 deletions
diff --git a/std b/std deleted file mode 160000 -Subproject 43aafbf33285753e7b42230f0eb7969b300f71c diff --git a/std/fs/eol.ts b/std/fs/eol.ts new file mode 100644 index 000000000..55d03fa83 --- /dev/null +++ b/std/fs/eol.ts @@ -0,0 +1,31 @@ +// 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); +} |
