70 lines
1.2 KiB
Plaintext
70 lines
1.2 KiB
Plaintext
import{constants}from"node:os";
|
|
|
|
import{SIGRTMAX}from"./realtime.js";
|
|
import{getSignals}from"./signals.js";
|
|
|
|
|
|
|
|
const getSignalsByName=()=>{
|
|
const signals=getSignals();
|
|
return Object.fromEntries(signals.map(getSignalByName))
|
|
};
|
|
|
|
const getSignalByName=({
|
|
name,
|
|
number,
|
|
description,
|
|
supported,
|
|
action,
|
|
forced,
|
|
standard
|
|
})=>[name,{name,number,description,supported,action,forced,standard}];
|
|
|
|
export const signalsByName=getSignalsByName();
|
|
|
|
|
|
|
|
|
|
const getSignalsByNumber=()=>{
|
|
const signals=getSignals();
|
|
const length=SIGRTMAX+1;
|
|
const signalsA=Array.from({length},(value,number)=>
|
|
getSignalByNumber(number,signals)
|
|
);
|
|
return Object.assign({},...signalsA)
|
|
};
|
|
|
|
const getSignalByNumber=(number,signals)=>{
|
|
const signal=findSignalByNumber(number,signals);
|
|
|
|
if(signal===undefined){
|
|
return{}
|
|
}
|
|
|
|
const{name,description,supported,action,forced,standard}=signal;
|
|
return{
|
|
[number]:{
|
|
name,
|
|
number,
|
|
description,
|
|
supported,
|
|
action,
|
|
forced,
|
|
standard
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
|
|
const findSignalByNumber=(number,signals)=>{
|
|
const signal=signals.find(({name})=>constants.signals[name]===number);
|
|
|
|
if(signal!==undefined){
|
|
return signal
|
|
}
|
|
|
|
return signals.find((signalA)=>signalA.number===number)
|
|
};
|
|
|
|
export const signalsByNumber=getSignalsByNumber(); |