0.0.49 • Published 1 year ago

zhangyida-tools v0.0.49

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

例子

FileEntity

const {FileEntity} = require('../index');

const tempPath = FileEntity.pathJoin(__dirname, './temp');

const fileEntity = FileEntity.of(tempPath);
console.log(fileEntity)
const tempFile = fileEntity.createFile('temp.txt', 'test');
console.log(tempFile)
tempFile.rename('temp2.txt');
console.log(tempFile)
tempFile.remove();

控制台输出

FileEntity {
  fileName: 'temp',
  filePath: 'D:/Gitee/zh-tools/test/temp',
  type: 'folder',
  size: 0,
  removed: false
}
FileEntity {
  fileName: 'temp.txt',
  filePath: 'D:/Gitee/zh-tools/test/temp/temp.txt',
  type: 'file',
  size: 4,
  removed: false
}
FileEntity {
  fileName: 'temp2.txt',
  filePath: 'D:/Gitee/zh-tools/test/temp/temp2.txt',
  type: 'file',
  size: 4,
  removed: false
}

array util

const {setProperty, getProperty, setProperties} = require('../index');
const users = [
  {
    id: 1,
    name: 'zh',
    age: 10,
    department_id: 1,
    role_ids: [1, 2]
  }, {
    id: 2,
    name: 'zh2',
    age: 11,
    department_id: 1,
    role_ids: [1, 3]
  }, {
    id: 3,
    name: 'zh3',
    age: 12,
    department_id: 2,
    role_ids: [2, 3]
  }, {
    id: 4,
    name: 'zh4',
    age: 13,
    department_id: 2,
    role_ids: [3]
  },
]
const roles = [
  {
    id: 1,
    name: 'User'
  }, {
    id: 2,
    name: 'Admin'
  },
  {
    id: 3,
    name: 'Test'
  },
]

const departments = [
  {
    id: 1,
    name: 'department1'
  }, {
    id: 2,
    name: 'department2'
  },
]
const department_ids = getProperty(users, 'department_id');
console.log(department_ids)
setProperty(users, departments, (dbEntity, entity) => dbEntity.id === entity.department_id, (dbEntity, entity) => {
  entity.department = dbEntity;
})
console.log(users)
setProperties(users, roles, (dbEntity, entity) => entity.role_ids.includes(dbEntity.id), (dbEntity, entity) => {
  entity.roles = dbEntity
})
console.log(JSON.stringify(users, null, 2))

控制台输出

[ 1, 2 ]
[
  {
    id: 1,
    name: 'zh',
    age: 10,
    department_id: 1,
    role_ids: [ 1, 2 ],
    department: { id: 1, name: 'department1' }
  },
  {
    id: 2,
    name: 'zh2',
    age: 11,
    department_id: 1,
    role_ids: [ 1, 3 ],
    department: { id: 1, name: 'department1' }
  },
  {
    id: 3,
    name: 'zh3',
    age: 12,
    department_id: 2,
    role_ids: [ 2, 3 ],
    department: { id: 2, name: 'department2' }
  },
  {
    id: 4,
    name: 'zh4',
    age: 13,
    department_id: 2,
    role_ids: [ 3 ],
    department: { id: 2, name: 'department2' }
  }
]
[
  {
    "id": 1,
    "name": "zh",
    "age": 10,
    "department_id": 1,
    "role_ids": [
      1,
      2
    ],
    "department": {
      "id": 1,
      "name": "department1"
    },
    "roles": [
      {
        "id": 1,
        "name": "User"
      },
      {
        "id": 2,
        "name": "Admin"
      }
    ]
  },
  {
    "id": 2,
    "name": "zh2",
    "age": 11,
    "department_id": 1,
    "role_ids": [
      1,
      3
    ],
    "department": {
      "id": 1,
      "name": "department1"
    },
    "roles": [
      {
        "id": 1,
        "name": "User"
      },
      {
        "id": 3,
        "name": "Test"
      }
    ]
  },
  {
    "id": 3,
    "name": "zh3",
    "age": 12,
    "department_id": 2,
    "role_ids": [
      2,
      3
    ],
    "department": {
      "id": 2,
      "name": "department2"
    },
    "roles": [
      {
        "id": 2,
        "name": "Admin"
      },
      {
        "id": 3,
        "name": "Test"
      }
    ]
  },
  {
    "id": 4,
    "name": "zh4",
    "age": 13,
    "department_id": 2,
    "role_ids": [
      3
    ],
    "department": {
      "id": 2,
      "name": "department2"
    },
    "roles": [
      {
        "id": 3,
        "name": "Test"
      }
    ]
  }
]

描述文件

export class FileEntity {
    fileName: string
    filePath: string
    type: 'folder' | 'file'
    size: number
    removed: boolean

    getParentFolderPath(): string;

    static fetch(path: string, isFolder?: boolean): FileEntity[]

    getNewPath(targetPath: string, isMove?: boolean): string;

    static of(filePath: string): FileEntity

    remove(): void;

    isDirectory(): boolean;

    isFile(): boolean;

    move(targetPath: string): void

    rename(newName: string): void

    copy(targetPath: string): void

    static validateDir(targetPath: string): void

    static pathJoin(...paths: string[]): string

    createChildFolder(name: string): FileEntity

    createFile(name: string, fileContent: any): FileEntity
}

export type Pipe<Entity> = (element: Entity) => object | void

export function getProperty<Entity>(entities: Entity[], propertyName?: string, pipe?: Pipe<Entity>);

export type Match<Entity, DbEntity> = (dbEntity: DbEntity, entity: Entity) => boolean;

export type Set<Entity, DbEntity> = (dbEntity: DbEntity | DbEntity[], entity: Entity) => Entity | void;

export type NotFoundProcess<Entity> = (entity: Entity) => void;

export type MatchAndSet<Entity, DbEntity> = {
    match: Match<Entity, DbEntity>,
    set: Set<Entity, DbEntity>
}

export function setProperty<Entity, DbEntity>(entities: Entity[], dbEntities: DbEntity[], match: Match<Entity, DbEntity>, set: Set<Entity, DbEntity>, moreMatchAndSet?: MatchAndSet<Entity, DbEntity>[]);

export function setProperties<Entity, DbEntity>(entities: Entity[], dbEntities: DbEntity[], match: Match<Entity, DbEntity>, set: Set<Entity, DbEntity>);
0.0.43

1 year ago

0.0.44

1 year ago

0.0.45

1 year ago

0.0.46

1 year ago

0.0.47

1 year ago

0.0.48

1 year ago

0.0.49

1 year ago

0.0.40

1 year ago

0.0.41

1 year ago

0.0.42

1 year ago

0.0.37

2 years ago

0.0.38

2 years ago

0.0.39

1 year ago

0.0.30

2 years ago

0.0.31

2 years ago

0.0.32

2 years ago

0.0.33

2 years ago

0.0.34

2 years ago

0.0.35

2 years ago

0.0.36

2 years ago

0.0.27

2 years ago

0.0.28

2 years ago

0.0.29

2 years ago

0.0.21

2 years ago

0.0.22

2 years ago

0.0.23

2 years ago

0.0.24

2 years ago

0.0.25

2 years ago

0.0.26

2 years ago

0.0.20

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.15

2 years ago

0.0.9

2 years ago

0.0.16

2 years ago

0.0.8

2 years ago

0.0.17

2 years ago

0.0.18

2 years ago

0.0.19

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.1

2 years ago