Sign In

@jsonjoy.com/fs-node

Package Overview
Dependencies
Maintainers
2
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jsonjoy.com/fs-node - npm Package Compare versions

Comparing version
4.67.0
to
4.68.0
+9
-11
lib/Stats.js

@@ -12,3 +12,3 @@ "use strict";

const stats = new Stats();
const { uid, gid, atime, mtime, ctime } = node;
const { uid, gid, atime, mtime, ctime, btime } = node;
const getStatNumber = !bigint ? number => number : number => BigInt(number);

@@ -25,17 +25,15 @@ // Copy all values on Stats from Node, so that if Node values

stats.blocks = getStatNumber(1);
stats.atime = atime;
stats.mtime = mtime;
stats.ctime = ctime;
stats.birthtime = ctime;
stats.atime = new Date(atime.getTime());
stats.mtime = new Date(mtime.getTime());
stats.ctime = new Date(ctime.getTime());
stats.birthtime = new Date(btime.getTime());
stats.atimeMs = getStatNumber(atime.getTime());
stats.mtimeMs = getStatNumber(mtime.getTime());
const ctimeMs = getStatNumber(ctime.getTime());
stats.ctimeMs = ctimeMs;
stats.birthtimeMs = ctimeMs;
stats.ctimeMs = getStatNumber(ctime.getTime());
stats.birthtimeMs = getStatNumber(btime.getTime());
if (bigint) {
stats.atimeNs = BigInt(atime.getTime()) * BigInt(1000000);
stats.mtimeNs = BigInt(mtime.getTime()) * BigInt(1000000);
const ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000);
stats.ctimeNs = ctimeNs;
stats.birthtimeNs = ctimeNs;
stats.ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000);
stats.birthtimeNs = BigInt(btime.getTime()) * BigInt(1000000);
}

@@ -42,0 +40,0 @@ stats.dev = getStatNumber(0);

@@ -1,1 +0,1 @@

