fstream

WebJar for fstream

License

License

ISC
Categories

Categories

FST Data Data Formats Serialization
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

fstream
Last Version

Last Version

1.0.12
Release Date

Release Date

Type

Type

jar
Description

Description

fstream
WebJar for fstream
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/npm/fstream

Download fstream

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/fstream/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>fstream</artifactId>
    <version>1.0.12</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/fstream/
implementation 'org.webjars.npm:fstream:1.0.12'
// https://jarcasting.com/artifacts/org.webjars.npm/fstream/
implementation ("org.webjars.npm:fstream:1.0.12")
'org.webjars.npm:fstream:jar:1.0.12'
<dependency org="org.webjars.npm" name="fstream" rev="1.0.12">
  <artifact name="fstream" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='fstream', version='1.0.12')
)
libraryDependencies += "org.webjars.npm" % "fstream" % "1.0.12"
[org.webjars.npm/fstream "1.0.12"]

Dependencies

compile (4)

Group / Artifact Type Version
org.webjars.npm : graceful-fs jar [4.1.2,5)
org.webjars.npm : inherits jar [2.0.0,2.1)
org.webjars.npm : mkdirp jar [0.5,1)
org.webjars.npm : rimraf jar [2,3)

Project Modules

There are no modules declared in this project.

Like FS streams, but with stat on them, and supporting directories and symbolic links, as well as normal files. Also, you can use this to set the stats on a file, even if you don't change its contents, or to create a symlink, etc.

So, for example, you can "write" a directory, and it'll call mkdir. You can specify a uid and gid, and it'll call chown. You can specify a mtime and atime, and it'll call utimes. You can call it a symlink and provide a linkpath and it'll call symlink.

Note that it won't automatically resolve symbolic links. So, if you call fstream.Reader('/some/symlink') then you'll get an object that stats and then ends immediately (since it has no data). To follow symbolic links, do this: fstream.Reader({path:'/some/symlink', follow: true }).

There are various checks to make sure that the bytes emitted are the same as the intended size, if the size is set.

Examples

fstream
  .Writer({ path: "path/to/file"
          , mode: 0755
          , size: 6
          })
  .write("hello\n")
  .end()

This will create the directories if they're missing, and then write hello\n into the file, chmod it to 0755, and assert that 6 bytes have been written when it's done.

fstream
  .Writer({ path: "path/to/file"
          , mode: 0755
          , size: 6
          , flags: "a"
          })
  .write("hello\n")
  .end()

You can pass flags in, if you want to append to a file.

fstream
  .Writer({ path: "path/to/symlink"
          , linkpath: "./file"
          , SymbolicLink: true
          , mode: "0755" // octal strings supported
          })
  .end()

If isSymbolicLink is a function, it'll be called, and if it returns true, then it'll treat it as a symlink. If it's not a function, then any truish value will make a symlink, or you can set type: 'SymbolicLink', which does the same thing.

Note that the linkpath is relative to the symbolic link location, not the parent dir or cwd.

fstream
  .Reader("path/to/dir")
  .pipe(fstream.Writer("path/to/other/dir"))

This will do like cp -Rp path/to/dir path/to/other/dir. If the other dir exists and isn't a directory, then it'll emit an error. It'll also set the uid, gid, mode, etc. to be identical. In this way, it's more like rsync -a than simply a copy.

org.webjars.npm

npm

node package manager

Versions

Version
1.0.12
1.0.11
1.0.10
1.0.8
0.1.31