Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
65e8e64079 | ||
|
|
579c4bf131 | ||
|
|
1cc6906cc9 | ||
|
|
4884247282 |
Generated
+19
-14
@@ -1,36 +1,41 @@
|
||||
{
|
||||
"name": "node-file-system-adapter",
|
||||
"name": "@sugoidogo/node-file-system-adapter",
|
||||
"version": "0.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "node-file-system-adapter",
|
||||
"name": "@sugoidogo/node-file-system-adapter",
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"mime": "^4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^25.0.3",
|
||||
"@types/web": "^0.0.310",
|
||||
"@sugoidogo/importable-types-web": "^1.0.0",
|
||||
"@types/node": "^25.0.9",
|
||||
"typescript": "^5.9.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@sugoidogo/importable-types-web": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://gitea.sugoidogo.com/api/packages/sugoidogo/npm/%40sugoidogo%2Fimportable-types-web/-/1.0.0/importable-types-web-1.0.0.tgz",
|
||||
"integrity": "sha512-MqWkQ/WsllO7GiQjqWiFB3ZzsDwJwGPXIWkyd0E24d3CMcI0FKGgsOn6G/RVjCO9k2d/aRlzxqVmyuPAYOZ8tQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"undici-types": "^7.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "25.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz",
|
||||
"integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==",
|
||||
"version": "25.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz",
|
||||
"integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~7.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/web": {
|
||||
"version": "0.0.310",
|
||||
"resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.310.tgz",
|
||||
"integrity": "sha512-XN++V7UZGEeRg8MXJBkzMqmcAWoCRN1UV/zpQxg9YnJQ9pIPSuzEG7oidC+nXi/J8pmfb3UgFv+TjEDzMiNnRg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/mime": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz",
|
||||
|
||||
+3
-2
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"name": "@sugoidogo/node-file-system-adapter",
|
||||
"version": "0.0.0",
|
||||
"main": "dist/NodeFileSystemDirectoryHandle.js",
|
||||
"files": [
|
||||
"dist",
|
||||
@@ -15,8 +16,8 @@
|
||||
"mime": "^4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^25.0.3",
|
||||
"@types/web": "^0.0.310",
|
||||
"@sugoidogo/importable-types-web": "^1.0.0",
|
||||
"@types/node": "^25.0.9",
|
||||
"typescript": "^5.9.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
import * as fs from 'node:fs';
|
||||
import * as asyncfs from 'node:fs/promises';
|
||||
import * as path from 'node:path';
|
||||
import NodeFileSystemHandle from './NodeFileSystemHandle.js';
|
||||
import NodeFileSystemFileHandle from './NodeFileSystemFileHandle.js';
|
||||
import NodeFileSystemHandle from './NodeFileSystemHandle.ts';
|
||||
import NodeFileSystemFileHandle from './NodeFileSystemFileHandle.ts';
|
||||
import type {
|
||||
FileSystemDirectoryHandle,
|
||||
FileSystemGetDirectoryOptions,
|
||||
FileSystemDirectoryHandleAsyncIterator,
|
||||
FileSystemGetFileOptions,
|
||||
FileSystemRemoveOptions,
|
||||
FileSystemHandle
|
||||
} from '@sugoidogo/importable-types-web'
|
||||
|
||||
export default class NodeFileSystemDirectoryHandle extends NodeFileSystemHandle implements FileSystemDirectoryHandle {
|
||||
declare kind: "directory";
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
import * as fs from 'node:fs';
|
||||
import * as asyncfs from 'node:fs/promises';
|
||||
import * as path from 'node:path';
|
||||
import NodeFileSystemHandle from './NodeFileSystemHandle.js';
|
||||
import NodeFileSystemWritableFileStream from './NodeFileSystemWriteableFileStream.js';
|
||||
import NodeFileSystemHandle from './NodeFileSystemHandle.ts';
|
||||
import NodeFileSystemWritableFileStream from './NodeFileSystemWriteableFileStream.ts';
|
||||
import mime from 'mime'
|
||||
import type {
|
||||
FileSystemFileHandle,
|
||||
FileSystemGetFileOptions,
|
||||
FileSystemCreateWritableOptions,
|
||||
FileSystemWritableFileStream,
|
||||
File as WebFile
|
||||
} from '@sugoidogo/importable-types-web'
|
||||
|
||||
export default class NodeFileSystemFileHandle extends NodeFileSystemHandle implements FileSystemFileHandle {
|
||||
declare kind: "file";
|
||||
@@ -17,13 +24,10 @@ export default class NodeFileSystemFileHandle extends NodeFileSystemHandle imple
|
||||
async createWritable(options: FileSystemCreateWritableOptions = {}): Promise<FileSystemWritableFileStream> {
|
||||
return new NodeFileSystemWritableFileStream(this.path,options)
|
||||
}
|
||||
async getFile(): Promise<File> {
|
||||
async getFile(): Promise<WebFile> {
|
||||
const stats = await asyncfs.stat(this.path)
|
||||
const type = mime.getType(this.name.split('.').pop())
|
||||
return asyncfs.readFile(this.path).then(buffer => Object.assign(new Blob([buffer],{type}), {
|
||||
lastModified: stats.mtimeMs,
|
||||
name: this.path,
|
||||
webkitRelativePath: this.path
|
||||
}))
|
||||
const buffer = await asyncfs.readFile(this.path)
|
||||
return new File([buffer], this.path, { "lastModified": stats.mtimeMs, "type": type }) as any //TODO Node File and Web File have some incompatibilities
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,8 @@
|
||||
import * as path from 'node:path'
|
||||
import type {
|
||||
FileSystemHandle,
|
||||
FileSystemHandleKind
|
||||
} from '@sugoidogo/importable-types-web'
|
||||
|
||||
export default class NodeFileSystemHandle implements FileSystemHandle {
|
||||
kind: FileSystemHandleKind;
|
||||
|
||||
@@ -2,6 +2,12 @@ import * as fs from 'node:fs'
|
||||
import * as asyncfs from 'node:fs/promises'
|
||||
import * as path from 'node:path'
|
||||
import { Writable } from 'node:stream'
|
||||
import type {
|
||||
FileSystemWritableFileStream,
|
||||
FileSystemCreateWritableOptions,
|
||||
FileSystemWriteChunkType,
|
||||
WriteParams
|
||||
} from '@sugoidogo/importable-types-web'
|
||||
|
||||
export default class NodeFileSystemWritableFileStream extends WritableStream implements FileSystemWritableFileStream {
|
||||
#seek_position = 0
|
||||
|
||||
+2
-1
@@ -7,7 +7,8 @@
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"outDir": "dist"
|
||||
"outDir": "dist",
|
||||
"rewriteRelativeImportExtensions": true
|
||||
},
|
||||
"include": ["src"]
|
||||
}
|
||||
Reference in New Issue
Block a user