Skip to content

Commit 1454a9f

Browse files
committed
Support exports using square brackets in FFI modules under psc-bundle
1 parent b1cdab2 commit 1454a9f

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

psc-bundle/Main.hs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,12 +242,22 @@ toModule mids mid top
242242
= pure (Member n False name decl [])
243243
toModuleElement n
244244
| JSExpression (e : op : decl) <- node n
245-
, JSMemberDot [ exports ] _ nm <- node e
246-
, JSIdentifier "exports" <- node exports
245+
, Just name <- accessor (node e)
247246
, JSOperator eq <- node op
248247
, JSLiteral "=" <- node eq
249-
, JSIdentifier name <- node nm
250248
= pure (Member n True name decl [])
249+
where
250+
accessor :: Node -> Maybe String
251+
accessor (JSMemberDot [ exports ] _ nm)
252+
| JSIdentifier "exports" <- node exports
253+
, JSIdentifier name <- node nm
254+
= Just name
255+
accessor (JSMemberSquare [ exports ] _ nm _)
256+
| JSIdentifier "exports" <- node exports
257+
, JSExpression [e] <- node nm
258+
, JSStringLiteral _ name <- node e
259+
= Just name
260+
accessor _ = Nothing
251261
toModuleElement n
252262
| JSExpression (mnExp : op : obj: _) <- node n
253263
, JSMemberDot [ mn ] _ e <- node mnExp

0 commit comments

Comments
 (0)