aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples/kitchen-sink/packages
diff options
context:
space:
mode:
author简律纯 <hsiangnianian@outlook.com>2023-04-28 01:47:57 +0800
committer简律纯 <hsiangnianian@outlook.com>2023-04-28 01:47:57 +0800
commit8b2c4a38a461ff5ecc95972291bc711e2c5dec9a (patch)
tree29f552e3df949073e21bf5c76d7abc3044830ec6 /examples/kitchen-sink/packages
parentfc8c5fdce62fb229202659408798a7b6c98f6e8b (diff)
downloadHydroRoll-8b2c4a38a461ff5ecc95972291bc711e2c5dec9a.tar.gz
HydroRoll-8b2c4a38a461ff5ecc95972291bc711e2c5dec9a.zip
Diffstat (limited to 'examples/kitchen-sink/packages')
-rw-r--r--examples/kitchen-sink/packages/eslint-config-custom-server/index.js19
-rw-r--r--examples/kitchen-sink/packages/eslint-config-custom-server/package.json13
-rw-r--r--examples/kitchen-sink/packages/eslint-config-custom/index.js13
-rw-r--r--examples/kitchen-sink/packages/eslint-config-custom/package.json16
-rw-r--r--examples/kitchen-sink/packages/jest-presets/jest/node/jest-preset.js13
-rw-r--r--examples/kitchen-sink/packages/jest-presets/package.json9
-rw-r--r--examples/kitchen-sink/packages/logger/.eslintrc.js4
-rw-r--r--examples/kitchen-sink/packages/logger/package.json31
-rw-r--r--examples/kitchen-sink/packages/logger/src/__tests__/log.test.ts10
-rw-r--r--examples/kitchen-sink/packages/logger/src/__tests__/tsconfig.json4
-rw-r--r--examples/kitchen-sink/packages/logger/src/index.ts3
-rw-r--r--examples/kitchen-sink/packages/logger/tsconfig.json11
-rw-r--r--examples/kitchen-sink/packages/tsconfig/base.json20
-rw-r--r--examples/kitchen-sink/packages/tsconfig/nextjs.json17
-rw-r--r--examples/kitchen-sink/packages/tsconfig/package.json9
-rw-r--r--examples/kitchen-sink/packages/tsconfig/react-library.json11
-rw-r--r--examples/kitchen-sink/packages/tsconfig/vite.json17
-rw-r--r--examples/kitchen-sink/packages/ui/.eslintrc.js4
-rw-r--r--examples/kitchen-sink/packages/ui/package.json39
-rw-r--r--examples/kitchen-sink/packages/ui/src/CounterButton.tsx45
-rw-r--r--examples/kitchen-sink/packages/ui/src/NewTabLink.tsx15
-rw-r--r--examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx11
-rw-r--r--examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json7
-rw-r--r--examples/kitchen-sink/packages/ui/src/index.tsx3
-rw-r--r--examples/kitchen-sink/packages/ui/tsconfig.json8
25 files changed, 352 insertions, 0 deletions
diff --git a/examples/kitchen-sink/packages/eslint-config-custom-server/index.js b/examples/kitchen-sink/packages/eslint-config-custom-server/index.js
new file mode 100644
index 0000000..93e8c74
--- /dev/null
+++ b/examples/kitchen-sink/packages/eslint-config-custom-server/index.js
@@ -0,0 +1,19 @@
+module.exports = {
+ extends: ["eslint:recommended", "turbo"],
+ env: {
+ node: true,
+ es6: true,
+ },
+ parserOptions: {
+ ecmaVersion: "latest",
+ sourceType: "module",
+ },
+ overrides: [
+ {
+ files: ["**/__tests__/**/*"],
+ env: {
+ jest: true,
+ },
+ },
+ ],
+};
diff --git a/examples/kitchen-sink/packages/eslint-config-custom-server/package.json b/examples/kitchen-sink/packages/eslint-config-custom-server/package.json
new file mode 100644
index 0000000..fd58c91
--- /dev/null
+++ b/examples/kitchen-sink/packages/eslint-config-custom-server/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "eslint-config-custom-server",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "main": "index.js",
+ "dependencies": {
+ "eslint-config-turbo": "latest"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/examples/kitchen-sink/packages/eslint-config-custom/index.js b/examples/kitchen-sink/packages/eslint-config-custom/index.js
new file mode 100644
index 0000000..d44cb62
--- /dev/null
+++ b/examples/kitchen-sink/packages/eslint-config-custom/index.js
@@ -0,0 +1,13 @@
+module.exports = {
+ extends: ["next", "turbo", "prettier"],
+ settings: {
+ react: {
+ version: "detect",
+ },
+ },
+ parserOptions: {
+ babelOptions: {
+ presets: [require.resolve("next/babel")],
+ },
+ },
+};
diff --git a/examples/kitchen-sink/packages/eslint-config-custom/package.json b/examples/kitchen-sink/packages/eslint-config-custom/package.json
new file mode 100644
index 0000000..1538b63
--- /dev/null
+++ b/examples/kitchen-sink/packages/eslint-config-custom/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "eslint-config-custom",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "main": "index.js",
+ "dependencies": {
+ "eslint-config-next": "latest",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-plugin-react": "7.28.0",
+ "eslint-config-turbo": "latest"
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/examples/kitchen-sink/packages/jest-presets/jest/node/jest-preset.js b/examples/kitchen-sink/packages/jest-presets/jest/node/jest-preset.js
new file mode 100644
index 0000000..b6c2593
--- /dev/null
+++ b/examples/kitchen-sink/packages/jest-presets/jest/node/jest-preset.js
@@ -0,0 +1,13 @@
+module.exports = {
+ roots: ["<rootDir>"],
+ transform: {
+ "^.+\\.tsx?$": "ts-jest",
+ },
+ moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
+ modulePathIgnorePatterns: [
+ "<rootDir>/test/__fixtures__",
+ "<rootDir>/node_modules",
+ "<rootDir>/dist",
+ ],
+ preset: "ts-jest",
+};
diff --git a/examples/kitchen-sink/packages/jest-presets/package.json b/examples/kitchen-sink/packages/jest-presets/package.json
new file mode 100644
index 0000000..c598b40
--- /dev/null
+++ b/examples/kitchen-sink/packages/jest-presets/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "jest-presets",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "dependencies": {
+ "ts-jest": "^26.5.0"
+ }
+}
diff --git a/examples/kitchen-sink/packages/logger/.eslintrc.js b/examples/kitchen-sink/packages/logger/.eslintrc.js
new file mode 100644
index 0000000..c8df607
--- /dev/null
+++ b/examples/kitchen-sink/packages/logger/.eslintrc.js
@@ -0,0 +1,4 @@
+module.exports = {
+ root: true,
+ extends: ["custom"],
+};
diff --git a/examples/kitchen-sink/packages/logger/package.json b/examples/kitchen-sink/packages/logger/package.json
new file mode 100644
index 0000000..4b082c7
--- /dev/null
+++ b/examples/kitchen-sink/packages/logger/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "logger",
+ "version": "0.0.0",
+ "private": true,
+ "main": "./dist/index.js",
+ "source": "./src/index.ts",
+ "types": "./dist/index.d.ts",
+ "files": [
+ "dist/**"
+ ],
+ "scripts": {
+ "build": "tsc",
+ "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
+ "dev": "tsc -w",
+ "lint": "eslint \"src/**/*.ts*\"",
+ "test": "jest"
+ },
+ "jest": {
+ "preset": "jest-presets/jest/node"
+ },
+ "devDependencies": {
+ "@types/jest": "^26.0.22",
+ "@types/node": "^18.11.9",
+ "eslint": "^7.32.0",
+ "eslint-config-custom": "workspace:*",
+ "jest": "^26.6.3",
+ "jest-presets": "workspace:*",
+ "tsconfig": "workspace:*",
+ "typescript": "^4.8.3"
+ }
+}
diff --git a/examples/kitchen-sink/packages/logger/src/__tests__/log.test.ts b/examples/kitchen-sink/packages/logger/src/__tests__/log.test.ts
new file mode 100644
index 0000000..fa597a8
--- /dev/null
+++ b/examples/kitchen-sink/packages/logger/src/__tests__/log.test.ts
@@ -0,0 +1,10 @@
+import { log } from "..";
+
+jest.spyOn(global.console, "log");
+
+describe("logger", () => {
+ it("prints a message", () => {
+ log("hello");
+ expect(console.log).toBeCalled();
+ });
+});
diff --git a/examples/kitchen-sink/packages/logger/src/__tests__/tsconfig.json b/examples/kitchen-sink/packages/logger/src/__tests__/tsconfig.json
new file mode 100644
index 0000000..bf65be6
--- /dev/null
+++ b/examples/kitchen-sink/packages/logger/src/__tests__/tsconfig.json
@@ -0,0 +1,4 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": [".", "../."]
+}
diff --git a/examples/kitchen-sink/packages/logger/src/index.ts b/examples/kitchen-sink/packages/logger/src/index.ts
new file mode 100644
index 0000000..e472eb3
--- /dev/null
+++ b/examples/kitchen-sink/packages/logger/src/index.ts
@@ -0,0 +1,3 @@
+export const log = (str: any) => {
+ console.log("logger: " + str);
+};
diff --git a/examples/kitchen-sink/packages/logger/tsconfig.json b/examples/kitchen-sink/packages/logger/tsconfig.json
new file mode 100644
index 0000000..74f3de4
--- /dev/null
+++ b/examples/kitchen-sink/packages/logger/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "lib": ["ES2015"],
+ "module": "CommonJS",
+ "outDir": "./dist",
+ "rootDir": "./src"
+ },
+ "exclude": ["node_modules"],
+ "extends": "tsconfig/base.json",
+ "include": ["src"]
+}
diff --git a/examples/kitchen-sink/packages/tsconfig/base.json b/examples/kitchen-sink/packages/tsconfig/base.json
new file mode 100644
index 0000000..d72a9f3
--- /dev/null
+++ b/examples/kitchen-sink/packages/tsconfig/base.json
@@ -0,0 +1,20 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Default",
+ "compilerOptions": {
+ "composite": false,
+ "declaration": true,
+ "declarationMap": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "inlineSources": false,
+ "isolatedModules": true,
+ "moduleResolution": "node",
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "preserveWatchOutput": true,
+ "skipLibCheck": true,
+ "strict": true
+ },
+ "exclude": ["node_modules"]
+}
diff --git a/examples/kitchen-sink/packages/tsconfig/nextjs.json b/examples/kitchen-sink/packages/tsconfig/nextjs.json
new file mode 100644
index 0000000..6af1347
--- /dev/null
+++ b/examples/kitchen-sink/packages/tsconfig/nextjs.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Next.js",
+ "extends": "./base.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "declaration": false,
+ "declarationMap": false,
+ "incremental": true,
+ "jsx": "preserve",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "module": "esnext",
+ "noEmit": true,
+ "resolveJsonModule": true,
+ "target": "es5"
+ }
+}
diff --git a/examples/kitchen-sink/packages/tsconfig/package.json b/examples/kitchen-sink/packages/tsconfig/package.json
new file mode 100644
index 0000000..6efb83e
--- /dev/null
+++ b/examples/kitchen-sink/packages/tsconfig/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "tsconfig",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/examples/kitchen-sink/packages/tsconfig/react-library.json b/examples/kitchen-sink/packages/tsconfig/react-library.json
new file mode 100644
index 0000000..af8711c
--- /dev/null
+++ b/examples/kitchen-sink/packages/tsconfig/react-library.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "React Library",
+ "extends": "./base.json",
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "lib": ["ES2015"],
+ "module": "ESNext",
+ "target": "es6"
+ }
+}
diff --git a/examples/kitchen-sink/packages/tsconfig/vite.json b/examples/kitchen-sink/packages/tsconfig/vite.json
new file mode 100644
index 0000000..46c2e55
--- /dev/null
+++ b/examples/kitchen-sink/packages/tsconfig/vite.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "./base.json",
+ "Display": "Vite",
+ "compilerOptions": {
+ "allowJs": false,
+ "esModuleInterop": false,
+ "jsx": "react",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "module": "ESNext",
+ "noEmit": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": false,
+ "target": "ESNext",
+ "types": ["vite/client"]
+ }
+}
diff --git a/examples/kitchen-sink/packages/ui/.eslintrc.js b/examples/kitchen-sink/packages/ui/.eslintrc.js
new file mode 100644
index 0000000..c8df607
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/.eslintrc.js
@@ -0,0 +1,4 @@
+module.exports = {
+ root: true,
+ extends: ["custom"],
+};
diff --git a/examples/kitchen-sink/packages/ui/package.json b/examples/kitchen-sink/packages/ui/package.json
new file mode 100644
index 0000000..2241c40
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/package.json
@@ -0,0 +1,39 @@
+{
+ "name": "ui",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "sideEffects": false,
+ "main": "./dist/index.js",
+ "module": "./dist/index.mjs",
+ "types": "./dist/index.d.ts",
+ "files": [
+ "dist/**"
+ ],
+ "scripts": {
+ "build": "tsup src/index.tsx --format esm,cjs --dts --external react",
+ "clean": "rm -rf dist",
+ "dev": "tsup src/index.tsx --format esm,cjs --watch --dts --external react",
+ "lint": "eslint \"src/**/*.ts*\"",
+ "test": "jest"
+ },
+ "jest": {
+ "preset": "jest-presets/jest/node"
+ },
+ "devDependencies": {
+ "@types/jest": "^26.0.22",
+ "@types/react": "^17.0.13",
+ "@types/react-dom": "^17.0.8",
+ "eslint": "^7.32.0",
+ "eslint-config-custom": "workspace:*",
+ "jest": "^26.6.3",
+ "jest-presets": "workspace:*",
+ "react": "^18.2.0",
+ "tsconfig": "workspace:*",
+ "tsup": "^6.2.3",
+ "typescript": "^4.8.3"
+ },
+ "dependencies": {
+ "react-dom": "^18.2.0"
+ }
+}
diff --git a/examples/kitchen-sink/packages/ui/src/CounterButton.tsx b/examples/kitchen-sink/packages/ui/src/CounterButton.tsx
new file mode 100644
index 0000000..ec99b39
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/CounterButton.tsx
@@ -0,0 +1,45 @@
+import * as React from "react";
+
+export const CounterButton = () => {
+ const [count, setCount] = React.useState(0);
+ return (
+ <div
+ style={{
+ background: `rgba(0,0,0,0.05)`,
+ borderRadius: `8px`,
+ padding: "1.5rem",
+ fontWeight: 500,
+ }}
+ >
+ <p style={{ margin: "0 0 1.5rem 0" }}>
+ This component is from{" "}
+ <code
+ style={{
+ padding: "0.2rem 0.3rem",
+ background: `rgba(0,0,0,0.1)`,
+ borderRadius: "0.25rem",
+ }}
+ >
+ ui
+ </code>
+ </p>
+ <div>
+ <button
+ style={{
+ background: "black",
+ color: "white",
+ border: "none",
+ padding: "0.5rem 1rem",
+ borderRadius: "0.25rem",
+ display: "inline-block",
+ cursor: "pointer",
+ }}
+ type="button"
+ onClick={() => setCount((c) => c + 1)}
+ >
+ Count: {count}
+ </button>
+ </div>
+ </div>
+ );
+};
diff --git a/examples/kitchen-sink/packages/ui/src/NewTabLink.tsx b/examples/kitchen-sink/packages/ui/src/NewTabLink.tsx
new file mode 100644
index 0000000..e8a00a0
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/NewTabLink.tsx
@@ -0,0 +1,15 @@
+import * as React from "react";
+export const NewTabLink = ({
+ children,
+ href,
+ ...other
+}: {
+ children: React.ReactNode;
+ href: string;
+}) => {
+ return (
+ <a target="_blank" rel="noreferrer" href={href} {...other}>
+ {children}
+ </a>
+ );
+};
diff --git a/examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx b/examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx
new file mode 100644
index 0000000..8956208
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx
@@ -0,0 +1,11 @@
+import * as React from "react";
+import * as ReactDOM from "react-dom";
+import { CounterButton } from "../CounterButton";
+
+describe("CounterButton", () => {
+ it("renders without crashing", () => {
+ const div = document.createElement("div");
+ ReactDOM.render(<CounterButton />, div);
+ ReactDOM.unmountComponentAtNode(div);
+ });
+});
diff --git a/examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json b/examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json
new file mode 100644
index 0000000..10f19c1
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": [".", "../."],
+ "compilerOptions": {
+ "jsx": "react"
+ }
+}
diff --git a/examples/kitchen-sink/packages/ui/src/index.tsx b/examples/kitchen-sink/packages/ui/src/index.tsx
new file mode 100644
index 0000000..4880f34
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/index.tsx
@@ -0,0 +1,3 @@
+import * as React from "react";
+export { NewTabLink } from "./NewTabLink";
+export { CounterButton } from "./CounterButton";
diff --git a/examples/kitchen-sink/packages/ui/tsconfig.json b/examples/kitchen-sink/packages/ui/tsconfig.json
new file mode 100644
index 0000000..46c4f7b
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "compilerOptions": {
+ "lib": ["dom", "ES2015"]
+ },
+ "extends": "tsconfig/react-library.json",
+ "include": ["."],
+ "exclude": ["dist", "build", "node_modules"]
+}