Skip to content

Commit

Permalink
fix: replace precondition object by name
Browse files Browse the repository at this point in the history
  • Loading branch information
nethriis committed May 17, 2024
1 parent 20263e1 commit c64e65e
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 15 deletions.
22 changes: 19 additions & 3 deletions src/define.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import type {
DefineEvent,
DefineEventWithOptions,
DefinePrecondition,
DefinePreconditionWithName,
EmbedOptions,
EmbedSetters,
EventCallback,
Expand Down Expand Up @@ -101,10 +102,25 @@ export const defineContextMenu: DefineContextMenu &
}
}

export const definePrecondition: DefinePrecondition = (
callback: PreconditionCallback
export const definePrecondition: DefinePrecondition &
DefinePreconditionWithName = (
...args: [PreconditionCallback | string, PreconditionCallback?]
) => {
return { options: {}, callback }
let name = ''
let callback: PreconditionCallback

if (args.length === 1) {
const [cb] = args as [PreconditionCallback]

callback = cb
} else {
const [nm, cb] = args as [string, PreconditionCallback]

name = nm
callback = cb
}

return { name, callback }
}

export const defineModal = (options: ModalOptions): ModalBuilder => {
Expand Down
2 changes: 1 addition & 1 deletion src/load.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ export const loadPreconditions = (
preconditions: HarmonixPrecondition[]
) => {
for (const prc of preconditions) {
harmonix.preconditions.set(prc.options.name!, prc)
harmonix.preconditions.set(prc.name!, prc)
}
}
9 changes: 3 additions & 6 deletions src/resolve.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ import type {
HarmonixEvent,
HarmonixEventInput,
HarmonixPrecondition,
HarmonixPreconditionInput,
PreconditionOptions
HarmonixPreconditionInput
} from './types'

export const resolveEvent = (
Expand Down Expand Up @@ -96,11 +95,9 @@ export const resolvePrecondition = (
})
const _prcPath = _jiti.resolve(prc)
const precondition = _jiti(_prcPath) as HarmonixPrecondition
const options: PreconditionOptions = {
name: precondition.options.name || filename(_prcPath).split('.')[0]
}
const name = precondition.name || filename(_prcPath).split('.')[0]

return { options, callback: precondition.callback }
return { name, callback: precondition.callback }
} else {
return prc
}
Expand Down
11 changes: 6 additions & 5 deletions src/types/preconditions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,18 @@ export type PreconditionCallback = (
entity: SlashEntity | ContextMenuEntity
) => boolean

export interface PreconditionOptions {
name?: string
}

export type DefinePrecondition = (
callback: PreconditionCallback
) => HarmonixPrecondition

export type DefinePreconditionWithName = (
name: string,
callback: PreconditionCallback
) => HarmonixPrecondition

export type HarmonixPreconditionInput = string | HarmonixPrecondition

export interface HarmonixPrecondition {
options: PreconditionOptions
name: string
callback: PreconditionCallback
}

0 comments on commit c64e65e

Please sign in to comment.