diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 8add957..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -ignore-workspace-root-check = true diff --git a/package.json b/package.json index 7e2dfbc..772f5a1 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,36 @@ { - "private": true, + "name": "reacord", "type": "module", + "description": "send reactive discord messages using react components ⚛", + "version": "0.0.0", + "types": "./dist/main.d.ts", + "files": [ + "dist" + ], + "exports": { + "import": "./dist/main.js", + "require": "./dist/main.cjs" + }, "scripts": { - "build": "pnpm -C packages/reacord build", + "build": "tsup-node src/main.ts --target node16 --format cjs,esm --dts --sourcemap", "build-watch": "pnpm -C packages/reacord build -- --watch", "lint": "eslint --ext js,ts,tsx .", "lint-fix": "pnpm lint -- --fix", "format": "prettier --write .", - "test": "pnpm build && pnpm test-only", - "test-only": "vitest", - "coverage": "pnpm build && vitest --coverage", - "typecheck": "pnpm build && tsc --noEmit" + "test": "vitest", + "coverage": "vitest --coverage", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@types/node": "*", + "@types/react": "*", + "@types/react-reconciler": "^0.26.4", + "immer": "^9.0.7", + "react-reconciler": "^0.26.2" + }, + "peerDependencies": { + "discord.js": "^13.3", + "react": ">=17" }, "devDependencies": { "@itsmapleleaf/configs": "^1.1.2", @@ -30,7 +50,13 @@ "should": "^13.2.3", "typescript": "^4.5.4", "vite": "^2.7.4", - "vitest": "^0.0.102" + "vitest": "^0.0.102", + "discord.js": "^13.3.1", + "dotenv": "^10.0.0", + "esbuild": "^0.14.6", + "nanoid": "^3.1.30", + "react": "^17.0.2", + "tsup": "^5.11.6" }, "eslintConfig": { "extends": [ diff --git a/packages/helpers/package.json b/packages/helpers/package.json deleted file mode 100644 index 3b44ae1..0000000 --- a/packages/helpers/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "reacord-helpers", - "private": true, - "devDependencies": { - "@types/node": "^16.11.14" - } -} diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json deleted file mode 100644 index e53acae..0000000 --- a/packages/integration-tests/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "reacord-integration-tests", - "private": true, - "dependencies": { - "@types/react": "*", - "@types/node": "^17.0.1", - "discord.js": "^13.3.1", - "dotenv": "^10.0.0", - "reacord": "workspace:*", - "reacord-helpers": "workspace:*", - "react": "^17.0.2" - } -} diff --git a/packages/integration-tests/tsconfig.json b/packages/integration-tests/tsconfig.json deleted file mode 100644 index f05876c..0000000 --- a/packages/integration-tests/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tsconfig", - "include": ["**/*", "node_modules/reacord/dist"] -} diff --git a/packages/reacord/package.json b/packages/reacord/package.json deleted file mode 100644 index b95c917..0000000 --- a/packages/reacord/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "reacord", - "type": "module", - "description": "send reactive discord messages using react components ⚛", - "version": "0.0.0", - "types": "./dist/main.d.ts", - "files": [ - "dist" - ], - "exports": { - "import": "./dist/main.js", - "require": "./dist/main.cjs" - }, - "scripts": { - "build": "tsup src/main.ts --clean --target node16 --format cjs,esm --dts --sourcemap" - }, - "keywords": [], - "author": "itsMapleLeaf", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/react": "*", - "@types/react-reconciler": "^0.26.4", - "immer": "^9.0.7", - "react-reconciler": "^0.26.2" - }, - "peerDependencies": { - "discord.js": "^13.3", - "react": "^17.0.2" - }, - "devDependencies": { - "discord.js": "^13.3.1", - "dotenv": "^10.0.0", - "esbuild": "^0.14.6", - "nanoid": "^3.1.30", - "reacord-helpers": "workspace:*", - "react": "^17.0.2", - "tsup": "^5.11.6" - } -} diff --git a/packages/reacord/src/main.ts b/packages/reacord/src/main.ts deleted file mode 100644 index 67e81d1..0000000 --- a/packages/reacord/src/main.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./embed.js" -export * from "./root.js" -export * from "./text.js" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0258312..cf7faee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,10 +5,16 @@ importers: .: specifiers: '@itsmapleleaf/configs': ^1.1.2 + '@types/node': '*' + '@types/react': '*' + '@types/react-reconciler': ^0.26.4 '@typescript-eslint/eslint-plugin': ^5.8.0 '@typescript-eslint/parser': ^5.8.0 c8: ^7.10.0 chai: ^4.3.4 + discord.js: ^13.3.1 + dotenv: ^10.0.0 + esbuild: ^0.14.6 eslint: ^8.5.0 eslint-config-prettier: ^8.3.0 eslint-import-resolver-typescript: ^2.5.0 @@ -17,17 +23,31 @@ importers: eslint-plugin-react: ^7.27.1 eslint-plugin-react-hooks: ^4.3.0 eslint-plugin-unicorn: ^39.0.0 + immer: ^9.0.7 + nanoid: ^3.1.30 prettier: ^2.5.1 + react: ^17.0.2 + react-reconciler: ^0.26.2 should: ^13.2.3 + tsup: ^5.11.6 typescript: ^4.5.4 vite: ^2.7.4 vitest: ^0.0.102 + dependencies: + '@types/node': 17.0.1 + '@types/react': 17.0.37 + '@types/react-reconciler': 0.26.4 + immer: 9.0.7 + react-reconciler: 0.26.2_react@17.0.2 devDependencies: '@itsmapleleaf/configs': 1.1.2 '@typescript-eslint/eslint-plugin': 5.8.0_836011a006f4f5d67178564baf2b6d34 '@typescript-eslint/parser': 5.8.0_eslint@8.5.0+typescript@4.5.4 c8: 7.10.0 chai: 4.3.4 + discord.js: 13.3.1 + dotenv: 10.0.0 + esbuild: 0.14.6 eslint: 8.5.0 eslint-config-prettier: 8.3.0_eslint@8.5.0 eslint-import-resolver-typescript: 2.5.0_f385d671d5f1c72a868db745a891bc1f @@ -36,8 +56,11 @@ importers: eslint-plugin-react: 7.27.1_eslint@8.5.0 eslint-plugin-react-hooks: 4.3.0_eslint@8.5.0 eslint-plugin-unicorn: 39.0.0_eslint@8.5.0 + nanoid: 3.1.30 prettier: 2.5.1 + react: 17.0.2 should: 13.2.3 + tsup: 5.11.6_typescript@4.5.4 typescript: 4.5.4 vite: 2.7.4 vitest: 0.0.102_c8@7.10.0+vite@2.7.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml deleted file mode 100644 index 36772e7..0000000 --- a/pnpm-workspace.yaml +++ /dev/null @@ -1 +0,0 @@ -workspaces: [packages/*] diff --git a/packages/reacord/src/base-instance.ts b/src/base-instance.ts similarity index 100% rename from packages/reacord/src/base-instance.ts rename to src/base-instance.ts diff --git a/packages/reacord/src/container-instance.ts b/src/container-instance.ts similarity index 100% rename from packages/reacord/src/container-instance.ts rename to src/container-instance.ts diff --git a/packages/reacord/src/container.ts b/src/container.ts similarity index 100% rename from packages/reacord/src/container.ts rename to src/container.ts diff --git a/packages/reacord/src/embed.tsx b/src/embed.tsx similarity index 100% rename from packages/reacord/src/embed.tsx rename to src/embed.tsx diff --git a/packages/helpers/deferred.test.ts b/src/helpers/deferred.test.ts similarity index 100% rename from packages/helpers/deferred.test.ts rename to src/helpers/deferred.test.ts diff --git a/packages/helpers/deferred.ts b/src/helpers/deferred.ts similarity index 100% rename from packages/helpers/deferred.ts rename to src/helpers/deferred.ts diff --git a/packages/helpers/pick.ts b/src/helpers/pick.ts similarity index 100% rename from packages/helpers/pick.ts rename to src/helpers/pick.ts diff --git a/packages/helpers/raise.ts b/src/helpers/raise.ts similarity index 100% rename from packages/helpers/raise.ts rename to src/helpers/raise.ts diff --git a/packages/helpers/reject-after.ts b/src/helpers/reject-after.ts similarity index 100% rename from packages/helpers/reject-after.ts rename to src/helpers/reject-after.ts diff --git a/packages/helpers/to-error.ts b/src/helpers/to-error.ts similarity index 100% rename from packages/helpers/to-error.ts rename to src/helpers/to-error.ts diff --git a/packages/helpers/types.ts b/src/helpers/types.ts similarity index 100% rename from packages/helpers/types.ts rename to src/helpers/types.ts diff --git a/packages/helpers/wait-for-with-timeout.ts b/src/helpers/wait-for-with-timeout.ts similarity index 100% rename from packages/helpers/wait-for-with-timeout.ts rename to src/helpers/wait-for-with-timeout.ts diff --git a/packages/helpers/wait-for.ts b/src/helpers/wait-for.ts similarity index 100% rename from packages/helpers/wait-for.ts rename to src/helpers/wait-for.ts diff --git a/packages/helpers/with-logged-method-calls.ts b/src/helpers/with-logged-method-calls.ts similarity index 96% rename from packages/helpers/with-logged-method-calls.ts rename to src/helpers/with-logged-method-calls.ts index 8c45b68..e99eb72 100644 --- a/packages/helpers/with-logged-method-calls.ts +++ b/src/helpers/with-logged-method-calls.ts @@ -8,7 +8,7 @@ export function withLoggedMethodCalls(value: T) { return value } return (...values: any[]) => { - console.log( + console.info( `${String(property)}(${values .map((value) => inspect(value, { depth: 1 })) .join(", ")})`, diff --git a/packages/reacord/src/jsx.d.ts b/src/jsx.d.ts similarity index 100% rename from packages/reacord/src/jsx.d.ts rename to src/jsx.d.ts diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..0847a39 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,3 @@ +export * from "./embed" +export * from "./root" +export * from "./text" diff --git a/packages/reacord/src/reconciler.ts b/src/reconciler.ts similarity index 98% rename from packages/reacord/src/reconciler.ts rename to src/reconciler.ts index 0884ce8..6ca659c 100644 --- a/packages/reacord/src/reconciler.ts +++ b/src/reconciler.ts @@ -1,10 +1,10 @@ /* eslint-disable unicorn/no-null */ import { inspect } from "node:util" -import { raise } from "reacord-helpers/raise.js" import ReactReconciler from "react-reconciler" import { BaseInstance } from "./base-instance.js" import { ContainerInstance } from "./container-instance.js" import type { ReacordContainer } from "./container.js" +import { raise } from "./helpers/raise.js" import { TextInstance } from "./text-instance.js" type ElementTag = string diff --git a/packages/integration-tests/tests/rendering.test.tsx b/src/rendering.test.tsx similarity index 95% rename from packages/integration-tests/tests/rendering.test.tsx rename to src/rendering.test.tsx index 8f9fe81..a3afa71 100644 --- a/packages/integration-tests/tests/rendering.test.tsx +++ b/src/rendering.test.tsx @@ -2,12 +2,12 @@ import type { Message } from "discord.js" import { Client, TextChannel } from "discord.js" import { deepEqual } from "node:assert" -import type { ReacordRoot } from "reacord" -import { createRoot, Embed, Text } from "reacord" -import { pick } from "reacord-helpers/pick.js" -import { raise } from "reacord-helpers/raise.js" import React from "react" import { afterAll, beforeAll, test } from "vitest" +import { pick } from "./helpers/pick.js" +import { raise } from "./helpers/raise.js" +import type { ReacordRoot } from "./main" +import { createRoot, Embed, Text } from "./main" import { testBotToken, testChannelId } from "./test-environment.js" const client = new Client({ diff --git a/packages/reacord/src/root.ts b/src/root.ts similarity index 100% rename from packages/reacord/src/root.ts rename to src/root.ts diff --git a/packages/integration-tests/tests/test-environment.ts b/src/test-environment.ts similarity index 87% rename from packages/integration-tests/tests/test-environment.ts rename to src/test-environment.ts index 37c0a99..3ae01c0 100644 --- a/packages/integration-tests/tests/test-environment.ts +++ b/src/test-environment.ts @@ -1,5 +1,5 @@ import "dotenv/config.js" -import { raise } from "reacord-helpers/raise.js" +import { raise } from "./helpers/raise.js" function getEnvironmentValue(name: string) { return process.env[name] ?? raise(`Missing environment variable: ${name}`) diff --git a/packages/reacord/src/text-instance.ts b/src/text-instance.ts similarity index 100% rename from packages/reacord/src/text-instance.ts rename to src/text-instance.ts diff --git a/packages/reacord/src/text.tsx b/src/text.tsx similarity index 100% rename from packages/reacord/src/text.tsx rename to src/text.tsx diff --git a/vitest.config.ts b/vitest.config.ts deleted file mode 100644 index b220064..0000000 --- a/vitest.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -// eslint-disable-next-line import/no-unused-modules -export default { - test: { - deps: { - inline: ["should"], - }, - }, -}