Skip to content

Commit

Permalink
esm splitting
Browse files Browse the repository at this point in the history
  • Loading branch information
jonschoning committed Jan 27, 2024
1 parent 3f24578 commit e483297
Show file tree
Hide file tree
Showing 27 changed files with 166 additions and 176 deletions.
48 changes: 34 additions & 14 deletions espial.cabal
@@ -1,6 +1,6 @@
cabal-version: 1.12
cabal-version: 1.12

-- This file has been generated from package.yaml by hpack version 0.35.1.
-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

Expand Down Expand Up @@ -48,23 +48,43 @@ extra-source-files:
static/css/tachyons.min.css
static/css/tachyons.min.css.gz
static/images/bluepin.gif
static/js/app.min.js
static/js/app.min.js.gz
static/js/app.min.js.map
static/js/app.min.js.map.gz
static/js/js.cookie-2.2.0.min.js
static/js/js.cookie-2.2.0.min.js.gz
static/js/dist/chunk-C2VZJJ3O.js
static/js/dist/chunk-C2VZJJ3O.js.gz
static/js/dist/chunk-C2VZJJ3O.js.map
static/js/dist/chunk-C2VZJJ3O.js.map.gz
static/js/dist/chunk-HXAV7WCB.js
static/js/dist/chunk-HXAV7WCB.js.gz
static/js/dist/chunk-HXAV7WCB.js.map
static/js/dist/chunk-HXAV7WCB.js.map.gz
static/js/dist/chunk-YZW7HJVL.js
static/js/dist/chunk-YZW7HJVL.js.gz
static/js/dist/chunk-YZW7HJVL.js.map
static/js/dist/chunk-YZW7HJVL.js.map.gz
static/js/dist/AccountSettings/index.js
static/js/dist/AccountSettings/index.js.gz
static/js/dist/AccountSettings/index.js.map
static/js/dist/Add/index.js
static/js/dist/Add/index.js.gz
static/js/dist/Add/index.js.map
static/js/dist/Bookmarks/index.js
static/js/dist/Bookmarks/index.js.gz
static/js/dist/Bookmarks/index.js.map
static/js/dist/Logout/index.js
static/js/dist/Logout/index.js.gz
static/js/dist/Logout/index.js.map
static/js/dist/Note/index.js
static/js/dist/Note/index.js.gz
static/js/dist/Note/index.js.map
purs/Makefile
purs/spago.lock
purs/spago.yaml
purs/src/App.purs
purs/src/Globals.js
purs/src/Globals.purs
purs/src/Main.purs
purs/src/Marked.js
purs/src/Marked.purs
purs/src/Model.purs
purs/src/Util.purs
purs/src/AccountSettings.purs
purs/src/Add.purs
purs/src/Bookmarks.purs
purs/src/Logout.purs
purs/src/Note.purs
purs/src/Component/AccountSettings.purs
purs/src/Component/Add.purs
purs/src/Component/BList.purs
Expand Down
2 changes: 2 additions & 0 deletions package.yaml
Expand Up @@ -33,6 +33,8 @@ extra-source-files:
- static/css/**
- static/images/**
- static/js/**
- static/js/dist/**
- static/js/dist/**/**
- purs/Makefile
- purs/spago.lock
- purs/spago.yaml
Expand Down
12 changes: 2 additions & 10 deletions purs/Makefile
Expand Up @@ -9,16 +9,8 @@ build:
@npm run spago build

