define action and fileters
This commit is contained in:
parent
7980661e6d
commit
f4c7ff4c5c
@ -32,8 +32,8 @@
|
||||
"devDependencies": {
|
||||
"@directus/api": "latest",
|
||||
"@directus/extensions-sdk": "latest",
|
||||
"prettier": "^3.3.1",
|
||||
"vite": "^5.2.12",
|
||||
"prettier": "^3.3.3",
|
||||
"vite": "^5.3.4",
|
||||
"vite-plugin-dts": "^3.9.1"
|
||||
}
|
||||
}
|
||||
|
15
src/hooks/index.ts
Normal file
15
src/hooks/index.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import type {
|
||||
ActionHandler,
|
||||
FilterHandler,
|
||||
EventContext
|
||||
} from '@directus/types'
|
||||
|
||||
import type { TFilterHandlerMeta, TActionHandlerMeta } from './types'
|
||||
|
||||
export const defineFilterHandler = <T = unknown>(
|
||||
fn: (payload: T, meta: TFilterHandlerMeta, context: EventContext) => void
|
||||
) => fn as FilterHandler<T>
|
||||
|
||||
export const defineActionHandler = <T = unknown>(
|
||||
fn: (meta: TActionHandlerMeta<T>, context: EventContext) => void
|
||||
) => fn as ActionHandler
|
13
src/hooks/types.ts
Normal file
13
src/hooks/types.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import type { PrimaryKey } from '@directus/types'
|
||||
|
||||
export type TEventHandlerMeta = {
|
||||
event: string
|
||||
collection: string
|
||||
}
|
||||
|
||||
export type TFilterHandlerMeta = TEventHandlerMeta & {}
|
||||
|
||||
export type TActionHandlerMeta<T = unknown> = TEventHandlerMeta & {
|
||||
keys: PrimaryKey[]
|
||||
payload: T
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
export * from './types'
|
||||
export * from './hooks'
|
||||
export * from './services'
|
||||
export * from './operations'
|
||||
|
@ -1,9 +1,12 @@
|
||||
import type { Accountability } from '@directus/types'
|
||||
import type { TTrigger } from './trigger'
|
||||
|
||||
export type TOperationContextData = {
|
||||
$trigger: TTrigger,
|
||||
$last: TTrigger
|
||||
export type TOperationContextData<
|
||||
TTriggerBodyEntity extends Record<string, unknown> = {},
|
||||
TLast extends Record<string, unknown> = {},
|
||||
> = {
|
||||
$trigger: TTrigger<TTriggerBodyEntity>
|
||||
$last: TLast
|
||||
$accountability: Accountability
|
||||
$env: Record<string, string>
|
||||
}
|
||||
|
@ -1,10 +1,13 @@
|
||||
export type TTrigger = {
|
||||
path: string
|
||||
query: any,
|
||||
body: {
|
||||
export type TTriggerBody<TEntity extends Record<string, unknown> = {}> =
|
||||
TEntity & {
|
||||
collection: string
|
||||
},
|
||||
method: 'GET' | 'POST',
|
||||
}
|
||||
|
||||
export type TTrigger<TBody extends Record<string, unknown> = {}> = {
|
||||
path: string
|
||||
query: any
|
||||
body: TTriggerBody<TBody>
|
||||
method: 'GET' | 'POST'
|
||||
headers: {
|
||||
host: string
|
||||
connection: string
|
||||
|
@ -1,7 +0,0 @@
|
||||
import type { PrimaryKey } from '@directus/types'
|
||||
|
||||
export type TFilterHandlerMeta = Record<string, any> & {
|
||||
event: string | 'items.create' | 'items.update',
|
||||
keys: PrimaryKey[]
|
||||
collection: string
|
||||
}
|
@ -1 +0,0 @@
|
||||
export * from './hook'
|
Loading…
x
Reference in New Issue
Block a user