Comments (6)
import { TextLineStream } from '@std/streams' for await ( const line of (await Deno.open('./deno.json')) .readable .pipeThrough(new TextEncoderStream()) .pipeThrough(new TextLineStream()) ) console.log(line)
The above example is correct, but it looks a bit cluttered for such typical simple task, compared to other languages/runtimes.
Reading lines from a file is much simpler in other languages.
python
file = open('README.md', 'r')
for line in file.readlines():
print(line)
perl
open(INFO, "README.md") or die();
foreach $line (<INFO>) {
print $line;
}
I think it would be useful to have special/ergonomic wrapper for such typical task
from deno_std.
I agree with the comment by @iuioiua βΒ this seems convenient, but also somewhat trivial.
If it is decided to be added, I think that the return type should be ReadableStream<string>
to provide more convenience value: it already implements AsyncIterable<string>
and can also be piped, etc.
from deno_std.
Does this not already exist via TextLineStream
?
import { TextLineStream } from '@std/streams'
for await (
const line of (await Deno.open('./deno.json'))
.readable
.pipeThrough(new TextEncoderStream())
.pipeThrough(new TextLineStream())
)
console.log(line)
from deno_std.
I'm impartial to adding this. The above code snippet using TextLineStream()
seems to suffice.
from deno_std.
If something like this is to be added, I think a toLines(stream)
to align with toText
and toJSON
would be best. Although on the other hand somebody might assume it would return an iterable of strings instead of an async iterable of strings.
from deno_std.
toLines
sounds good to me
from deno_std.
Related Issues (20)
- test(http): http test cases should pass when it's executed from `./http` directory
- suggestion: remove `getAvailablePort()` from `@std/net` HOT 2
- Check the usage of TextDecoder
- Rename the repository to `std` HOT 1
- question(collections): `intersect()` function name differ from Set method name HOT 1
- docs: more thoroughly document `expect.toThrow()` behavior HOT 2
- feat request: add a pluralize word function HOT 4
- feat request: expose publicly `capitalizeWord` (or similar) HOT 9
- http/file-server, media_types: new addition `application/mp4` to mime db overrides `video/mp4` and breaks some net players HOT 7
- isGlob and globToRegExp do not support windows paths HOT 4
- feat req: add enums for WebSocket status HOT 1
- feat req (html): add a validator for custom name elements ? HOT 4
- to-do: add doc check for JSDoc tags that aren't needed
- to-do(yaml): document different YAML schemas
- proposal: remove `examplePath` option from `@std/dotenv/load`
- proposal: remove `defaultPath` from `@std/dotenv/load`
- Performance: `levenshteinDistance` becomes extremely slow for large edit distances HOT 5
- The windows logic in std/path breaks in DNT HOT 2
- tracking: support iterables in `@std/collections` APIs
- to-do: review custom error classes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from deno_std.