Skip to content

Commit

Permalink
Merge pull request #24 from FelixZY/fzy/gh-23/1
Browse files Browse the repository at this point in the history
  • Loading branch information
ehmicky authored Aug 3, 2024
2 parents 0f99288 + 942a060 commit 29aea4e
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 19 deletions.
70 changes: 67 additions & 3 deletions src/main.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,69 @@ export type SignalName =
* While most number are cross-platform, some are different between different
* OS.
*/
export type SignalNumber = number
export type SignalNumber =
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
| 11
| 12
| 13
| 14
| 15
| 16
| 17
| 18
| 19
| 20
| 21
| 22
| 23
| 24
| 25
| 26
| 27
| 28
| 29
| 30
| 31
| 34
| 35
| 36
| 37
| 38
| 39
| 40
| 41
| 42
| 43
| 44
| 45
| 46
| 47
| 48
| 49
| 50
| 51
| 52
| 53
| 54
| 55
| 56
| 57
| 58
| 59
| 60
| 61
| 62
| 63
| 64

export interface Signal {
/**
Expand Down Expand Up @@ -134,9 +196,11 @@ export interface Signal {
/**
* Object whose keys are signal names and values are signal objects.
*/
export declare const signalsByName: { [SignalNameType in SignalName]?: Signal }
export declare const signalsByName: { [SignalNameType in SignalName]: Signal }

/**
* Object whose keys are signal numbers and values are signal objects.
*/
export declare const signalsByNumber: { [signalNumber: SignalNumber]: Signal }
export declare const signalsByNumber: {
[SignalNumberType in SignalNumber]: Signal
}
34 changes: 18 additions & 16 deletions src/main.test-d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,24 @@ import {
import { expectAssignable, expectNotAssignable, expectType } from 'tsd'

const sigintSignal = signalsByName.SIGINT
expectType<Signal | undefined>(sigintSignal)
expectType<SignalName>(sigintSignal!.name)
expectType<SignalNumber>(sigintSignal!.number)
expectType<string>(sigintSignal!.description)
expectType<boolean>(sigintSignal!.supported)
expectType<SignalAction>(sigintSignal!.action)
expectType<boolean>(sigintSignal!.forced)
expectType<SignalStandard>(sigintSignal!.standard)
expectType<Signal>(sigintSignal)
expectType<SignalName>(sigintSignal.name)
expectType<SignalNumber>(sigintSignal.number)
expectType<string>(sigintSignal.description)
expectType<boolean>(sigintSignal.supported)
expectType<SignalAction>(sigintSignal.action)
expectType<boolean>(sigintSignal.forced)
expectType<SignalStandard>(sigintSignal.standard)

const sigintOne = signalsByNumber[1]
expectType<Signal | undefined>(sigintOne)
expectType<SignalName>(sigintOne!.name)
expectType<SignalNumber>(sigintOne!.number)
expectType<string>(sigintOne!.description)
expectType<boolean>(sigintOne!.supported)
expectType<SignalAction>(sigintOne!.action)
expectType<boolean>(sigintOne!.forced)
expectType<SignalStandard>(sigintOne!.standard)
expectType<Signal>(sigintOne)
expectType<SignalName>(sigintOne.name)
expectType<SignalNumber>(sigintOne.number)
expectType<string>(sigintOne.description)
expectType<boolean>(sigintOne.supported)
expectType<SignalAction>(sigintOne.action)
expectType<boolean>(sigintOne.forced)
expectType<SignalStandard>(sigintOne.standard)

expectAssignable<SignalName>('SIGINT')
expectAssignable<SignalName>('SIGRT1')
Expand All @@ -42,6 +42,8 @@ expectNotAssignable<SignalName>('SIGRT32')

expectAssignable<SignalNumber>(1)
expectNotAssignable<SignalNumber>('1')
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
expectNotAssignable<SignalNumber>(999)

expectAssignable<SignalAction>('terminate')
expectAssignable<SignalAction>('core')
Expand Down

0 comments on commit 29aea4e

Please sign in to comment.