move library into rfwfs
and rename root.ts to fs.ts, also place it outside of rfwfs
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
import { Permissions } from "../enum"
|
import { Permissions } from "./rfwfs/enum"
|
||||||
|
|
||||||
import rfwfs from "../main"
|
import rfwfs from "./rfwfs/main"
|
||||||
|
|
||||||
const time_now = (Date.now()/1000)|0
|
const time_now = (Date.now()/1000)|0
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
import { ReadStatus } from "../enum"
|
|
||||||
import rfwfs, { type EntryCollection, type Entry } from "../main"
|
|
||||||
|
|
||||||
import fs from "./root"
|
|
||||||
|
|
||||||
let username: string = "user"
|
|
||||||
const libhome = {} as LibHome
|
|
||||||
|
|
||||||
interface WorkingDir<T extends Entry> {
|
|
||||||
entry?: EntryCollection<T>,
|
|
||||||
path: string[]
|
|
||||||
}
|
|
||||||
interface LibHome {
|
|
||||||
path: () => string[],
|
|
||||||
get: <T extends Entry>() => EntryCollection<T>,
|
|
||||||
}
|
|
||||||
|
|
||||||
function traverse_to_goal(path: string[]) {
|
|
||||||
if (working_dir.entry) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
libhome.path = function() {
|
|
||||||
return ["home", username]
|
|
||||||
}
|
|
||||||
|
|
||||||
libhome.get = function() {
|
|
||||||
|
|
||||||
}
|
|
47
src/rt/rfwfs/library.ts
Normal file
47
src/rt/rfwfs/library.ts
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import { ReadStatus } from "./enum"
|
||||||
|
import { wrap_entry, type WrapResultEntry } from "./wrap"
|
||||||
|
|
||||||
|
import rfwfs, { type DirectoryDepth, type Directory } from "./main"
|
||||||
|
import fs from "../fs"
|
||||||
|
|
||||||
|
type Path = string[]
|
||||||
|
|
||||||
|
interface LibHome {
|
||||||
|
goal: (path: Path) => WrapResultEntry<Directory, ReadStatus>
|
||||||
|
path: () => Path,
|
||||||
|
get: () => Directory | undefined,
|
||||||
|
}
|
||||||
|
|
||||||
|
let username: string = "user"
|
||||||
|
|
||||||
|
const libhome = {} as LibHome
|
||||||
|
|
||||||
|
libhome.goal = function(path) {
|
||||||
|
let traverse = fs
|
||||||
|
|
||||||
|
for (const path_name of path) {
|
||||||
|
const find = traverse.inner.find(path_name)
|
||||||
|
|
||||||
|
if (find.status === ReadStatus.Ok) {
|
||||||
|
if (find.result && rfwfs.is_dir(find.result)) {
|
||||||
|
traverse = find.result as DirectoryDepth
|
||||||
|
} else {
|
||||||
|
return wrap_entry(ReadStatus.Denied)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return wrap_entry(find.status)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return wrap_entry(ReadStatus.Ok, traverse)
|
||||||
|
}
|
||||||
|
|
||||||
|
libhome.path = function() {
|
||||||
|
return ["home", username]
|
||||||
|
}
|
||||||
|
|
||||||
|
libhome.get = function() {
|
||||||
|
const traverse = this.goal(this.path())
|
||||||
|
return traverse.status === ReadStatus.Ok ? traverse.result : undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
export default libhome
|
Reference in New Issue
Block a user