char/avril
(wip) why'd you have to go and make things so complicaaaaated?
git clone https://git.t4t.associates/char/avril
9cca521
main
1import { ObjectCreate , ObjectFreeze } from "ext:core/primordials" ; 2import { 3op_env_delete , 4op_env_get , 5op_env_set , 6op_env_to_object , 7} from "ext:core/ops" ; 8import { required , usv } from "ext:web/idl.js" ; 9import { result } from "ext:file/errors.js" ; 10 11export const env = ObjectFreeze ({ 12get ( name :unknown ) { 13required ( arguments . length , 1 ); 14return result ( op_env_get ( usv ( name ))) ?? undefined ; 15}, 16has ( name :unknown ) { 17required ( arguments . length , 1 ); 18return result ( op_env_get ( usv ( name ))) !== null ; 19}, 20set ( name :unknown , value :unknown ) { 21required ( arguments . length , 2 ); 22result ( op_env_set ([ usv ( name ), usv ( value )])); 23}, 24delete ( name :unknown ) { 25required ( arguments . length , 1 ); 26result ( op_env_delete ( usv ( name ))); 27}, 28toObject () { 29const entries = op_env_to_object (); 30const snapshot :Record < string , string > = ObjectCreate ( null ); 31for ( let index = 0 ; index < entries . length ; index ++ ) { 32snapshot [ entries [ index ][ 0 ]] = entries [ index ][ 1 ]; 33} 34return snapshot ; 35}, 36});