Skip to content

Commit b73bac8

Browse files
Merge pull request #738 from aspeddro/migrate-rescript-v11
Migrate to ReScript v11
2 parents 0c30fe8 + b45987b commit b73bac8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+895
-1523
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ lib/
2626
.vercel
2727

2828
src/**/*.mjs
29+
scripts/**/*.mjs

next.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import remarkFrontmatter from 'remark-frontmatter'
77
import remarkMdxFrontmatter from "remark-mdx-frontmatter";
88
import { createLoader } from 'simple-functional-loader'
99

10-
const bsconfig = JSON.parse(fs.readFileSync("./bsconfig.json"))
10+
const bsconfig = JSON.parse(fs.readFileSync("./rescript.json"))
1111

1212
const { ProvidePlugin } = webpack;
1313

package-lock.json

Lines changed: 19 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
"dependencies": {
1818
"@headlessui/react": "^1.2.0",
1919
"@mdx-js/loader": "^2.3.0",
20-
"@rescript/react": "^0.10.3",
21-
"@ryyppy/rescript-promise": "2.1.0",
20+
"@rescript/react": "^0.12.0-alpha.3",
2221
"codemirror": "^5.54.0",
2322
"docson": "^2.1.0",
2423
"eslint-config-next": "^13.1.1",
@@ -60,7 +59,7 @@
6059
"postcss": "^8.4.27",
6160
"postcss-cli": "^8.3.0",
6261
"reanalyze": "^2.16.0",
63-
"rescript": "^10.1.4",
62+
"rescript": "^11.0.0-rc.6",
6463
"simple-functional-loader": "^1.2.1",
6564
"tailwindcss": "^3.3.3"
6665
}

pages/try.js

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1 @@
1-
import dynamic from "next/dynamic";
2-
3-
export { getStaticProps } from "src/Try.mjs";
4-
import Try from "src/Try.mjs";
5-
6-
const Playground = dynamic(() => import("src/Playground.mjs"), {
7-
ssr: false,
8-
loading: () => <span>Loading...</span>
9-
});
10-
11-
function Comp(props) {
12-
return (
13-
<Try>
14-
<Playground {...props} />
15-
</Try>
16-
);
17-
}
18-
19-
export default Comp;
1+
export { getStaticProps, default } from "src/Try.mjs";

