File tree Expand file tree Collapse file tree 6 files changed +68
-0
lines changed Expand file tree Collapse file tree 6 files changed +68
-0
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based
7
7
Breaking changes:
8
8
9
9
New features:
10
+ - Added ` group ` , ` groupCollapsed ` , and ` groupEnd ` (#42 by @pete-murphy )
10
11
11
12
Bugfixes:
12
13
Original file line number Diff line number Diff line change 1
1
module Effect.Class.Console where
2
2
3
+ import Control.Bind (discard , bind , pure )
3
4
import Data.Function ((<<<))
4
5
import Data.Show (class Show )
5
6
import Data.Unit (Unit )
@@ -47,3 +48,19 @@ timeEnd = liftEffect <<< EffConsole.timeEnd
47
48
48
49
clear :: forall m . MonadEffect m => m Unit
49
50
clear = liftEffect EffConsole .clear
51
+
52
+ group :: forall m . MonadEffect m => String -> m Unit
53
+ group = liftEffect <<< EffConsole .group
54
+
55
+ groupCollapsed :: forall m . MonadEffect m => String -> m Unit
56
+ groupCollapsed = liftEffect <<< EffConsole .groupCollapsed
57
+
58
+ groupEnd :: forall m . MonadEffect m => m Unit
59
+ groupEnd = liftEffect EffConsole .groupEnd
60
+
61
+ grouped :: forall m a . MonadEffect m => String -> m a -> m a
62
+ grouped name inner = do
63
+ group name
64
+ result <- inner
65
+ groupEnd
66
+ pure result
Original file line number Diff line number Diff line change @@ -49,3 +49,19 @@ export const timeEnd = function (s) {
49
49
export const clear = function ( ) {
50
50
console . clear ( ) ;
51
51
} ;
52
+
53
+ export const group = function ( s ) {
54
+ return function ( ) {
55
+ console . group ( s ) ;
56
+ } ;
57
+ } ;
58
+
59
+ export const groupCollapsed = function ( s ) {
60
+ return function ( ) {
61
+ console . groupCollapsed ( s ) ;
62
+ } ;
63
+ } ;
64
+
65
+ export const groupEnd = function ( ) {
66
+ console . groupEnd ( ) ;
67
+ } ;
Original file line number Diff line number Diff line change 1
1
module Effect.Console where
2
2
3
+ import Control.Bind (discard , bind , pure )
3
4
import Effect (Effect )
4
5
5
6
import Data.Show (class Show , show )
@@ -66,3 +67,22 @@ foreign import timeEnd :: String -> Effect Unit
66
67
67
68
-- | Clears the console
68
69
foreign import clear :: Effect Unit
70
+
71
+ -- | Creates a new inline group in the console. This indents following console
72
+ -- | messages by an additional level, until `groupEnd` is called.
73
+ foreign import group :: String -> Effect Unit
74
+
75
+ -- | Same as `group`, but groups are collapsed by default.
76
+ foreign import groupCollapsed :: String -> Effect Unit
77
+
78
+ -- | Exits the current inline group in the console.
79
+ foreign import groupEnd :: Effect Unit
80
+
81
+ -- | Perform an effect within the context of an inline group in the console.
82
+ -- | Calls `group` and `groupEnd` before and after the effect, respectively.
83
+ grouped :: forall a . String -> Effect a -> Effect a
84
+ grouped name inner = do
85
+ group name
86
+ result <- inner
87
+ groupEnd
88
+ pure result
Original file line number Diff line number Diff line change @@ -12,3 +12,11 @@ main = do
12
12
Console .error " error"
13
13
Console .info " info"
14
14
Console .debug " debug"
15
+ Console .group " group"
16
+ Console .log " log in group"
17
+ Console .groupCollapsed " groupCollapsed"
18
+ Console .log " log in groupCollapsed"
19
+ Console .groupEnd
20
+ Console .groupEnd
21
+ Console .grouped " grouped" do
22
+ Console .log " log in grouped"
Original file line number Diff line number Diff line change 3
3
error
4
4
info
5
5
debug
6
+ group
7
+ log in group
8
+ groupCollapsed
9
+ log in groupCollapsed
10
+ grouped
11
+ log in grouped
You can’t perform that action at this time.
0 commit comments