mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-09 13:30:04 +00:00
chore(types): add FileTree types
This commit is contained in:
47
src/types/FileTree.ts
Normal file
47
src/types/FileTree.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
export interface FileTree {
|
||||||
|
members: [FolderMember, ServiceMember]
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum MemberType {
|
||||||
|
folder = 'folder',
|
||||||
|
service = 'service'
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FolderMember {
|
||||||
|
name: string
|
||||||
|
type: MemberType.folder
|
||||||
|
members: [FolderMember, ServiceMember]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ServiceMember {
|
||||||
|
name: string
|
||||||
|
type: MemberType.service
|
||||||
|
code: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export const isFileTree = (arg: any): arg is FileTree =>
|
||||||
|
arg &&
|
||||||
|
arg.members &&
|
||||||
|
Array.isArray(arg.members) &&
|
||||||
|
arg.members.filter(
|
||||||
|
(member: FolderMember | ServiceMember) =>
|
||||||
|
!isFolderMember(member) && !isServiceMember(member)
|
||||||
|
).length === 0
|
||||||
|
|
||||||
|
const isFolderMember = (arg: any): arg is FolderMember =>
|
||||||
|
arg &&
|
||||||
|
typeof arg.name === 'string' &&
|
||||||
|
arg.type === MemberType.folder &&
|
||||||
|
arg.members &&
|
||||||
|
Array.isArray(arg.members) &&
|
||||||
|
arg.members.filter(
|
||||||
|
(member: FolderMember | ServiceMember) =>
|
||||||
|
!isFolderMember(member) && !isServiceMember(member)
|
||||||
|
).length === 0
|
||||||
|
|
||||||
|
const isServiceMember = (arg: any): arg is ServiceMember =>
|
||||||
|
arg &&
|
||||||
|
typeof arg.name === 'string' &&
|
||||||
|
arg.type === MemberType.service &&
|
||||||
|
arg.code &&
|
||||||
|
typeof arg.code === 'string'
|
||||||
@@ -12,3 +12,5 @@ export * from './Session'
|
|||||||
export * from './UploadFile'
|
export * from './UploadFile'
|
||||||
export * from './PollOptions'
|
export * from './PollOptions'
|
||||||
export * from './WriteStream'
|
export * from './WriteStream'
|
||||||
|
export * from './FileTree'
|
||||||
|
export * from './ExecuteScript'
|
||||||
|
|||||||
Reference in New Issue
Block a user