Merge pull request #27 from itsMapleLeaf/update-lint
This commit is contained in:
@@ -1,77 +0,0 @@
|
||||
{
|
||||
"root": true,
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es2021": true,
|
||||
"node": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:@typescript-eslint/recommended-requiring-type-checking",
|
||||
"plugin:@typescript-eslint/stylistic",
|
||||
"plugin:@typescript-eslint/stylistic-type-checked",
|
||||
"plugin:astro/recommended",
|
||||
"prettier"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": "latest",
|
||||
"sourceType": "module",
|
||||
"project": true
|
||||
},
|
||||
"plugins": ["@typescript-eslint", "react"],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-unsafe-argument": "off",
|
||||
"@typescript-eslint/no-unsafe-member-access": "off",
|
||||
"@typescript-eslint/no-unsafe-assignment": "off",
|
||||
"@typescript-eslint/no-unsafe-return": "off",
|
||||
"@typescript-eslint/require-await": "off",
|
||||
"@typescript-eslint/no-explicit-any": "warn",
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"warn",
|
||||
{ "argsIgnorePattern": "^_", "ignoreRestSiblings": true }
|
||||
],
|
||||
"@typescript-eslint/no-empty-function": "off"
|
||||
},
|
||||
"ignorePatterns": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
".astro",
|
||||
"packages/website/public/api"
|
||||
],
|
||||
"settings": {
|
||||
"react": {
|
||||
"version": "detect"
|
||||
}
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.tsx", "*.jsx"],
|
||||
"extends": [
|
||||
"plugin:react/recommended",
|
||||
"plugin:react/jsx-runtime",
|
||||
"plugin:react-hooks/recommended"
|
||||
],
|
||||
"rules": {
|
||||
"react/prop-types": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["*.astro"],
|
||||
"parser": "astro-eslint-parser",
|
||||
"parserOptions": {
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"extraFileExtensions": [".astro"]
|
||||
},
|
||||
"globals": {
|
||||
"astroHTML": "readonly"
|
||||
},
|
||||
"rules": {
|
||||
"react/no-unknown-property": "off",
|
||||
"react/jsx-key": "off",
|
||||
"react/jsx-no-undef": "off"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
name: lint
|
||||
name: tests
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -15,21 +15,30 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
tests:
|
||||
name: ${{ matrix.script }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
script: ["prettier", "eslint", "tsc", "tsc-root"]
|
||||
name: lint (${{ matrix.script }})
|
||||
runs-on: ubuntu-latest
|
||||
script:
|
||||
- lint
|
||||
- build
|
||||
- test
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: node_modules
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
node-version: 18
|
||||
cache: pnpm
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm run lint:${{ matrix.script }}
|
||||
- run: pnpm run ${{ matrix.script }}
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
if: always()
|
||||
30
.github/workflows/unit-test.yml
vendored
30
.github/workflows/unit-test.yml
vendored
@@ -1,30 +0,0 @@
|
||||
name: unit test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
TEST_BOT_TOKEN: ${{ secrets.TEST_BOT_TOKEN }}
|
||||
TEST_CHANNEL_ID: ${{ secrets.TEST_CHANNEL_ID }}
|
||||
TEST_GUILD_ID: ${{ secrets.TEST_GUILD_ID }}
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
cache: pnpm
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm test
|
||||
@@ -1,2 +1,3 @@
|
||||
pnpm-lock.yaml
|
||||
/packages/website/public/api
|
||||
.astro
|
||||
|
||||
18
.prettierrc
18
.prettierrc
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"semi": false,
|
||||
"useTabs": true,
|
||||
"htmlWhitespaceSensitivity": "ignore",
|
||||
"plugins": [
|
||||
"prettier-plugin-jsdoc",
|
||||
"prettier-plugin-astro",
|
||||
"prettier-plugin-tailwindcss"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": "*.astro",
|
||||
"options": {
|
||||
"parser": "astro"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
85
package.json
85
package.json
@@ -1,42 +1,47 @@
|
||||
{
|
||||
"name": "reacord-monorepo",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"lint": "run-p --print-label --continue-on-error --silent lint:*",
|
||||
"lint:prettier": "prettier --cache --check .",
|
||||
"lint:eslint": "pnpm astro-sync && eslint . --report-unused-disable-directives",
|
||||
"lint:tsc": "pnpm astro-sync && pnpm -r --parallel --no-bail exec tsc -b",
|
||||
"lint:tsc-root": "tsc -b",
|
||||
"astro-sync": "pnpm --filter website exec astro sync",
|
||||
"format": "run-s --continue-on-error format:*",
|
||||
"format:eslint": "eslint . --report-unused-disable-directives --fix",
|
||||
"format:prettier": "prettier --cache --write .",
|
||||
"test": "vitest",
|
||||
"build": "pnpm -r run build",
|
||||
"build:website": "pnpm --filter website... run build",
|
||||
"start": "pnpm -C packages/website run start",
|
||||
"start:website": "pnpm -C packages/website run start",
|
||||
"release": "pnpm -r run build && changeset publish"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@changesets/cli": "^2.26.2",
|
||||
"@itsmapleleaf/configs": "^3.0.1",
|
||||
"@types/eslint": "^8.44.2",
|
||||
"@typescript-eslint/eslint-plugin": "^6.4.0",
|
||||
"@typescript-eslint/parser": "^6.4.0",
|
||||
"eslint": "^8.47.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-astro": "^0.28.0",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^3.0.2",
|
||||
"prettier-plugin-astro": "^0.11.1",
|
||||
"prettier-plugin-jsdoc": "^1.0.1",
|
||||
"prettier-plugin-tailwindcss": "^0.5.3",
|
||||
"react": "^18.2.0",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"typescript": "^5.1.6",
|
||||
"vitest": "^0.34.1"
|
||||
}
|
||||
"name": "reacord-monorepo",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"lint": "run-s --continue-on-error lint:*",
|
||||
"lint:eslint": "eslint . --fix --cache --cache-file=node_modules/.cache/.eslintcache --report-unused-disable-directives",
|
||||
"lint:prettier": "prettier . --write --cache --list-different",
|
||||
"lint:types": "tsc -b & pnpm -r --parallel run typecheck",
|
||||
"astro-sync": "pnpm --filter website exec astro sync",
|
||||
"format": "run-s --continue-on-error format:*",
|
||||
"format:eslint": "eslint . --report-unused-disable-directives --fix",
|
||||
"format:prettier": "prettier --cache --write .",
|
||||
"test": "vitest",
|
||||
"build": "pnpm -r run build",
|
||||
"build:website": "pnpm --filter website... run build",
|
||||
"start": "pnpm -C packages/website run start",
|
||||
"start:website": "pnpm -C packages/website run start",
|
||||
"release": "pnpm -r run build && changeset publish"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@changesets/cli": "^2.26.2",
|
||||
"@itsmapleleaf/configs": "github:itsMapleLeaf/configs",
|
||||
"eslint": "^8.50.0",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^3.0.3",
|
||||
"react": "^18.2.0",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"typescript": "^5.2.2",
|
||||
"vitest": "^0.34.5"
|
||||
},
|
||||
"prettier": "@itsmapleleaf/configs/prettier",
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"./node_modules/@itsmapleleaf/configs/eslint.config.cjs",
|
||||
"./node_modules/@itsmapleleaf/configs/eslint.config.react.cjs"
|
||||
],
|
||||
"ignorePatterns": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"packages/website/public/api"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-non-null-assertion": "warn",
|
||||
"@typescript-eslint/require-await": "off"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{
|
||||
"name": "@reacord/helpers",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@types/lodash-es": "^4.17.8",
|
||||
"lodash-es": "^4.17.21",
|
||||
"type-fest": "^4.2.0",
|
||||
"vitest": "^0.34.1"
|
||||
}
|
||||
"name": "@reacord/helpers",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"typecheck": "tsc -b"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/lodash-es": "^4.17.9",
|
||||
"lodash-es": "^4.17.21",
|
||||
"type-fest": "^4.3.2",
|
||||
"vitest": "^0.34.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ export async function retryWithTimeout<T>(
|
||||
callback: () => Promise<T> | T,
|
||||
): Promise<T> {
|
||||
const startTime = Date.now()
|
||||
// eslint-disable-next-line no-constant-condition
|
||||
// eslint-disable-next-line no-constant-condition, @typescript-eslint/no-unnecessary-condition
|
||||
while (true) {
|
||||
try {
|
||||
return await callback()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { LooseOmit, LoosePick, typeEquals } from "./types.ts"
|
||||
import { type LooseOmit, type LoosePick, typeEquals } from "./types.ts"
|
||||
|
||||
typeEquals<LoosePick<{ a: 1; b: 2 }, "a">, { a: 1 }>(true)
|
||||
typeEquals<LooseOmit<{ a: 1; b: 2 }, "a">, { b: 2 }>(true)
|
||||
|
||||
@@ -2,7 +2,7 @@ import { raise } from "./raise.ts"
|
||||
|
||||
export type MaybePromise<T> = T | PromiseLike<T>
|
||||
|
||||
export type ValueOf<Type> = Type extends readonly (infer Value)[]
|
||||
export type ValueOf<Type> = Type extends ReadonlyArray<infer Value>
|
||||
? Value
|
||||
: Type[keyof Type]
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { setTimeout } from "node:timers/promises"
|
||||
import { MaybePromise } from "./types.ts"
|
||||
import type { MaybePromise } from "./types.ts"
|
||||
|
||||
const maxTime = 1000
|
||||
|
||||
@@ -18,5 +18,6 @@ export async function waitFor<Result>(
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-throw-literal
|
||||
throw lastError ?? new Error("Timeout")
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { snakeCaseDeep } from "@reacord/helpers/convert-object-property-case"
|
||||
import { omit } from "@reacord/helpers/omit"
|
||||
import React from "react"
|
||||
import type React from "react"
|
||||
import { ReacordElement } from "../../internal/element.js"
|
||||
import type { MessageOptions } from "../../internal/message"
|
||||
import { Node } from "../../internal/node.js"
|
||||
@@ -17,7 +17,7 @@ export interface EmbedProps {
|
||||
description?: string
|
||||
url?: string
|
||||
color?: number
|
||||
fields?: { name: string; value: string; inline?: boolean }[]
|
||||
fields?: Array<{ name: string; value: string; inline?: boolean }>
|
||||
author?: { name: string; url?: string; iconUrl?: string }
|
||||
thumbnail?: { url: string }
|
||||
image?: { url: string }
|
||||
|
||||
@@ -374,6 +374,8 @@ function getDiscordMessageOptions(reacordOptions: MessageOptions) {
|
||||
}
|
||||
}
|
||||
|
||||
// future proofing
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
if (component.type === "select") {
|
||||
return {
|
||||
...component,
|
||||
@@ -394,7 +396,7 @@ function getDiscordMessageOptions(reacordOptions: MessageOptions) {
|
||||
})),
|
||||
}
|
||||
|
||||
if (!options.content && !options.embeds?.length) {
|
||||
if (!options.content && !options.embeds.length) {
|
||||
options.content = "_ _"
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ export class Container<T> {
|
||||
}
|
||||
|
||||
findType<U extends T>(
|
||||
type: new (...args: NonNullable<unknown>[]) => U,
|
||||
type: new (...args: Array<NonNullable<unknown>>) => U,
|
||||
): U | undefined {
|
||||
for (const item of this.items) {
|
||||
if (item instanceof type) return item
|
||||
|
||||
@@ -1,90 +1,91 @@
|
||||
{
|
||||
"name": "reacord",
|
||||
"type": "module",
|
||||
"description": "Create interactive Discord messages using React.",
|
||||
"version": "0.5.2",
|
||||
"types": "./dist/main.d.ts",
|
||||
"homepage": "https://reacord.mapleleaf.dev",
|
||||
"repository": "https://github.com/itsMapleLeaf/reacord.git",
|
||||
"changelog": "https://github.com/itsMapleLeaf/reacord/releases",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"discord",
|
||||
"discord-js",
|
||||
"react",
|
||||
"react-js",
|
||||
"react-renderer",
|
||||
"interaction",
|
||||
"message",
|
||||
"embed",
|
||||
"reacord"
|
||||
],
|
||||
"files": [
|
||||
"library",
|
||||
"dist",
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/main.js",
|
||||
"require": "./dist/main.cjs",
|
||||
"types": "./library/main.ts"
|
||||
},
|
||||
"./package.json": {
|
||||
"import": "./package.json",
|
||||
"require": "./package.json"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"build": "cpy ../../README.md ../../LICENSE . && tsup library/main.ts --target node16 --format cjs,esm --sourcemap",
|
||||
"build-watch": "pnpm build -- --watch",
|
||||
"test": "vitest --coverage --no-watch",
|
||||
"test-dev": "vitest",
|
||||
"test-manual": "nodemon --exec tsx --ext ts,tsx ./scripts/discordjs-manual-test.tsx"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": "^20.5.0",
|
||||
"@types/react": "^18.2.20",
|
||||
"@types/react-reconciler": "^0.28.2",
|
||||
"react-reconciler": "^0.29.0",
|
||||
"rxjs": "^7.8.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"discord.js": "^14",
|
||||
"react": ">=17"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"discord.js": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@reacord/helpers": "workspace:*",
|
||||
"@types/lodash-es": "^4.17.8",
|
||||
"c8": "^8.0.1",
|
||||
"cpy-cli": "^5.0.0",
|
||||
"discord.js": "^14.12.1",
|
||||
"dotenv": "^16.3.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"nodemon": "^3.0.1",
|
||||
"prettier": "^3.0.2",
|
||||
"pretty-ms": "^8.0.0",
|
||||
"react": "^18.2.0",
|
||||
"tsup": "^7.2.0",
|
||||
"tsx": "^3.12.7",
|
||||
"type-fest": "^4.2.0"
|
||||
},
|
||||
"release-it": {
|
||||
"git": {
|
||||
"commitMessage": "release v${version}"
|
||||
},
|
||||
"github": {
|
||||
"release": true,
|
||||
"web": true
|
||||
}
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
"name": "reacord",
|
||||
"type": "module",
|
||||
"description": "Create interactive Discord messages using React.",
|
||||
"version": "0.5.2",
|
||||
"types": "./dist/main.d.ts",
|
||||
"homepage": "https://reacord.mapleleaf.dev",
|
||||
"repository": "https://github.com/itsMapleLeaf/reacord.git",
|
||||
"changelog": "https://github.com/itsMapleLeaf/reacord/releases",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"discord",
|
||||
"discord-js",
|
||||
"react",
|
||||
"react-js",
|
||||
"react-renderer",
|
||||
"interaction",
|
||||
"message",
|
||||
"embed",
|
||||
"reacord"
|
||||
],
|
||||
"files": [
|
||||
"library",
|
||||
"dist",
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/main.js",
|
||||
"require": "./dist/main.cjs",
|
||||
"types": "./library/main.ts"
|
||||
},
|
||||
"./package.json": {
|
||||
"import": "./package.json",
|
||||
"require": "./package.json"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"build": "cpy ../../README.md ../../LICENSE . && tsup library/main.ts --target node16 --format cjs,esm --sourcemap",
|
||||
"build-watch": "pnpm build -- --watch",
|
||||
"test": "vitest --coverage --no-watch",
|
||||
"test-dev": "vitest",
|
||||
"test-manual": "nodemon --exec tsx --ext ts,tsx ./scripts/discordjs-manual-test.tsx",
|
||||
"typecheck": "tsc -b"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": "^20.7.0",
|
||||
"@types/react": "^18.2.23",
|
||||
"@types/react-reconciler": "^0.28.5",
|
||||
"react-reconciler": "^0.29.0",
|
||||
"rxjs": "^7.8.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"discord.js": "^14",
|
||||
"react": ">=17"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"discord.js": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@reacord/helpers": "workspace:*",
|
||||
"@types/lodash-es": "^4.17.9",
|
||||
"c8": "^8.0.1",
|
||||
"cpy-cli": "^5.0.0",
|
||||
"discord.js": "^14.13.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"nodemon": "^3.0.1",
|
||||
"prettier": "^3.0.3",
|
||||
"pretty-ms": "^8.0.0",
|
||||
"react": "^18.2.0",
|
||||
"tsup": "^7.2.0",
|
||||
"tsx": "^3.13.0",
|
||||
"type-fest": "^4.3.2"
|
||||
},
|
||||
"release-it": {
|
||||
"git": {
|
||||
"commitMessage": "release v${version}"
|
||||
},
|
||||
"github": {
|
||||
"release": true,
|
||||
"web": true
|
||||
}
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ for (const [, channel] of category.children.cache) {
|
||||
let prefix = 0
|
||||
const createTest = async (
|
||||
name: string,
|
||||
block: (channel: TextChannel) => void | Promise<unknown>,
|
||||
block: (channel: TextChannel) => unknown,
|
||||
) => {
|
||||
prefix += 1
|
||||
const channel = await category.children.create({
|
||||
|
||||
@@ -1,39 +1,40 @@
|
||||
{
|
||||
"type": "module",
|
||||
"name": "website",
|
||||
"version": "0.4.3",
|
||||
"private": true,
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"dev": "run-p --race --print-label dev:*",
|
||||
"dev:typedoc": "typedoc --watch",
|
||||
"dev:astro": "astro dev",
|
||||
"start": "astro preview",
|
||||
"build": "typedoc && astro build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/prefetch": "^0.3.0",
|
||||
"@astrojs/react": "^2.2.2",
|
||||
"@fontsource/jetbrains-mono": "^4.5.12",
|
||||
"@fontsource/rubik": "^4.5.14",
|
||||
"@heroicons/react": "^2.0.18",
|
||||
"@tailwindcss/typography": "^0.5.9",
|
||||
"astro": "^2.10.9",
|
||||
"clsx": "^2.0.0",
|
||||
"reacord": "workspace:*",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"tailwind-merge": "^1.14.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@astrojs/tailwind": "^4.0.0",
|
||||
"@total-typescript/ts-reset": "^0.4.2",
|
||||
"@types/node": "^20.5.0",
|
||||
"@types/react": "^18.2.20",
|
||||
"@types/react-dom": "^18.2.7",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"typedoc": "^0.24.8",
|
||||
"wait-on": "^7.0.1"
|
||||
}
|
||||
"type": "module",
|
||||
"name": "website",
|
||||
"version": "0.4.3",
|
||||
"private": true,
|
||||
"sideEffects": false,
|
||||
"scripts": {
|
||||
"dev": "run-p --race --print-label dev:*",
|
||||
"dev:typedoc": "typedoc --watch",
|
||||
"dev:astro": "astro dev",
|
||||
"start": "astro preview",
|
||||
"build": "typedoc && astro build",
|
||||
"typecheck": "astro check && tsc -b"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/prefetch": "^0.3.0",
|
||||
"@astrojs/react": "^2.2.2",
|
||||
"@fontsource/jetbrains-mono": "^4.5.12",
|
||||
"@fontsource/rubik": "^4.5.14",
|
||||
"@heroicons/react": "^2.0.18",
|
||||
"@tailwindcss/typography": "^0.5.10",
|
||||
"astro": "^2.10.9",
|
||||
"clsx": "^2.0.0",
|
||||
"reacord": "workspace:*",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"tailwind-merge": "^1.14.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@astrojs/tailwind": "^4.0.0",
|
||||
"@total-typescript/ts-reset": "^0.5.1",
|
||||
"@types/node": "^20.7.0",
|
||||
"@types/react": "^18.2.23",
|
||||
"@types/react-dom": "^18.2.8",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"typedoc": "^0.25.1",
|
||||
"wait-on": "^7.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ export function LandingAnimation() {
|
||||
let running = true
|
||||
|
||||
void (async () => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
while (running) {
|
||||
setState(defaultState)
|
||||
await delay(700)
|
||||
@@ -102,6 +103,7 @@ export function LandingAnimation() {
|
||||
let running = true
|
||||
|
||||
void (async () => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
while (running) {
|
||||
// check if the cursor is in the input
|
||||
const cursorRect = cursorRef.current!.getBoundingClientRect()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
import { type GetStaticPaths } from "astro"
|
||||
import type { GetStaticPaths } from "astro"
|
||||
import { getCollection, type CollectionEntry } from "astro:content"
|
||||
import AppFooter from "~/components/app-footer.astro"
|
||||
import Layout from "~/components/layout.astro"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Config } from "tailwindcss"
|
||||
import type { Config } from "tailwindcss"
|
||||
import config from "../../tailwind.config.ts"
|
||||
|
||||
export default {
|
||||
|
||||
1421
pnpm-lock.yaml
generated
1421
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,3 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowImportingTsExtensions": true,
|
||||
"allowJs": true,
|
||||
"checkJs": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "bundler",
|
||||
"noEmit": true,
|
||||
"noUncheckedIndexedAccess": true,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
"target": "esnext"
|
||||
}
|
||||
"extends": "@itsmapleleaf/configs/tsconfig"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user