Skip to content

Only export foreign #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ Search for an icon on [`react-icons`](https://react-icons.github.io/react-icons)
and see these examples on how to import in PureScript.

```purescript
import React.Basic (element)
import React.Icons.Fa (faGithub)
import React.Icons.Md (mdCrop)

faGithub {}
mdCrop { size: "24px", className: "my-class" }
element faGithub {}
element mdCrop { size: "24px", className: "my-class" }
```
9 changes: 3 additions & 6 deletions codegen/codegen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ allLibsFile="$libDir/all.d.ts"
}

toPureScript() {
outputPs+="\n$(sed -e "s/\${icon}/${1,}/g" "$dir/templateIcon.txt")\n"
outputPs+="\n$(sed -e "s/\${icon}/${1,}/g" "$dir/templateIcon.txt")"
}

toJavaScript() {
nameLib="$1"
nameImport="$2"
nameExport="_${2,}"
nameExport="${2,}"

outputJs+=$(
sed -e "s/\${nameImport}/$nameImport/g" \
Expand All @@ -50,11 +50,8 @@ for lib in $libs; do
regex='s/export declare const ([A-Za-z]+): IconType;/\1/p'
iconNames=$(sed -nr "$regex" "$iconFile" | sort -u)

# PureScript exports
exportsPs="$(printf "%b" "$iconNames" | sed -e 's/\(.\)/\L\1/' | xargs | sed -e 's/ /, /g')"

# PureScript and JS defintions
outputPs="$(sed -e "s/\${lib}/${lib^}/" -e "s/\${exports}/${exportsPs}/" "$dir/templateModule.txt")\n"
outputPs="$(sed -e "s/\${lib}/${lib^}/" "$dir/templateModule.txt")\n"
outputJs=""
for name in $iconNames; do
echo "- $name"
Expand Down
5 changes: 1 addition & 4 deletions codegen/templateIcon.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
foreign import _${icon} :: ReactIcon

${icon} :: forall a b. Union a b PropsIcon => Record a -> JSX
${icon} = element (unsafeCoerce _${icon})
foreign import ${icon} :: ReactIcon
7 changes: 2 additions & 5 deletions codegen/templateModule.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
module React.Icons.${lib} (${exports}) where
module React.Icons.${lib} where

import Prim.Row (class Union)
import React.Basic (JSX, element)
import React.Icons.Types (ReactIcon, PropsIcon)
import Unsafe.Coerce (unsafeCoerce)
import React.Icons.Types (ReactIcon)
2 changes: 1 addition & 1 deletion spago.dhall
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{ name = "react-icons"
, dependencies = [ "react-basic", "react-basic-dom", "unsafe-coerce" ]
, dependencies = [ "react-basic", "react-basic-dom" ]
, packages = ./packages.dhall
, sources = [ "src/**/*.purs" ]
, license = "MIT-0"
Expand Down
1,570 changes: 785 additions & 785 deletions src/React/Icons/Ai.js

Large diffs are not rendered by default.

4,720 changes: 789 additions & 3,931 deletions src/React/Icons/Ai.purs

Large diffs are not rendered by default.

1,484 changes: 742 additions & 742 deletions src/React/Icons/Bi.js

Large diffs are not rendered by default.

4,462 changes: 746 additions & 3,716 deletions src/React/Icons/Bi.purs

Large diffs are not rendered by default.

3,336 changes: 1,668 additions & 1,668 deletions src/React/Icons/Bs.js

Large diffs are not rendered by default.

10,018 changes: 1,672 additions & 8,346 deletions src/React/Icons/Bs.purs

Large diffs are not rendered by default.

1,396 changes: 698 additions & 698 deletions src/React/Icons/Cg.js

Large diffs are not rendered by default.

4,198 changes: 702 additions & 3,496 deletions src/React/Icons/Cg.purs

Large diffs are not rendered by default.

362 changes: 181 additions & 181 deletions src/React/Icons/Di.js

Large diffs are not rendered by default.

Loading