bundle: build
@npm run esbuild-bundle
@npm run esbuild-bundle-min
@rm -f dist/*.gz
@gzip -k dist/app.min.js.map
@gzip -k dist/app.min.js
@find dist -type f -printf "%kK\\t%h/%f\\n" | sort -k 2
@cp dist/app.min.js ../static/js/app.min.js
@cp dist/app.min.js.gz ../static/js/app.min.js.gz
@cp dist/app.min.js.map ../static/js/app.min.js.map
@cp dist/app.min.js.map.gz ../static/js/app.min.js.map.gz
npm run esbuild-bundle-min
cp -R dist ../static/js/

docs:
@rm -Rf generated-docs
Expand Down
4 changes: 2 additions & 2 deletions purs/package.json
Expand Up @@ -6,8 +6,8 @@
"purs": "purs",
"make-install": "make install",
"make-watch": "inotifywait -m -r -q -e close_write --format '%T %w%f' --timefmt '%T' src | while read FILE; do echo $FILE; make; done",
"esbuild-bundle": "esbuild ./output/Main/index.js --bundle --format=esm --target=chrome61,firefox60,edge18 --outfile=dist/app.js",
"esbuild-bundle-min": "esbuild ./output/Main/index.js --bundle --format=esm --target=chrome61,firefox60,edge18 --minify --sourcemap --outfile=dist/app.min.js"
"esbuild-bundle": "esbuild ./output/Note/index.js ./output/Add/index.js ./output/Logout/index.js ./output/Bookmarks/index.js ./output/AccountSettings/index.js --bundle --format=esm --target=chrome61,firefox60,edge18 --outdir=dist --splitting",
"esbuild-bundle-min": "esbuild ./output/Note/index.js ./output/Add/index.js ./output/Logout/index.js ./output/Bookmarks/index.js ./output/AccountSettings/index.js --bundle --format=esm --target=chrome61,firefox60,edge18 --outdir=dist --splitting --minify --sourcemap"
},
"devDependencies": {
"esbuild": "^0.19.11",
Expand Down
20 changes: 20 additions & 0 deletions purs/src/AccountSettings.purs
@@ -0,0 +1,20 @@
module AccountSettings where

import Prelude

import Component.AccountSettings (usetting)
import Data.Foldable (traverse_)
import Effect (Effect)
import Halogen.Aff as HA
import Halogen.VDom.Driver (runUI)
import Model (AccountSettings)
import Web.DOM.ParentNode (QuerySelector(..))
import ViewRendered (viewRendered)


renderAccountSettings :: String -> AccountSettings -> Effect Unit
renderAccountSettings renderElSelector accountSettings = do
HA.runHalogenAff do
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
void $ runUI (usetting accountSettings) unit el
viewRendered
19 changes: 19 additions & 0 deletions purs/src/Add.purs
@@ -0,0 +1,19 @@
module Add where

import Prelude

import Component.Add (addbmark)
import Data.Foldable (traverse_)
import Effect (Effect)
import Halogen.Aff as HA
import Halogen.VDom.Driver (runUI)
import Model (Bookmark)
import Web.DOM.ParentNode (QuerySelector(..))
import ViewRendered (viewRendered)

renderAddForm :: String -> Bookmark -> Effect Unit
renderAddForm renderElSelector bmark = do
HA.runHalogenAff do
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
void $ runUI (addbmark bmark) unit el
viewRendered
27 changes: 27 additions & 0 deletions purs/src/Bookmarks.purs
@@ -0,0 +1,27 @@
module Bookmarks where

import Prelude

import Component.TagCloud (tagcloudcomponent)
import Component.BList (blist)
import Data.Foldable (traverse_)
import Effect (Effect)
import Halogen.Aff as HA
import Halogen.VDom.Driver (runUI)
import Model (Bookmark, TagCloudMode, tagCloudModeToF)
import Web.DOM.ParentNode (QuerySelector(..))
import ViewRendered (viewRendered)


renderBookmarks :: String -> Array Bookmark -> Effect Unit
renderBookmarks renderElSelector bmarks = do
HA.runHalogenAff do
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
void $ runUI (blist bmarks) unit el
viewRendered

renderTagCloud :: String -> TagCloudMode -> Effect Unit
renderTagCloud renderElSelector tagCloudMode = do
HA.runHalogenAff do
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
void $ runUI (tagcloudcomponent (tagCloudModeToF tagCloudMode)) unit el
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
15 changes: 15 additions & 0 deletions purs/src/Core/ViewRendered.purs
@@ -0,0 +1,15 @@
module ViewRendered where

import Prelude

import Data.Foldable (traverse_)
import Effect.Aff (Aff)
import Effect.Class (liftEffect)
import Halogen.Aff as HA
import Web.DOM.Element (setAttribute)
import Web.DOM.ParentNode (QuerySelector(..))
import Web.HTML.HTMLElement (toElement)

viewRendered :: Aff Unit
viewRendered = HA.selectElement (QuerySelector "#content") >>= traverse_ \el ->
liftEffect $ setAttribute "view-rendered" "" (toElement el)
11 changes: 11 additions & 0 deletions purs/src/Logout.purs
@@ -0,0 +1,11 @@
module Logout where

import Prelude

import App (logout)
import Effect (Effect)
import Effect.Aff (launchAff)
import Web.Event.Event (Event, preventDefault)

logoutE :: Event -> Effect Unit
logoutE e = void <<< launchAff <<< logout =<< preventDefault e
70 changes: 0 additions & 70 deletions purs/src/Main.purs

This file was deleted.

27 changes: 27 additions & 0 deletions purs/src/Note.purs
@@ -0,0 +1,27 @@
module Note where

import Prelude

import Component.NList (nlist)
import Component.NNote (nnote)
import Data.Foldable (traverse_)
import Effect (Effect)
import Halogen.Aff as HA
import Halogen.VDom.Driver (runUI)
import Model (Note)
import Web.DOM.ParentNode (QuerySelector(..))
import ViewRendered (viewRendered)

renderNotes :: String -> Array Note -> Effect Unit
renderNotes renderElSelector notes = do
HA.runHalogenAff do
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
void $ runUI (nlist notes) unit el
viewRendered

renderNote :: String -> Note -> Effect Unit
renderNote renderElSelector note = do
HA.runHalogenAff do
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
void $ runUI (nnote note) unit el
viewRendered
2 changes: 1 addition & 1 deletion src/Handler/AccountSettings.hs
Expand Up @@ -16,7 +16,7 @@ getAccountSettingsR = do
|]
toWidget [hamlet|
<script type="module">
import { renderAccountSettings } from '@{StaticR js_app_min_js}'
import { renderAccountSettings } from '@{StaticR js_dist_AccountSettings_index_js}'
renderAccountSettings('##{accountSettingsEl}')(app.dat.accountSettings)();
|]

Expand Down
2 changes: 1 addition & 1 deletion src/Handler/Add.hs
Expand Up @@ -27,7 +27,7 @@ getAddViewR = do
|]
toWidget [hamlet|
<script type="module">
import { renderAddForm } from '@{StaticR js_app_min_js}'
import { renderAddForm } from '@{StaticR js_dist_Add_index_js}'
renderAddForm('##{renderEl}')(app.dat.bmark)();
|]

Expand Down
6 changes: 3 additions & 3 deletions src/Handler/Notes.hs
Expand Up @@ -41,7 +41,7 @@ getNotesR unamep@(UserNameP uname) = do
|]
toWidget [hamlet|
<script type="module">
import { renderNotes } from '@{StaticR js_app_min_js}'
import { renderNotes } from '@{StaticR js_dist_Note_index_js}'
renderNotes('##{renderEl}')(app.dat.notes)();
|]

Expand All @@ -67,7 +67,7 @@ getNoteR unamep@(UserNameP uname) slug = do
|]
toWidget [hamlet|
<script type="module">
import { renderNote } from '@{StaticR js_app_min_js}'
import { renderNote } from '@{StaticR js_dist_Note_index_js}'
renderNote('##{renderEl}')(app.dat.note)();
|]

Expand All @@ -91,7 +91,7 @@ getAddNoteViewR unamep@(UserNameP uname) = do
|]
toWidget [hamlet|
<script type="module">
import { renderNote } from '@{StaticR js_app_min_js}'
import { renderNote } from '@{StaticR js_dist_Note_index_js}'
renderNote('##{renderEl}')(app.dat.note)();
|]

Expand Down
2 changes: 1 addition & 1 deletion src/Handler/User.hs
Expand Up @@ -64,7 +64,7 @@ _getUser unamep@(UserNameP uname) sharedp' filterp' (TagsP pathtags) = do
|]
toWidget [hamlet|
<script type="module">
import { renderBookmarks, renderTagCloud } from '@{StaticR js_app_min_js}'
import { renderBookmarks, renderTagCloud } from '@{StaticR js_dist_Bookmarks_index_js}'
setTimeout(() => {
renderBookmarks('##{renderEl}')(app.dat.bmarks)();
}, 0);
Expand Down
66 changes: 0 additions & 66 deletions static/js/app.min.js

This file was deleted.

Binary file removed static/js/app.min.js.gz
Binary file not shown.

0 comments on commit e483297

Please sign in to comment.