bsconfig.json renamed to rescript.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"name": "rescript-lang.org",
33
"namespace": false,
4-
"reason": {
5-
"react-jsx": 3
4+
"jsx": {
5+
"version": 4
66
},
77
"bs-dependencies": [
8-
"@rescript/react",
9-
"@ryyppy/rescript-promise"
8+
"@rescript/react"
109
],
10+
"uncurried": true,
1111
"ppx-flags": [],
1212
"sources": [
1313
{

scripts/generate_feed.mjs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/Blog.res

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,7 @@ module BlogCard = {
101101
<Badge badge />
102102
</div>
103103
}}
104-
<Link
105-
href="/blog/[slug]"
106-
_as={"/blog/" ++ slug}
107-
className="relative hl-title block mb-4 pt-9/16">
104+
<Link href={`/blog/${slug}`} className="relative hl-title block mb-4 pt-9/16">
108105
{
109106
let className = "absolute top-0 h-full w-full object-cover"
110107
switch previewImg {
@@ -115,7 +112,7 @@ module BlogCard = {
115112
</Link>
116113
</div>
117114
<div className="px-2">
118-
<Link href="/blog/[slug]" _as={"/blog/" ++ slug}>
115+
<Link href={`/blog/${slug}`}>
119116
<h2 className="hl-4"> {React.string(title)} </h2>
120117
</Link>
121118
<div className="captions text-gray-40 pt-1">
@@ -156,7 +153,7 @@ module FeatureCard = {
156153
~maxHeight="25.4375rem",
157154
(),
158155
)}>
159-
<Link href="/blog/[slug]" _as={"/blog/" ++ slug} className="relative block pt-2/3">
156+
<Link href={`/blog/${slug}`} className="relative block pt-2/3">
160157
{switch badge {
161158
| Some(badge) =>
162159
<div className="absolute z-10 top-0 mt-10 ml-4 lg:-ml-4">
@@ -202,7 +199,7 @@ module FeatureCard = {
202199
<p className="body-md text-gray-70"> {React.string(firstParagraph)} </p>
203200
</div>
204201
</div>
205-
<Link href="/blog/[slug]" _as={"/blog/" ++ slug}>
202+
<Link href={`/blog/${slug}`}>
206203
<Button> {React.string("Read Article")} </Button>
207204
</Link>
208205
</div>
@@ -304,13 +301,13 @@ let default = (props: props): React.element => {
304301
<Navigation overlayState />
305302
<div className="flex justify-center overflow-hidden">
306303
<main className="min-w-320 lg:align-center w-full lg:px-0 max-w-1280 pb-48">
307-
<Mdx.Provider components=Markdown.default>
304+
<MdxProvider components=MarkdownComponents.default>
308305
<div className="flex justify-center">
309306
<div className="w-full" style={ReactDOMStyle.make(~maxWidth="66.625rem", ())}>
310307
content
311308
</div>
312309
</div>
313-
</Mdx.Provider>
310+
</MdxProvider>
314311
</main>
315312
</div>
316313
<Footer />

src/BlogArticle.res

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module Params = {
2222
type t = {slug: string}
2323
}
2424

25-
type props = {mdxSource: Mdx.Remote.output, isArchived: bool, path: string}
25+
type props = {mdxSource: MdxRemote.output, isArchived: bool, path: string}
2626

2727
module Line = {
2828
@react.component
@@ -116,29 +116,16 @@ module BlogHeader = {
116116
}
117117
}
118118

119-
type remarkPlugin
120-
@module("remark-comment") external remarkComment: remarkPlugin = "default"
121-
@module("remark-gfm") external remarkGfm: remarkPlugin = "default"
122-
@module("remark-frontmatter") external remarkFrontmatter: remarkPlugin = "default"
123-
124-
let mdxOptions = {"remarkPlugins": [remarkComment, remarkGfm, remarkFrontmatter]}
125-
126-
external asProps: {..} => {"props": Mdx.Remote.output} = "%identity"
127-
128119
let default = (props: props) => {
129120
let {mdxSource, isArchived, path} = props
130121

131-
let mdxProps = {
132-
"frontmatter": mdxSource.frontmatter,
133-
"scope": mdxSource.scope,
134-
"compiledSource": mdxSource.compiledSource,
135-
"components": Markdown.default,
136-
"options": {
137-
"mdxOptions": mdxOptions,
138-
},
139-
}
140-
141-
let children = React.createElement(Mdx.MDXRemote.make, asProps(mdxProps))
122+
let children =
123+
<MdxRemote
124+
frontmatter={mdxSource.frontmatter}
125+
compiledSource={mdxSource.compiledSource}
126+
scope={mdxSource.scope}
127+
components={MarkdownComponents.default}
128+
/>
142129

143130
let fm = mdxSource.frontmatter->BlogFrontmatter.decode
144131

@@ -230,11 +217,11 @@ let getStaticProps: Next.GetStaticProps.t<props, Params.t> = async ctx => {
230217

231218
let isArchived = Js.String2.startsWith(path, "archive/")
232219

233-
let source = filePath->Node.Fs.readFileSync(#utf8)
220+
let source = filePath->Node.Fs.readFileSync
234221

235-
let mdxSource = await Mdx.Remote.serialize(
222+
let mdxSource = await MdxRemote.serialize(
236223
source,
237-
{"parseFrontmatter": true, "mdxOptions": mdxOptions},
224+
{parseFrontmatter: true, mdxOptions: MdxRemote.defaultMdxOptions},
238225
)
239226

240227
let props = {mdxSource, isArchived, path}

src/BlogArticle.resi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module Params: {
22
type t = {slug: string}
33
}
44

5-
type props = {mdxSource: Mdx.Remote.output, isArchived: bool, path: string}
5+
type props = {mdxSource: MdxRemote.output, isArchived: bool, path: string}
66

77
let default: props => React.element
88

0 commit comments

Comments
 (0)