{"version":3,"file":"Stats.js","sourceRoot":"","sources":["../src/Stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node } from '@jsonjoy.com/fs-core';\nimport { constants } from '@jsonjoy.com/fs-node-utils';\n\nconst { S_IFMT, S_IFDIR, S_IFREG, S_IFBLK, S_IFCHR, S_IFLNK, S_IFIFO, S_IFSOCK } = constants;\n\nexport type TStatNumber = number | bigint;\n\n/**\n * Statistics about a file/directory, like `fs.Stats`.\n */\nexport class Stats<T = TStatNumber> {\n static build(node: Node, bigint: false): Stats<number>;\n static build(node: Node, bigint: true): Stats<bigint>;\n static build(node: Node, bigint?: boolean): Stats<TStatNumber>;\n static build(node: Node, bigint: boolean = false): Stats<TStatNumber> {\n const stats = new Stats<TStatNumber>();\n const { uid, gid, atime, mtime, ctime } = node;\n\n const getStatNumber = !bigint ? number => number : number => BigInt(number);\n\n // Copy all values on Stats from Node, so that if Node values\n // change, values on Stats would still be the old ones,\n // just like in Node fs.\n\n stats.uid = getStatNumber(uid);\n stats.gid = getStatNumber(gid);\n\n stats.rdev = getStatNumber(node.rdev);\n stats.blksize = getStatNumber(4096);\n stats.ino = getStatNumber(node.ino);\n stats.size = getStatNumber(node.getSize());\n stats.blocks = getStatNumber(1);\n\n stats.atime = atime;\n stats.mtime = mtime;\n stats.ctime = ctime;\n stats.birthtime = ctime;\n\n stats.atimeMs = getStatNumber(atime.getTime());\n stats.mtimeMs = getStatNumber(mtime.getTime());\n const ctimeMs = getStatNumber(ctime.getTime());\n stats.ctimeMs = ctimeMs;\n stats.birthtimeMs = ctimeMs;\n\n if (bigint) {\n stats.atimeNs = BigInt(atime.getTime()) * BigInt(1000000);\n stats.mtimeNs = BigInt(mtime.getTime()) * BigInt(1000000);\n const ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000);\n stats.ctimeNs = ctimeNs;\n stats.birthtimeNs = ctimeNs;\n }\n\n stats.dev = getStatNumber(0);\n stats.mode = getStatNumber(node.mode);\n stats.nlink = getStatNumber(node.nlink);\n\n return stats;\n }\n\n uid: T;\n gid: T;\n\n rdev: T;\n blksize: T;\n ino: T;\n size: T;\n blocks: T;\n\n atime: Date;\n mtime: Date;\n ctime: Date;\n birthtime: Date;\n\n atimeMs: T;\n mtimeMs: T;\n ctimeMs: T;\n birthtimeMs: T;\n\n // additional properties that exist when bigint is true\n atimeNs: T extends bigint ? T : undefined;\n mtimeNs: T extends bigint ? T : undefined;\n ctimeNs: T extends bigint ? T : undefined;\n birthtimeNs: T extends bigint ? T : undefined;\n\n dev: T;\n mode: T;\n nlink: T;\n\n private _checkModeProperty(property: number): boolean {\n return (Number(this.mode) & S_IFMT) === property;\n }\n\n isDirectory(): boolean {\n return this._checkModeProperty(S_IFDIR);\n }\n\n isFile(): boolean {\n return this._checkModeProperty(S_IFREG);\n }\n\n isBlockDevice(): boolean {\n return this._checkModeProperty(S_IFBLK);\n }\n\n isCharacterDevice(): boolean {\n return this._checkModeProperty(S_IFCHR);\n }\n\n isSymbolicLink(): boolean {\n return this._checkModeProperty(S_IFLNK);\n }\n\n isFIFO(): boolean {\n return this._checkModeProperty(S_IFIFO);\n }\n\n isSocket(): boolean {\n return this._checkModeProperty(S_IFSOCK);\n }\n}\n\nexport default Stats;\n"]}
{"version":3,"file":"Stats.js","sourceRoot":"","sources":["../src/Stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node } from '@jsonjoy.com/fs-core';\nimport { constants } from '@jsonjoy.com/fs-node-utils';\n\nconst { S_IFMT, S_IFDIR, S_IFREG, S_IFBLK, S_IFCHR, S_IFLNK, S_IFIFO, S_IFSOCK } = constants;\n\nexport type TStatNumber = number | bigint;\n\n/**\n * Statistics about a file/directory, like `fs.Stats`.\n */\nexport class Stats<T = TStatNumber> {\n static build(node: Node, bigint: false): Stats<number>;\n static build(node: Node, bigint: true): Stats<bigint>;\n static build(node: Node, bigint?: boolean): Stats<TStatNumber>;\n static build(node: Node, bigint: boolean = false): Stats<TStatNumber> {\n const stats = new Stats<TStatNumber>();\n const { uid, gid, atime, mtime, ctime, btime } = node;\n\n const getStatNumber = !bigint ? number => number : number => BigInt(number);\n\n // Copy all values on Stats from Node, so that if Node values\n // change, values on Stats would still be the old ones,\n // just like in Node fs.\n\n stats.uid = getStatNumber(uid);\n stats.gid = getStatNumber(gid);\n\n stats.rdev = getStatNumber(node.rdev);\n stats.blksize = getStatNumber(4096);\n stats.ino = getStatNumber(node.ino);\n stats.size = getStatNumber(node.getSize());\n stats.blocks = getStatNumber(1);\n\n stats.atime = new Date(atime.getTime());\n stats.mtime = new Date(mtime.getTime());\n stats.ctime = new Date(ctime.getTime());\n stats.birthtime = new Date(btime.getTime());\n\n stats.atimeMs = getStatNumber(atime.getTime());\n stats.mtimeMs = getStatNumber(mtime.getTime());\n stats.ctimeMs = getStatNumber(ctime.getTime());\n stats.birthtimeMs = getStatNumber(btime.getTime());\n\n if (bigint) {\n stats.atimeNs = BigInt(atime.getTime()) * BigInt(1000000);\n stats.mtimeNs = BigInt(mtime.getTime()) * BigInt(1000000);\n stats.ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000);\n stats.birthtimeNs = BigInt(btime.getTime()) * BigInt(1000000);\n }\n\n stats.dev = getStatNumber(0);\n stats.mode = getStatNumber(node.mode);\n stats.nlink = getStatNumber(node.nlink);\n\n return stats;\n }\n\n uid: T;\n gid: T;\n\n rdev: T;\n blksize: T;\n ino: T;\n size: T;\n blocks: T;\n\n atime: Date;\n mtime: Date;\n ctime: Date;\n birthtime: Date;\n\n atimeMs: T;\n mtimeMs: T;\n ctimeMs: T;\n birthtimeMs: T;\n\n // additional properties that exist when bigint is true\n atimeNs: T extends bigint ? T : undefined;\n mtimeNs: T extends bigint ? T : undefined;\n ctimeNs: T extends bigint ? T : undefined;\n birthtimeNs: T extends bigint ? T : undefined;\n\n dev: T;\n mode: T;\n nlink: T;\n\n private _checkModeProperty(property: number): boolean {\n return (Number(this.mode) & S_IFMT) === property;\n }\n\n isDirectory(): boolean {\n return this._checkModeProperty(S_IFDIR);\n }\n\n isFile(): boolean {\n return this._checkModeProperty(S_IFREG);\n }\n\n isBlockDevice(): boolean {\n return this._checkModeProperty(S_IFBLK);\n }\n\n isCharacterDevice(): boolean {\n return this._checkModeProperty(S_IFCHR);\n }\n\n isSymbolicLink(): boolean {\n return this._checkModeProperty(S_IFLNK);\n }\n\n isFIFO(): boolean {\n return this._checkModeProperty(S_IFIFO);\n }\n\n isSocket(): boolean {\n return this._checkModeProperty(S_IFSOCK);\n }\n}\n\nexport default Stats;\n"]}

@@ -6,3 +6,3 @@ {

},
"version": "4.67.0",
"version": "4.68.0",
"description": "In-memory filesystem with Node.js fs-compatible API",

@@ -82,7 +82,7 @@ "author": {

"dependencies": {
"@jsonjoy.com/fs-core": "4.67.0",
"@jsonjoy.com/fs-node-builtins": "4.67.0",
"@jsonjoy.com/fs-node-utils": "4.67.0",
"@jsonjoy.com/fs-print": "4.67.0",
"@jsonjoy.com/fs-snapshot": "4.67.0",
"@jsonjoy.com/fs-core": "4.68.0",
"@jsonjoy.com/fs-node-builtins": "4.68.0",
"@jsonjoy.com/fs-node-utils": "4.68.0",
"@jsonjoy.com/fs-print": "4.68.0",
"@jsonjoy.com/fs-snapshot": "4.68.0",
"glob-to-regex.js": "^1.0.0",

@@ -89,0 +89,0 @@ "thingies": "^2.5.0"