From fe0f8d0cd64a2d8c06ec6e0a75f1ff0b721c7c4b Mon Sep 17 00:00:00 2001 From: thunderstrike <> Date: Sun, 26 Nov 2023 19:27:42 +0000 Subject: [PATCH] Initial commit --- .gitignore | 13 +++++++++++++ .prettierrc.cjs | 8 ++++++++ .tool-versions | 3 +++ bun.lockb | Bin 0 -> 53117 bytes bun/fmt.js | 27 +++++++++++++++++++++++++++ jsconfig.json | 16 ++++++++++++++++ package.json | 18 ++++++++++++++++++ spago.yaml | 21 +++++++++++++++++++++ src/Main.purs | 7 +++++++ 9 files changed, 113 insertions(+) create mode 100644 .gitignore create mode 100644 .prettierrc.cjs create mode 100644 .tool-versions create mode 100755 bun.lockb create mode 100644 bun/fmt.js create mode 100644 jsconfig.json create mode 100644 package.json create mode 100644 spago.yaml create mode 100644 src/Main.purs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ebf58ad --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +/bower_components/ +/node_modules/ +/.pulp-cache/ +/output/ +/generated-docs/ +/.psc-package/ +/.psc* +/.purs* +/.psa* +/.spago +.log +.purs-repl +.env diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..b8e1fd1 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,8 @@ +module.exports = { + tabWidth: 2, + trailingComma: 'all', + singleQuote: true, + semi: false, + arrowParens: 'avoid', + plugins: [], +} diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..598836b --- /dev/null +++ b/.tool-versions @@ -0,0 +1,3 @@ +bun 1.0.11 +purescript 0.15.12 +nodejs 20.9.0 diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..c42d05ceb16556e06bd80e7e360bf13128ae05e8 GIT binary patch literal 53117 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 PI~KK=Wm9R{|M&MVW8Q-k literal 0 HcmV?d00001 diff --git a/bun/fmt.js b/bun/fmt.js new file mode 100644 index 0000000..04b5c40 --- /dev/null +++ b/bun/fmt.js @@ -0,0 +1,27 @@ +/** @type {(parser: string, ps: string[]) => import("bun").Subprocess} */ +const prettier = (parser, ps) => + Bun.spawn(['bun', 'x', 'prettier', '--write', '--parser', parser, ...ps], { + stdout: 'inherit', + stderr: 'inherit', + }) + +const procs = [ + prettier('babel', ['./src/**/*.js', './bun/**/*.js', './.prettierrc.cjs']), + prettier('json', ['./package.json', './jsconfig.json']), + Bun.spawn( + [ + 'bun', + 'x', + 'purs-tidy', + 'format-in-place', + 'src/**/*.purs', + 'test/**/*.purs', + ], + { + stdout: 'inherit', + stderr: 'inherit', + }, + ), +] + +await Promise.all(procs.map(p => p.exited)) diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..f48b93c --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "types": ["bun-types"], + "lib": ["esnext"], + "target": "esnext", + "module": "esnext", + "moduleResolution": "bundler", + "moduleDetection": "force", + "jsx": "react", + "allowJs": true, + "checkJs": true, + "noEmit": true, + "strict": true + }, + "include": ["src/**/*.js", "bun/**/*.js"] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e446309 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "purs", + "private": true, + "module": "index.js", + "type": "module", + "scripts": { + "fmt": "bun bun/fmt.js" + }, + "devDependencies": { + "bun-types": "1.0.11", + "purs-tidy": "^0.10.0", + "spago": "next" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "dependencies": {} +} diff --git a/spago.yaml b/spago.yaml new file mode 100644 index 0000000..a8c16f6 --- /dev/null +++ b/spago.yaml @@ -0,0 +1,21 @@ +package: + dependencies: + - prelude + - aff + - effect + - either + - maybe + - foldable-traversable + - console + - newtype + - strings + - stringutils + - transformers + - tuples + - typelevel-prelude + name: project +workspace: + extra_packages: {} + package_set: + url: https://raw.githubusercontent.com/purescript/package-sets/psc-0.15.10-20230930/packages.json + hash: sha256-nTsd44o7/hrTdk0c6dh0wyBqhFFDJJIeKdQU6L1zv/A= diff --git a/src/Main.purs b/src/Main.purs new file mode 100644 index 0000000..ee561ac --- /dev/null +++ b/src/Main.purs @@ -0,0 +1,7 @@ +module Main where + +import Prelude +import Effect (Effect) + +main :: Effect Unit +main = pure unit