char/avril
(wip) why'd you have to go and make things so complicaaaaated?
git clone https://git.t4t.associates/char/avril
7f4058a
main
1declare module"ext:core/ops" { 2export function op_console_print ( args :[ stderr :boolean , text :string ]) :null ; 3 4export type TaskActionJson = 5| "None" 6| { Shell :string } 7| { Argv :string [] } 8| { Callback :{ id :number ; key :string } }; 9 10export interface TaskReadyJson { 11name :string ; 12action :TaskActionJson ; 13args :string []; 14env :Record < string , string >; 15} 16 17export interface TaskReportJson { 18code :number ; 19completed :string []; 20failed :{ name :string ; code :number }[]; 21cached :string []; 22} 23 24export type TaskStepJson = { Ready :TaskReadyJson [] } | { Done :TaskReportJson }; 25 26export interface TaskGraphJson { 27tasks :Record < string , { 28description :string | null ; 29action :TaskActionJson ; 30dependencies :string []; 31parallel :boolean ; 32env_file :string | null ; 33files :string [] | null ; 34output :string []; 35env :string []; 36}>; 37} 38 39export function op_task_begin ( args :{ 40graph :TaskGraphJson ; 41root :string ; 42target :string ; 43args :string []; 44force :boolean ; 45cache_dir :string ; 46}) :number ; 47export function op_task_step ( session :number ) :TaskStepJson ; 48export function op_task_finish ( args :{ session :number ; name :string ; code :number }) :void ; 49export function op_task_drop ( session :number ) :boolean ; 50export function op_task_digest ( graph :TaskGraphJson ) :string ; 51export function op_task_relevant ( args :{ 52graph :TaskGraphJson ; 53target :string ; 54root :string ; 55paths :{ path :string ; structural :boolean }[]; 56}) :boolean ; 57}