@hugoalh/adler32 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/README.md +5 -3
- package/cli.js +71 -13
- package/deps/jsr.io/@std/cli/{1.0.6 → 1.0.9}/parse_args.d.ts +11 -7
- package/deps/jsr.io/@std/cli/{1.0.6 → 1.0.9}/parse_args.d.ts.map +1 -1
- package/mod.d.ts +26 -21
- package/mod.d.ts.map +1 -1
- package/mod.js +51 -32
- package/package.json +3 -2
- /package/deps/jsr.io/@std/cli/{1.0.6 → 1.0.9}/parse_args.js +0 -0
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MIT License
|
|
2
2
|
|
|
3
|
-
Copyright © 2024 hugoalh
|
|
3
|
+
Copyright © 2024\~2025 hugoalh
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
6
|
|
package/README.md
CHANGED
|
@@ -58,20 +58,22 @@ An ES (JavaScript & TypeScript) CLI and module to get the checksum of the data w
|
|
|
58
58
|
- ```ts
|
|
59
59
|
class Adler32 {
|
|
60
60
|
constructor(data?: Adler32AcceptDataType);
|
|
61
|
+
get freezed(): boolean;
|
|
62
|
+
freeze(): this;
|
|
61
63
|
hash(): bigint;
|
|
62
64
|
hashBase16(): string;
|
|
63
65
|
hashBase32Hex(): string;
|
|
64
66
|
hashBase36(): string;
|
|
67
|
+
hashBigInt(): bigint;
|
|
65
68
|
hashHex(): string;
|
|
66
69
|
hashHexPadding(): string;
|
|
67
70
|
hashNumber(): number;
|
|
68
71
|
update(data: Adler32AcceptDataType): this;
|
|
69
|
-
static
|
|
70
|
-
static fromFileSync(filePath: string | URL): Adler32;
|
|
72
|
+
static fromStream(stream: ReadableStream<Adler32AcceptDataType>): Promise<Adler32>;
|
|
71
73
|
}
|
|
72
74
|
```
|
|
73
75
|
- ```ts
|
|
74
|
-
type Adler32AcceptDataType = string |
|
|
76
|
+
type Adler32AcceptDataType = string | BigUint64Array | Uint8Array | Uint16Array | Uint32Array;
|
|
75
77
|
```
|
|
76
78
|
|
|
77
79
|
> [!NOTE]
|
package/cli.js
CHANGED
|
@@ -1,7 +1,59 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import "./_dnt.polyfills.js";
|
|
3
3
|
import * as dntShim from "./_dnt.shims.js";
|
|
4
|
-
|
|
4
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
5
|
+
if (value !== null && value !== void 0) {
|
|
6
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
7
|
+
var dispose, inner;
|
|
8
|
+
if (async) {
|
|
9
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
10
|
+
dispose = value[Symbol.asyncDispose];
|
|
11
|
+
}
|
|
12
|
+
if (dispose === void 0) {
|
|
13
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
14
|
+
dispose = value[Symbol.dispose];
|
|
15
|
+
if (async) inner = dispose;
|
|
16
|
+
}
|
|
17
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
18
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
19
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
20
|
+
}
|
|
21
|
+
else if (async) {
|
|
22
|
+
env.stack.push({ async: true });
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
};
|
|
26
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
27
|
+
return function (env) {
|
|
28
|
+
function fail(e) {
|
|
29
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
30
|
+
env.hasError = true;
|
|
31
|
+
}
|
|
32
|
+
var r, s = 0;
|
|
33
|
+
function next() {
|
|
34
|
+
while (r = env.stack.pop()) {
|
|
35
|
+
try {
|
|
36
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
37
|
+
if (r.dispose) {
|
|
38
|
+
var result = r.dispose.call(r.value);
|
|
39
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
40
|
+
}
|
|
41
|
+
else s |= 1;
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
fail(e);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
48
|
+
if (env.hasError) throw env.error;
|
|
49
|
+
}
|
|
50
|
+
return next();
|
|
51
|
+
};
|
|
52
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
53
|
+
var e = new Error(message);
|
|
54
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
55
|
+
});
|
|
56
|
+
import { parseArgs } from "./deps/jsr.io/@std/cli/1.0.9/parse_args.js";
|
|
5
57
|
import { Adler32 } from "./mod.js";
|
|
6
58
|
if (!(import.meta.url === ("file:///" + process.argv[1].replace(/\\/g, "/")).replace(/\/{3,}/, "///"))) {
|
|
7
59
|
throw new Error(`This script is for command line usage only!`);
|
|
@@ -21,26 +73,32 @@ if (fromFile && fromStdin) {
|
|
|
21
73
|
throw new SyntaxError(`Unable to use the sources of file and stdin together!`);
|
|
22
74
|
}
|
|
23
75
|
if (fromFile) {
|
|
24
|
-
|
|
25
|
-
|
|
76
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
77
|
+
try {
|
|
78
|
+
if (argsValues.length === 0) {
|
|
79
|
+
throw new SyntaxError(`File path is not defined!`);
|
|
80
|
+
}
|
|
81
|
+
if (argsValues.length !== 1) {
|
|
82
|
+
throw new SyntaxError(`Too many arguments! Expect: 1; Current: ${argsValues.length}.`);
|
|
83
|
+
}
|
|
84
|
+
const file = __addDisposableResource(env_1, await dntShim.Deno.open(argsValues[0]), false);
|
|
85
|
+
console.log((await Adler32.fromStream(file.readable)).hashHexPadding());
|
|
26
86
|
}
|
|
27
|
-
|
|
28
|
-
|
|
87
|
+
catch (e_1) {
|
|
88
|
+
env_1.error = e_1;
|
|
89
|
+
env_1.hasError = true;
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
__disposeResources(env_1);
|
|
29
93
|
}
|
|
30
|
-
console.log((await Adler32.fromFile(argsValues[0])).hashHexPadding());
|
|
31
94
|
}
|
|
32
95
|
else if (fromStdin) {
|
|
33
96
|
if (argsValues.length !== 0) {
|
|
34
97
|
throw new SyntaxError(`Too many arguments! Expect: 0; Current: ${argsValues.length}.`);
|
|
35
98
|
}
|
|
36
|
-
const stdinReader = dntShim.Deno.stdin.readable.getReader();
|
|
37
99
|
let data = Uint8Array.from([]);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (done) {
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
data = Uint8Array.from([...data, ...value]);
|
|
100
|
+
for await (const chunk of dntShim.Deno.stdin.readable) {
|
|
101
|
+
data = Uint8Array.from([...data, ...chunk]);
|
|
44
102
|
}
|
|
45
103
|
console.log(new Adler32(new TextDecoder().decode(data).replace(/\r?\n$/, "")).hashHexPadding());
|
|
46
104
|
}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Command line arguments parser based on
|
|
3
3
|
* {@link https://github.com/minimistjs/minimist | minimist}.
|
|
4
4
|
*
|
|
5
|
-
* @example
|
|
5
|
+
* @example Usage
|
|
6
6
|
* ```ts
|
|
7
7
|
* import { parseArgs } from "@std/cli/parse-args";
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* const args = parseArgs(Deno.args);
|
|
10
10
|
* ```
|
|
11
11
|
*
|
|
12
12
|
* @module
|
|
@@ -102,14 +102,18 @@ export interface ParseOptions<TBooleans extends BooleanType = BooleanType, TStri
|
|
|
102
102
|
*
|
|
103
103
|
* @default {false}
|
|
104
104
|
*
|
|
105
|
-
*
|
|
105
|
+
* @example Double dash option is false
|
|
106
|
+
* ```ts
|
|
107
|
+
* // $ deno run example.ts -- a arg1
|
|
108
|
+
* import { parseArgs } from "@std/cli/parse-args";
|
|
109
|
+
* const args = parseArgs(Deno.args, { "--": false }); // args equals { _: [ "a", "arg1" ] }
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @example Double dash option is true
|
|
106
113
|
* ```ts
|
|
107
114
|
* // $ deno run example.ts -- a arg1
|
|
108
115
|
* import { parseArgs } from "@std/cli/parse-args";
|
|
109
|
-
*
|
|
110
|
-
* // output: { _: [ "a", "arg1" ] }
|
|
111
|
-
* console.dir(parseArgs(Deno.args, { "--": true }));
|
|
112
|
-
* // output: { _: [], --: [ "a", "arg1" ] }
|
|
116
|
+
* const args = parseArgs(Deno.args, { "--": true }); // args equals { _: [], --: [ "a", "arg1" ] }
|
|
113
117
|
* ```
|
|
114
118
|
*/
|
|
115
119
|
"--"?: TDoubleDash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse_args.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.
|
|
1
|
+
{"version":3,"file":"parse_args.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.9/parse_args.ts"],"names":[],"mappings":"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"}
|
package/mod.d.ts
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import "./_dnt.polyfills.js";
|
|
2
|
-
export type Adler32AcceptDataType = string |
|
|
2
|
+
export type Adler32AcceptDataType = string | BigUint64Array | Uint8Array | Uint16Array | Uint32Array;
|
|
3
3
|
/**
|
|
4
4
|
* Get the checksum of the data with algorithm Adler32.
|
|
5
5
|
*/
|
|
6
6
|
export declare class Adler32 {
|
|
7
7
|
#private;
|
|
8
|
+
get [Symbol.toStringTag](): string;
|
|
8
9
|
/**
|
|
9
10
|
* Initialize.
|
|
10
11
|
* @param {Adler32AcceptDataType} [data] Data. Can append later via the method {@linkcode Adler32.update}.
|
|
11
12
|
*/
|
|
12
13
|
constructor(data?: Adler32AcceptDataType);
|
|
13
14
|
/**
|
|
14
|
-
*
|
|
15
|
+
* Whether the instance is freezed.
|
|
16
|
+
* @returns {boolean}
|
|
17
|
+
*/
|
|
18
|
+
get freezed(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Freeze the instance to prevent any update.
|
|
21
|
+
* @returns {this}
|
|
22
|
+
*/
|
|
23
|
+
freeze(): this;
|
|
24
|
+
/**
|
|
25
|
+
* Get the checksum of the data, in original format.
|
|
15
26
|
* @returns {bigint}
|
|
16
27
|
*/
|
|
17
28
|
hash(): bigint;
|
|
@@ -30,6 +41,16 @@ export declare class Adler32 {
|
|
|
30
41
|
* @returns {string}
|
|
31
42
|
*/
|
|
32
43
|
hashBase36(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Get the checksum of the data, in big integer.
|
|
46
|
+
* @returns {bigint}
|
|
47
|
+
*/
|
|
48
|
+
hashBigInt(): bigint;
|
|
49
|
+
/**
|
|
50
|
+
* Get the checksum of the data, in big integer.
|
|
51
|
+
* @returns {bigint}
|
|
52
|
+
*/
|
|
53
|
+
hashBigInteger: () => bigint;
|
|
33
54
|
/**
|
|
34
55
|
* Get the checksum of the data, in hex/hexadecimal without padding.
|
|
35
56
|
* @returns {string}
|
|
@@ -52,27 +73,11 @@ export declare class Adler32 {
|
|
|
52
73
|
*/
|
|
53
74
|
update(data: Adler32AcceptDataType): this;
|
|
54
75
|
/**
|
|
55
|
-
* Initialize from
|
|
56
|
-
*
|
|
57
|
-
* > **🛡️ Runtime Permissions**
|
|
58
|
-
* >
|
|
59
|
-
* > - File System - Read \[Deno: `read`; NodeJS (>= v20.9.0) 🧪: `fs-read`\]
|
|
60
|
-
* > - *Resources*
|
|
61
|
-
* @param {string | URL} filePath Path of the file.
|
|
76
|
+
* Initialize from the readable stream, asynchronously.
|
|
77
|
+
* @param {ReadableStream<Adler32AcceptDataType>} stream Readable stream.
|
|
62
78
|
* @returns {Promise<Adler32>}
|
|
63
79
|
*/
|
|
64
|
-
static
|
|
65
|
-
/**
|
|
66
|
-
* Initialize from file, synchronously.
|
|
67
|
-
*
|
|
68
|
-
* > **🛡️ Runtime Permissions**
|
|
69
|
-
* >
|
|
70
|
-
* > - File System - Read \[Deno: `read`; NodeJS (>= v20.9.0) 🧪: `fs-read`\]
|
|
71
|
-
* > - *Resources*
|
|
72
|
-
* @param {string | URL} filePath Path of the file.
|
|
73
|
-
* @returns {Adler32}
|
|
74
|
-
*/
|
|
75
|
-
static fromFileSync(filePath: string | URL): Adler32;
|
|
80
|
+
static fromStream(stream: ReadableStream<Adler32AcceptDataType>): Promise<Adler32>;
|
|
76
81
|
}
|
|
77
82
|
export default Adler32;
|
|
78
83
|
//# sourceMappingURL=mod.d.ts.map
|
package/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AACrG;;GAEG;AACH,qBAAa,OAAO;;IACnB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAKD;;;OAGG;gBACS,IAAI,CAAC,EAAE,qBAAqB;IAKxC;;;OAGG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IACD;;;OAGG;IACH,MAAM,IAAI,IAAI;IAId;;;OAGG;IACH,IAAI,IAAI,MAAM;IAMd;;;OAGG;IACH,UAAU,IAAI,MAAM;IAGpB;;;OAGG;IACH,aAAa,IAAI,MAAM;IAGvB;;;OAGG;IACH,UAAU,IAAI,MAAM;IAGpB;;;OAGG;IACH,UAAU,IAAI,MAAM;IAGpB;;;OAGG;IACH,cAAc,EAAE,MAAM,MAAM,CAAmB;IAC/C;;;OAGG;IACH,OAAO,IAAI,MAAM;IAGjB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAGxB;;;OAGG;IACH,UAAU,IAAI,MAAM;IAGpB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAWzC;;;;OAIG;WACU,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAOxF;AACD,eAAe,OAAO,CAAC"}
|
package/mod.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import "./_dnt.polyfills.js";
|
|
2
|
-
import * as dntShim from "./_dnt.shims.js";
|
|
3
2
|
/**
|
|
4
3
|
* Get the checksum of the data with algorithm Adler32.
|
|
5
4
|
*/
|
|
6
5
|
export class Adler32 {
|
|
6
|
+
get [Symbol.toStringTag]() {
|
|
7
|
+
return "Adler32";
|
|
8
|
+
}
|
|
9
|
+
#freezed = false;
|
|
10
|
+
#hash = null;
|
|
7
11
|
#a = 1n;
|
|
8
12
|
#b = 0n;
|
|
9
|
-
#hash = null;
|
|
10
13
|
/**
|
|
11
14
|
* Initialize.
|
|
12
15
|
* @param {Adler32AcceptDataType} [data] Data. Can append later via the method {@linkcode Adler32.update}.
|
|
@@ -17,12 +20,27 @@ export class Adler32 {
|
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
|
-
*
|
|
23
|
+
* Whether the instance is freezed.
|
|
24
|
+
* @returns {boolean}
|
|
25
|
+
*/
|
|
26
|
+
get freezed() {
|
|
27
|
+
return this.#freezed;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Freeze the instance to prevent any update.
|
|
31
|
+
* @returns {this}
|
|
32
|
+
*/
|
|
33
|
+
freeze() {
|
|
34
|
+
this.#freezed = true;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the checksum of the data, in original format.
|
|
21
39
|
* @returns {bigint}
|
|
22
40
|
*/
|
|
23
41
|
hash() {
|
|
24
42
|
if (this.#hash === null) {
|
|
25
|
-
this.#hash =
|
|
43
|
+
this.#hash = this.#b * 65536n + this.#a;
|
|
26
44
|
}
|
|
27
45
|
return this.#hash;
|
|
28
46
|
}
|
|
@@ -31,22 +49,34 @@ export class Adler32 {
|
|
|
31
49
|
* @returns {string}
|
|
32
50
|
*/
|
|
33
51
|
hashBase16() {
|
|
34
|
-
return this.
|
|
52
|
+
return this.hashBigInt().toString(16).toUpperCase();
|
|
35
53
|
}
|
|
36
54
|
/**
|
|
37
55
|
* Get the checksum of the data, in Base32Hex ({@link https://datatracker.ietf.org/doc/html/rfc4648#section-7 RFC 4648 §7}).
|
|
38
56
|
* @returns {string}
|
|
39
57
|
*/
|
|
40
58
|
hashBase32Hex() {
|
|
41
|
-
return this.
|
|
59
|
+
return this.hashBigInt().toString(32).toUpperCase();
|
|
42
60
|
}
|
|
43
61
|
/**
|
|
44
62
|
* Get the checksum of the data, in Base36.
|
|
45
63
|
* @returns {string}
|
|
46
64
|
*/
|
|
47
65
|
hashBase36() {
|
|
48
|
-
return this.
|
|
66
|
+
return this.hashBigInt().toString(36).toUpperCase();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the checksum of the data, in big integer.
|
|
70
|
+
* @returns {bigint}
|
|
71
|
+
*/
|
|
72
|
+
hashBigInt() {
|
|
73
|
+
return this.hash();
|
|
49
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Get the checksum of the data, in big integer.
|
|
77
|
+
* @returns {bigint}
|
|
78
|
+
*/
|
|
79
|
+
hashBigInteger = this.hashBigInt;
|
|
50
80
|
/**
|
|
51
81
|
* Get the checksum of the data, in hex/hexadecimal without padding.
|
|
52
82
|
* @returns {string}
|
|
@@ -74,38 +104,27 @@ export class Adler32 {
|
|
|
74
104
|
* @returns {this}
|
|
75
105
|
*/
|
|
76
106
|
update(data) {
|
|
107
|
+
if (this.#freezed) {
|
|
108
|
+
throw new Error(`Instance is freezed!`);
|
|
109
|
+
}
|
|
77
110
|
this.#hash = null;
|
|
78
|
-
for (const byte of
|
|
79
|
-
this.#a
|
|
80
|
-
this.#b
|
|
111
|
+
for (const byte of ((typeof data === "string") ? new TextEncoder().encode(data) : data)) {
|
|
112
|
+
this.#a = (this.#a + BigInt(byte)) % 65521n;
|
|
113
|
+
this.#b = (this.#b + this.#a) % 65521n;
|
|
81
114
|
}
|
|
82
115
|
return this;
|
|
83
116
|
}
|
|
84
117
|
/**
|
|
85
|
-
* Initialize from
|
|
86
|
-
*
|
|
87
|
-
* > **🛡️ Runtime Permissions**
|
|
88
|
-
* >
|
|
89
|
-
* > - File System - Read \[Deno: `read`; NodeJS (>= v20.9.0) 🧪: `fs-read`\]
|
|
90
|
-
* > - *Resources*
|
|
91
|
-
* @param {string | URL} filePath Path of the file.
|
|
118
|
+
* Initialize from the readable stream, asynchronously.
|
|
119
|
+
* @param {ReadableStream<Adler32AcceptDataType>} stream Readable stream.
|
|
92
120
|
* @returns {Promise<Adler32>}
|
|
93
121
|
*/
|
|
94
|
-
static async
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
* > **🛡️ Runtime Permissions**
|
|
101
|
-
* >
|
|
102
|
-
* > - File System - Read \[Deno: `read`; NodeJS (>= v20.9.0) 🧪: `fs-read`\]
|
|
103
|
-
* > - *Resources*
|
|
104
|
-
* @param {string | URL} filePath Path of the file.
|
|
105
|
-
* @returns {Adler32}
|
|
106
|
-
*/
|
|
107
|
-
static fromFileSync(filePath) {
|
|
108
|
-
return new this(dntShim.Deno.readFileSync(filePath));
|
|
122
|
+
static async fromStream(stream) {
|
|
123
|
+
const instance = new this();
|
|
124
|
+
for await (const chunk of stream) {
|
|
125
|
+
instance.update(chunk);
|
|
126
|
+
}
|
|
127
|
+
return instance;
|
|
109
128
|
}
|
|
110
129
|
}
|
|
111
130
|
export default Adler32;
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hugoalh/adler32",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A CLI and module to get the checksum of the data with algorithm Adler32.",
|
|
5
5
|
"keywords": [
|
|
6
|
-
"adler32"
|
|
6
|
+
"adler32",
|
|
7
|
+
"checksum"
|
|
7
8
|
],
|
|
8
9
|
"homepage": "https://github.com/hugoalh/adler32-es#readme",
|
|
9
10
|
"bugs": {
|
|
File without changes
|