chore: update module resolution to bundler (#1387)

* chore: update module resolution to bundler

* fix: linter issues

* fix jest

* fix: build

* use import type

* lint
This commit is contained in:
Ryan Lee 2024-07-08 15:15:17 -04:00 committed by GitHub
parent 330e4a3330
commit 727c61663c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
25 changed files with 89 additions and 92 deletions

View File

@ -4,5 +4,10 @@
import baseConfig from '@polkadot/dev/config/eslint'; import baseConfig from '@polkadot/dev/config/eslint';
export default [ export default [
...baseConfig ...baseConfig,
{
rules: {
'import/extensions': 'off'
}
}
]; ];

View File

@ -39,6 +39,7 @@
"tslib": "^2.6.2" "tslib": "^2.6.2"
}, },
"devDependencies": { "devDependencies": {
"@polkadot/dev-test": "^0.79.3",
"@polkadot/extension-mocks": "0.48.3-1-x" "@polkadot/extension-mocks": "0.48.3-1-x"
} }
} }

View File

@ -1,12 +1,11 @@
// Copyright 2019-2024 @polkadot/extension-base authors & contributors // Copyright 2019-2024 @polkadot/extension-base authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
/* global chrome */ /* global chrome */
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import type { ResponseSigning } from '@polkadot/extension-base/background/types'; import type { ResponseSigning } from '@polkadot/extension-base/background/types';
import type { MetadataDef } from '@polkadot/extension-inject/types'; import type { MetadataDef } from '@polkadot/extension-inject/types';
import type { KeyringPair } from '@polkadot/keyring/types'; import type { KeyringPair } from '@polkadot/keyring/types';

View File

@ -26,6 +26,9 @@
"@polkadot/util-crypto": "^12.6.2", "@polkadot/util-crypto": "^12.6.2",
"tslib": "^2.6.2" "tslib": "^2.6.2"
}, },
"devDependencies": {
"@polkadot/dev-test": "^0.79.3"
},
"peerDependencies": { "peerDependencies": {
"@polkadot/api": "*", "@polkadot/api": "*",
"@polkadot/util": "*", "@polkadot/util": "*",

View File

@ -1,7 +1,7 @@
// Copyright 2019-2024 @polkadot/extension authors & contributors // Copyright 2019-2024 @polkadot/extension authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" /> import type * as _ from '@polkadot/dev-test/globals.d.ts';
import { u8aConcat, u8aEq, u8aToString } from '@polkadot/util'; import { u8aConcat, u8aEq, u8aToString } from '@polkadot/util';

View File

@ -27,6 +27,7 @@
"tslib": "^2.6.2" "tslib": "^2.6.2"
}, },
"devDependencies": { "devDependencies": {
"@polkadot/dev-test": "^0.79.3",
"@types/chrome": "^0.0.254", "@types/chrome": "^0.0.254",
"@types/firefox-webext-browser": "^111.0.5" "@types/firefox-webext-browser": "^111.0.5"
}, },

View File

@ -1,7 +1,7 @@
// Copyright 2019-2024 @polkadot/extension-inject authors & contributors // Copyright 2019-2024 @polkadot/extension-inject authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" /> import type * as _ from '@polkadot/dev-test/globals.d.ts';
import { cyrb53 } from './cyrb53.js'; import { cyrb53 } from './cyrb53.js';

View File

