From d8c0b3412f0e227be38dc52d7d6f5ddae62dd1de Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 10 Oct 2024 14:21:26 +0530 Subject: [PATCH] chore: setup CustomEvent polyfill --- package-lock.json | 15 ++++++- package.json | 3 +- packages/custom-event-polyfill/.eslintrc.cjs | 6 +++ packages/custom-event-polyfill/CHANGELOG.md | 10 +++++ packages/custom-event-polyfill/package.json | 43 +++++++++++++++++++ packages/custom-event-polyfill/src/index.ts | 12 ++++++ .../custom-event-polyfill/tsconfig.dev.json | 3 ++ packages/custom-event-polyfill/tsconfig.json | 10 +++++ 8 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 packages/custom-event-polyfill/.eslintrc.cjs create mode 100644 packages/custom-event-polyfill/CHANGELOG.md create mode 100644 packages/custom-event-polyfill/package.json create mode 100644 packages/custom-event-polyfill/src/index.ts create mode 100644 packages/custom-event-polyfill/tsconfig.dev.json create mode 100644 packages/custom-event-polyfill/tsconfig.json diff --git a/package-lock.json b/package-lock.json index b332de1c44..9e48d2df55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,8 @@ "packages/tests", "packages/browser-tests", "packages/build-utils", - "packages/react-native-polyfills" + "packages/react-native-polyfills", + "packages/custom-event-polyfill" ], "devDependencies": { "@size-limit/preset-big-lib": "^11.0.2", @@ -10319,6 +10320,10 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/@waku/custom-event-polyfill": { + "resolved": "packages/custom-event-polyfill", + "link": true + }, "node_modules/@waku/discovery": { "resolved": "packages/discovery", "link": true @@ -39142,6 +39147,14 @@ "uuid": "dist/bin/uuid" } }, + "packages/custom-event-polyfill": { + "name": "@waku/custom-event-polyfill", + "version": "0.0.1", + "license": "MIT OR Apache-2.0", + "engines": { + "node": ">=18" + } + }, "packages/discovery": { "name": "@waku/discovery", "version": "0.0.5", diff --git a/package.json b/package.json index 05b2caeb79..9128227ad9 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "packages/tests", "packages/browser-tests", "packages/build-utils", - "packages/react-native-polyfills" + "packages/react-native-polyfills", + "packages/custom-event-polyfill" ], "scripts": { "prepare": "husky", diff --git a/packages/custom-event-polyfill/.eslintrc.cjs b/packages/custom-event-polyfill/.eslintrc.cjs new file mode 100644 index 0000000000..2299ed822e --- /dev/null +++ b/packages/custom-event-polyfill/.eslintrc.cjs @@ -0,0 +1,6 @@ +module.exports = { + parserOptions: { + tsconfigRootDir: __dirname, + project: "./tsconfig.dev.json" + } +}; diff --git a/packages/custom-event-polyfill/CHANGELOG.md b/packages/custom-event-polyfill/CHANGELOG.md new file mode 100644 index 0000000000..97f412ade9 --- /dev/null +++ b/packages/custom-event-polyfill/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## 0.0.1 (2024-04-09) + + +### Features + +* Add react-native polyfills ([#1915](https://github.com/waku-org/js-waku/issues/1915)) ([9be942f](https://github.com/waku-org/js-waku/commit/9be942fc23e1e6c1ed5775e44e0d77ec7627b38c)) + +## Changelog diff --git a/packages/custom-event-polyfill/package.json b/packages/custom-event-polyfill/package.json new file mode 100644 index 0000000000..bdcec1b42f --- /dev/null +++ b/packages/custom-event-polyfill/package.json @@ -0,0 +1,43 @@ +{ + "name": "@waku/custom-event-polyfill", + "version": "0.0.1", + "description": "CustomEvent polyfill for environments that don't support it natively", + "module": "./dist/index.js", + "exports": { + ".": "./dist/index.js" + }, + "type": "module", + "homepage": "https://github.com/waku-org/js-waku/tree/master/packages/custom-event-polyfill#readme", + "repository": { + "type": "git", + "url": "https://github.com/waku-org/js-waku.git" + }, + "bugs": { + "url": "https://github.com/waku-org/js-waku/issues" + }, + "license": "MIT OR Apache-2.0", + "keywords": [ + "waku", + "custom-event", + "polyfill", + "web3" + ], + "scripts": { + "build": "tsc", + "check": "run-s check:*", + "check:tsc": "tsc -p tsconfig.dev.json", + "check:spelling": "cspell \"{README.md,src/**/*.ts}\"", + "prepublish": "npm run build" + }, + "engines": { + "node": ">=18" + }, + "files": [ + "dist", + "src/**/*.ts", + "!**/*.json", + "CHANGELOG.md", + "LICENSE", + "README.md" + ] +} diff --git a/packages/custom-event-polyfill/src/index.ts b/packages/custom-event-polyfill/src/index.ts new file mode 100644 index 0000000000..529f23624a --- /dev/null +++ b/packages/custom-event-polyfill/src/index.ts @@ -0,0 +1,12 @@ +if (typeof CustomEvent === "undefined") { + class CustomEvent extends Event { + public detail: T; + + public constructor(type: string, eventInitDict?: CustomEventInit) { + super(type, eventInitDict); + this.detail = eventInitDict?.detail ?? (null as T); + } + } + + (globalThis as Record).CustomEvent = CustomEvent; +} diff --git a/packages/custom-event-polyfill/tsconfig.dev.json b/packages/custom-event-polyfill/tsconfig.dev.json new file mode 100644 index 0000000000..4f7c34af3c --- /dev/null +++ b/packages/custom-event-polyfill/tsconfig.dev.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.dev" +} diff --git a/packages/custom-event-polyfill/tsconfig.json b/packages/custom-event-polyfill/tsconfig.json new file mode 100644 index 0000000000..eebbc51585 --- /dev/null +++ b/packages/custom-event-polyfill/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig", + "compilerOptions": { + "outDir": "dist/", + "rootDir": "src", + "tsBuildInfoFile": "dist/.tsbuildinfo" + }, + "include": ["src"], + "exclude": ["src/**/*.spec.ts", "src/test_utils"] +}