ソースを参照

Add Impl suffix and uncurry JS function

jherve 1 年間 前
コミット
7e13f922f2
2 ファイル変更13 行追加9 行削除
  1. 3 5
      src/Background.js
  2. 10 4
      src/Background.purs

+ 3 - 5
src/Background.js

@@ -1,9 +1,7 @@
-export function onClickedAddListener (fn) {
-  return function () {
-    return browser.browserAction.onClicked.addListener(fn);
-  }
+export function onClickedAddListenerImpl (fn) {
+  return browser.browserAction.onClicked.addListener(fn);
 }
 
-export function tabsSendMessage (tabId, message) {
+export function tabsSendMessageImpl (tabId, message) {
   return browser.tabs.sendMessage(tabId, message);
 }

+ 10 - 4
src/Background.purs

@@ -4,7 +4,7 @@ import Prelude
 
 import Effect (Effect)
 import Effect.Class.Console (log, logShow)
-import Effect.Uncurried (EffectFn1, EffectFn2, mkEffectFn1, runEffectFn2)
+import Effect.Uncurried (EffectFn1, EffectFn2, mkEffectFn1, runEffectFn1, runEffectFn2)
 import Promise (Promise)
 
 type Tab = { id :: Int, index :: Int }
@@ -13,8 +13,14 @@ type Message = String
 
 type Listener a = EffectFn1 a Unit
 
-foreign import onClickedAddListener :: Listener Tab -> Effect Unit
-foreign import tabsSendMessage :: EffectFn2 TabId Message (Promise Message)
+foreign import onClickedAddListenerImpl :: EffectFn1 (Listener Tab) Unit
+foreign import tabsSendMessageImpl :: EffectFn2 TabId Message (Promise Message)
+
+onClickedAddListener ∷ Listener Tab → Effect Unit
+onClickedAddListener = runEffectFn1 onClickedAddListenerImpl
+
+tabsSendMessage ∷ TabId → Message → Effect (Promise Message)
+tabsSendMessage = runEffectFn2 tabsSendMessageImpl
 
 main :: Effect Unit
 main = do
@@ -22,7 +28,7 @@ main = do
     listenerEff = mkEffectFn1 $ \e -> do
       logShow e
       log "Executed listener mkEffectFn1"
-      _ <- runEffectFn2 tabsSendMessage e.id "message from PS"
+      _ <- tabsSendMessage e.id "message from PS"
       pure unit
 
   log "[bg] starting up"