mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-08 03:20:12 +08:00
wip: integrate filegraph into session
This commit is contained in:
1 parent
cdd22634e0
commit
2d95ca382f
13 files changed
+105
-42
No files matched your search
@@ -1,17 +1,19 @@
|
||||
{
|
||||
"name": "@linux-odyssey/file-graph",
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
"main": "./dist/cjs/index.js",
|
||||
"types": "./dist/types/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"require": "./dist/cjs/index.js",
|
||||
"import": "./dist/esm/index.js",
|
||||
"types": "./dist/types/index.d.ts"
|
||||
}
|
||||
},
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"build": "tsc -p tsconfig.cjs.json",
|
||||
"build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
|
||||
"dev": "tsc -w",
|
||||
"test": "yarn build && jest"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { FileObject } from './file.js'
|
||||
import FileNode from './fileNode.js'
|
||||
|
||||
export interface Event {
|
||||
export interface FileGraphUpdateEvent {
|
||||
add?: FileObject[]
|
||||
remove?: FileObject[]
|
||||
discover?: FileObject[]
|
||||
@@ -42,7 +42,7 @@ export default class FileGraph extends FileNode {
|
||||
this.merge(newNode)
|
||||
}
|
||||
|
||||
handleEvent(event: Event) {
|
||||
handleEvent(event: FileGraphUpdateEvent) {
|
||||
// eslint-disable-next-line default-case
|
||||
switch (true) {
|
||||
case !!event.add:
|
||||
|
||||
@@ -6,10 +6,17 @@ import {
|
||||
} from './errors.js'
|
||||
import { dirname } from './utils.js'
|
||||
|
||||
export default class FileNode extends File {
|
||||
export interface IFileNode {
|
||||
path: string
|
||||
type: 'file' | 'directory'
|
||||
discovered: boolean
|
||||
children?: IFileNode[]
|
||||
}
|
||||
|
||||
export default class FileNode extends File implements IFileNode {
|
||||
children: FileNode[]
|
||||
|
||||
constructor(file: FileObject | FileNode) {
|
||||
constructor(file: FileObject | IFileNode) {
|
||||
super(file)
|
||||
this.children = []
|
||||
if ((<FileNode>file).children)
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
export { default as File, FileObject } from './file.js'
|
||||
export { default as FileNode } from './fileNode.js'
|
||||
export { default as FileGraph, Event } from './fileGraph.js'
|
||||
|
||||
export interface IFileNode {
|
||||
path: string
|
||||
type: string
|
||||
discovered: boolean
|
||||
children?: IFileNode[]
|
||||
}
|
||||
export { default as FileNode, IFileNode } from './fileNode.js'
|
||||
export { default as FileGraph, FileGraphUpdateEvent } from './fileGraph.js'
|
||||
@@ -4,8 +4,11 @@
|
||||
"rootDir": "src",
|
||||
"composite": true,
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"outDir": "./dist/esm",
|
||||
"declarationDir": "./dist/types"
|
||||
"declarationDir": "./dist/types",
|
||||
"target": "ES2020",
|
||||
"useDefineForClassFields": true
|
||||
},
|
||||
"include": ["src"],
|
||||
"exclude": ["node_modules", "dist"]
|
||||
|
||||
Reference in new issue
Block a user