https://github.com/system233/node-archive-stream
https://github.com/system233/node-archive-stream
Last synced: 18 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/system233/node-archive-stream
- Owner: System233
- License: mit
- Created: 2024-09-24T16:13:39.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-09-25T08:16:32.000Z (8 months ago)
- Last Synced: 2025-04-23T05:44:18.634Z (about 1 month ago)
- Language: TypeScript
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-archive-stream
Unix ar archives stream for Node.js
## Example
- ReadStream
```ts
export interface IArchiveEntry {
name: string;
mtime: number;
ownerId: number;
groupId: number;
mode: string;
size: number;
content: Buffer;
}
import { createReadStream } from "fs";
import { createArchiveStream } from "../lib";const archiveStream = createArchiveStream();
const rs = createReadStream("test.deb");
rs.pipe(archiveStream);archiveStream.on("data", (x: IArchiveEntry) => console.log(x));
```- WriteStream
```ts
export interface WriteArchiveEntry
extends Omit {
size?: number; //10
content: Buffer | ArrayBufferLike | Readable;
}
import { createWriteStream } from "fs";
import { createUnArchiveStream, WriteArchiveEntry } from "../lib";const unArchiveStream = createUnArchiveStream();
const ws = createWriteStream("test.deb");
unArchiveStream.pipe(ws);unArchiveStream.write({
name: "test.log",
mtime: 0,
ownerId: 0,
groupId: 0,
mode: "644",
content: Buffer.from("test\n"),
} as WriteArchiveEntry);
```- Handle
```ts
import { Archive } from "../lib";
const archive = await Archive.open("tests/example.deb", {
// noEndCheck: true,
});
console.log(archive.entries);
/** @type {ArchiveEntry};*/
const data = archive.entries.find((item) => item.name == "control.tar.zst");
console.log(await archive.read(data!));
```## Reference:
[Ar\_(Unix) - Wikipedia]()
## LICENSE
[MIT LICENSE](./LICENSE)