@ -52,6 +52,7 @@
"tslib": "^2.6.2" "tslib": "^2.6.2"
}, },
"devDependencies": { "devDependencies": {
"@polkadot/dev-test": "^0.79.3",
"@polkadot/extension-mocks": "0.48.3-1-x", "@polkadot/extension-mocks": "0.48.3-1-x",
"@types/enzyme": "^3.10.18", "@types/enzyme": "^3.10.18",
"@types/enzyme-adapter-react-16": "^1.0.9", "@types/enzyme-adapter-react-16": "^1.0.9",

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import enzyme from 'enzyme'; import enzyme from 'enzyme';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import type { AccountJson, AuthorizeRequest } from '@polkadot/extension-base/background/types'; import type { AccountJson, AuthorizeRequest } from '@polkadot/extension-base/background/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import enzyme from 'enzyme'; import enzyme from 'enzyme';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import type { AccountJson, ResponseDeriveValidate } from '@polkadot/extension-base/background/types'; import type { AccountJson, ResponseDeriveValidate } from '@polkadot/extension-base/background/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import type { KeyringPair$Json } from '@polkadot/keyring/types'; import type { KeyringPair$Json } from '@polkadot/keyring/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import enzyme from 'enzyme'; import enzyme from 'enzyme';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import enzyme from 'enzyme'; import enzyme from 'enzyme';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import type { SigningRequest } from '@polkadot/extension-base/background/types'; import type { SigningRequest } from '@polkadot/extension-base/background/types';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import enzyme from 'enzyme'; import enzyme from 'enzyme';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import type { AccountJson } from '@polkadot/extension-base/background/types'; import type { AccountJson } from '@polkadot/extension-base/background/types';
import type { IconTheme } from '@polkadot/react-identicon/types'; import type { IconTheme } from '@polkadot/react-identicon/types';
import type { HexString } from '@polkadot/util/types'; import type { HexString } from '@polkadot/util/types';

View File

@ -1,59 +1,46 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributor // Copyright 2019-2024 @polkadot/extension-ui authors & contributor
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
import type { WithTranslation } from 'react-i18next'; import React, { useCallback, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import React from 'react'; import Header from '../partials/Header';
import { withTranslation } from 'react-i18next'; import Button from './Button';
import ButtonArea from './ButtonArea';
import VerticalSpace from './VerticalSpace';
import Header from '../partials/Header.js'; interface ErrorBoundaryProps {
import Button from './Button.js';
import ButtonArea from './ButtonArea.js';
import VerticalSpace from './VerticalSpace.js';
interface Props extends WithTranslation {
children: React.ReactNode; children: React.ReactNode;
className?: string; className?: string;
error?: Error | null; error?: Error | null;
trigger?: string; trigger?: string;
} }
interface State { const ErrorBoundary: React.FC<ErrorBoundaryProps> = ({ children, error: propError, trigger }) => {
error: Error | null; const { t } = useTranslation();
} const [error, setError] = useState<Error | null>(null);
const translate = withTranslation(); useEffect(() => {
if (error !== null && trigger) {
// NOTE: This is the only way to do an error boundary, via extend setError(null);
class ErrorBoundary extends React.Component<Props> {
public override state: State = { error: null };
public static getDerivedStateFromError (error: Error): Partial<State> {
return { error };
} }
}, [error, trigger]);
public override componentDidUpdate (prevProps: Props) { useEffect(() => {
const { error } = this.state; if (propError) {
const { trigger } = this.props; setError(propError);
if (error !== null && (prevProps.trigger !== trigger)) {
this.setState({ error: null });
}
} }
}, [propError]);
#goHome = () => { const goHome = useCallback(() => {
this.setState({ error: null }); setError(null);
window.location.hash = '/'; window.location.hash = '/';
}; }, [setError]);
public override render (): React.ReactNode { if (error) {
const { children, t } = this.props; return (
const { error } = this.state;
return error
? (
<> <>
<Header text={t<string, Record<string, string>, string>('An error occurred')} /> <Header text={t('An error occurred')} />
<div> <div>
{t('Something went wrong with the query and rendering of this component. {{message}}', { {t('Something went wrong with the query and rendering of this component. {{message}}', {
replace: { message: error.message } replace: { message: error.message }
@ -61,16 +48,15 @@ class ErrorBoundary extends React.Component<Props> {
</div> </div>
<VerticalSpace /> <VerticalSpace />
<ButtonArea> <ButtonArea>
<Button <Button onClick={goHome}>
onClick={this.#goHome}
>
{t('Back to home')} {t('Back to home')}
</Button> </Button>
</ButtonArea> </ButtonArea>
</> </>
) );
: children;
} }
}
export default translate(ErrorBoundary); return <>{children}</>;
};
export default ErrorBoundary;

View File

@ -1,12 +1,12 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
/* global chrome */ /* global chrome */
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import enzyme from 'enzyme'; import enzyme from 'enzyme';

View File

@ -1,11 +1,10 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
import '@polkadot/extension-mocks/chrome'; import '@polkadot/extension-mocks/chrome';
import type { ReactWrapper } from 'enzyme'; import type { ReactWrapper } from 'enzyme';
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
import enzyme from 'enzyme'; import enzyme from 'enzyme';

View File

@ -1,10 +1,9 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" />
/* eslint-disable jest/expect-expect */ /* eslint-disable jest/expect-expect */
import type * as _ from '@polkadot/dev-test/globals.d.ts';
import type { AccountJson, AccountWithChildren } from '@polkadot/extension-base/background/types'; import type { AccountJson, AccountWithChildren } from '@polkadot/extension-base/background/types';
import { buildHierarchy } from './buildHierarchy.js'; import { buildHierarchy } from './buildHierarchy.js';

View File

@ -1,7 +1,7 @@
// Copyright 2019-2024 @polkadot/extension-ui authors & contributors // Copyright 2019-2024 @polkadot/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
/// <reference types="@polkadot/dev-test/globals" /> import type * as _ from '@polkadot/dev-test/globals.d.ts';
import { nextDerivationPath } from './nextDerivationPath.js'; import { nextDerivationPath } from './nextDerivationPath.js';

View File

@ -4,7 +4,7 @@
"composite": true, "composite": true,
/* FIXME Dropzone is problematic with nodenext resolution */ /* FIXME Dropzone is problematic with nodenext resolution */
"module": "ESNext", "module": "ESNext",
"moduleResolution": "node", "moduleResolution": "Bundler",
"paths": { "paths": {
"@polkadot/extension": ["extension/src/index.ts"], "@polkadot/extension": ["extension/src/index.ts"],
"@polkadot/extension/*": ["extension/src/*.ts"], "@polkadot/extension/*": ["extension/src/*.ts"],

View File

@ -63,7 +63,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.23.2": "@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.23.2":
version: 7.23.2 version: 7.23.2
resolution: "@babel/runtime@npm:7.23.2" resolution: "@babel/runtime@npm:7.23.2"
dependencies: dependencies:
@ -72,6 +72,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/runtime@npm:^7.22.5":
version: 7.24.7
resolution: "@babel/runtime@npm:7.24.7"
dependencies:
regenerator-runtime: "npm:^0.14.0"
checksum: 10/7b77f566165dee62db3db0296e71d08cafda3f34e1b0dcefcd68427272e17c1704f4e4369bff76651b07b6e49d3ea5a0ce344818af9116e9292e4381e0918c76
languageName: node
linkType: hard
"@babel/types@npm:^7.8.3": "@babel/types@npm:^7.8.3":
version: 7.22.10 version: 7.22.10
resolution: "@babel/types@npm:7.22.10" resolution: "@babel/types@npm:7.22.10"
@ -878,6 +887,7 @@ __metadata:
resolution: "@polkadot/extension-base@workspace:packages/extension-base" resolution: "@polkadot/extension-base@workspace:packages/extension-base"
dependencies: dependencies:
"@polkadot/api": "npm:^12.0.2" "@polkadot/api": "npm:^12.0.2"
"@polkadot/dev-test": "npm:^0.79.3"
"@polkadot/extension-chains": "npm:0.48.3-1-x" "@polkadot/extension-chains": "npm:0.48.3-1-x"
"@polkadot/extension-dapp": "npm:0.48.3-1-x" "@polkadot/extension-dapp": "npm:0.48.3-1-x"
"@polkadot/extension-inject": "npm:0.48.3-1-x" "@polkadot/extension-inject": "npm:0.48.3-1-x"
@ -932,6 +942,7 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "@polkadot/extension-dapp@workspace:packages/extension-dapp" resolution: "@polkadot/extension-dapp@workspace:packages/extension-dapp"
dependencies: dependencies:
"@polkadot/dev-test": "npm:^0.79.3"
"@polkadot/extension-inject": "npm:0.48.3-1-x" "@polkadot/extension-inject": "npm:0.48.3-1-x"
"@polkadot/util": "npm:^12.6.2" "@polkadot/util": "npm:^12.6.2"
"@polkadot/util-crypto": "npm:^12.6.2" "@polkadot/util-crypto": "npm:^12.6.2"
@ -948,6 +959,7 @@ __metadata:
resolution: "@polkadot/extension-inject@workspace:packages/extension-inject" resolution: "@polkadot/extension-inject@workspace:packages/extension-inject"
dependencies: dependencies:
"@polkadot/api": "npm:^12.0.2" "@polkadot/api": "npm:^12.0.2"
"@polkadot/dev-test": "npm:^0.79.3"
"@polkadot/rpc-provider": "npm:^12.0.2" "@polkadot/rpc-provider": "npm:^12.0.2"
"@polkadot/types": "npm:^12.0.2" "@polkadot/types": "npm:^12.0.2"
"@polkadot/util": "npm:^12.6.2" "@polkadot/util": "npm:^12.6.2"
@ -982,6 +994,7 @@ __metadata:
"@fortawesome/react-fontawesome": "npm:^0.2.0" "@fortawesome/react-fontawesome": "npm:^0.2.0"
"@paraspell/xcm-analyser": "npm:^1.3.0" "@paraspell/xcm-analyser": "npm:^1.3.0"
"@polkadot/api": "npm:^12.0.2" "@polkadot/api": "npm:^12.0.2"
"@polkadot/dev-test": "npm:^0.79.3"
"@polkadot/extension-base": "npm:0.48.3-1-x" "@polkadot/extension-base": "npm:0.48.3-1-x"
"@polkadot/extension-chains": "npm:0.48.3-1-x" "@polkadot/extension-chains": "npm:0.48.3-1-x"
"@polkadot/extension-dapp": "npm:0.48.3-1-x" "@polkadot/extension-dapp": "npm:0.48.3-1-x"