diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 9d6a62b..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "extends": "eslint:recommended", - "parserOptions": { "ecmaVersion": 6, "sourceType": "module" }, - "rules": { - "block-scoped-var": "error", - "consistent-return": "error", - "eqeqeq": "error", - "guard-for-in": "error", - "no-bitwise": "error", - "no-caller": "error", - "no-extra-parens": "off", - "no-extend-native": "error", - "no-loop-func": "error", - "no-new": "error", - "no-param-reassign": "error", - "no-return-assign": "error", - "no-sequences": "error", - "no-unused-expressions": "error", - "no-use-before-define": "error", - "no-undef": "error", - "no-eq-null": "error", - "radix": ["error", "always"], - "indent": ["error", 2, { "SwitchCase": 1 }], - "quotes": ["error", "double"], - "semi": ["error", "always"], - "strict": ["error", "global"] - } -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fc54710..89cbf03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,37 +9,36 @@ on: jobs: build: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - name: Set up PureScript toolchain + - name: Set up a PureScript toolchain uses: purescript-contrib/setup-purescript@main with: - purescript: "unstable" + purescript: "latest" purs-tidy: "latest" + spago: "unstable" - name: Cache PureScript dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: - key: ${{ runner.os }}-spago-${{ hashFiles('**/*.dhall') }} + key: ${{ runner.os }}-spago-${{ hashFiles('**/spago.lock') }} path: | .spago output - - name: Set up Node toolchain - uses: actions/setup-node@v2 - with: - node-version: "14.x" + - name: Setup node and npm + uses: actions/setup-node@v4 - name: Cache NPM dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 env: cache-name: cache-node-modules with: path: ~/.npm - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }} + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/package.json') }} restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}- ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- @@ -47,20 +46,11 @@ jobs: - name: Install NPM dependencies run: npm install - - name: Build the project - run: npm run build + - name: Build source + run: spago build --censor-stats --strict --ensure-ranges --pedantic-packages - name: Run tests - run: npm run test + run: spago test --offline --censor-stats --strict --pedantic-packages - - name: Check formatting + - name: Verify formatting run: purs-tidy check src test - - - name: Verify Bower & Pulp - run: | - npm install bower pulp@16.0.0-0 - npx bower install - npx pulp build -- --censor-lib --strict - if [ -d "test" ]; then - npx pulp test - fi diff --git a/bower.json b/bower.json deleted file mode 100644 index 6709f7a..0000000 --- a/bower.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "purescript-react", - "homepage": "https://github.com/purescript-contrib/purescript-react", - "description": "PureScript bindings for react", - "main": "", - "keywords": [ - "purescript", - "react" - ], - "license": "MIT", - "ignore": [ - "*", - "!src/**/*" - ], - "repository": { - "type": "git", - "url": "https://github.com/purescript-contrib/purescript-react.git" - }, - "dependencies": { - "purescript-effect": "^4.0.0", - "purescript-exceptions": "^6.0.0", - "purescript-maybe": "^6.0.0", - "purescript-nullable": "^6.0.0", - "purescript-prelude": "^6.0.0", - "purescript-typelevel-prelude": "^7.0.0", - "purescript-unsafe-coerce": "^6.0.0" - }, - "devDependencies": { - "purescript-console": "^6.0.0" - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..1baba1b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,11 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import pluginReact from "eslint-plugin-react"; + + +export default [ + {files: ["**/*.{js,mjs,cjs,jsx}"]}, + {languageOptions: { globals: globals.browser }}, + pluginJs.configs.recommended, + pluginReact.configs.flat.recommended, +]; \ No newline at end of file diff --git a/package.json b/package.json index 5617636..7bec000 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,10 @@ { "private": true, "scripts": { - "build": "spago build --purs-args '--censor-lib --strict'", - "test": "spago test --no-install" + "build": "spago build --censor-stats --strict --ensure-ranges --pedantic-packages", + "test": "spago test --offline" }, "devDependencies": { - "eslint": "^7.10.0", - "purescript-psa": "^0.8.2" + "eslint": "^9.12.0" } } diff --git a/packages.dhall b/packages.dhall deleted file mode 100644 index bc9c4ee..0000000 --- a/packages.dhall +++ /dev/null @@ -1,5 +0,0 @@ -let upstream = - https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20221208/packages.dhall - sha256:e3549e48d0170e14838d8f0c44172253947dcb6117b51a763f33dca34f00ba43 - -in upstream diff --git a/spago.dhall b/spago.dhall deleted file mode 100644 index 0119ab6..0000000 --- a/spago.dhall +++ /dev/null @@ -1,14 +0,0 @@ -{ name = "react" -, dependencies = - [ "console" - , "effect" - , "exceptions" - , "maybe" - , "nullable" - , "prelude" - , "typelevel-prelude" - , "unsafe-coerce" - ] -, packages = ./packages.dhall -, sources = [ "src/**/*.purs", "test/**/*.purs" ] -} diff --git a/spago.yaml b/spago.yaml new file mode 100644 index 0000000..7fb200d --- /dev/null +++ b/spago.yaml @@ -0,0 +1,22 @@ +package: + name: react + description: PureScript bindings for react + publish: + license: MIT + version: 12.0.0 + location: + githubOwner: purescript-contrib + githubRepo: purescript-react + dependencies: + - effect: ">=4.0.0 <5.0.0" + - exceptions: ">=6.1.0 <7.0.0" + - maybe: ">=6.0.0 <7.0.0" + - nullable: ">=6.0.0 <7.0.0" + - prelude: ">=6.0.1 <7.0.0" + - typelevel-prelude: ">=7.0.0 <8.0.0" + - unsafe-coerce: ">=6.0.0 <7.0.0" + test: + main: Test.Main + dependencies: + - console +workspace: {} diff --git a/test/Main.purs b/test/Test/Main.purs similarity index 100% rename from test/Main.purs rename to test/Test/Main.purs