Skip to content

Commit c3eedfe

Browse files
authored
Merge pull request hyperweb-io#129 from Zetazzz/main
fixed undefined issue of getting providerInfo and export ContractsConfig
2 parents 6f697e9 + d84c86c commit c3eedfe

File tree

8 files changed

+10
-10
lines changed

8 files changed

+10
-10
lines changed

__output__/builder/bundler_test/contracts/contracts-context.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313

1414
import { IContractsContext, getProviders } from './contractContextProviders';
1515

16-
interface ContractsConfig {
16+
export interface ContractsConfig {
1717
address: string | undefined;
1818
getCosmWasmClient: () => Promise<CosmWasmClient>;
1919
getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;

__output__/builder/default/contracts-context.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313

1414
import { IContractsContext, getProviders } from './contractContextProviders';
1515

16-
interface ContractsConfig {
16+
export interface ContractsConfig {
1717
address: string | undefined;
1818
getCosmWasmClient: () => Promise<CosmWasmClient>;
1919
getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;

packages/ts-codegen/src/helpers/contractsContextTSX.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
88
import { IContractsContext, getProviders } from './contractContextProviders';
99
10-
interface ContractsConfig {
10+
export interface ContractsConfig {
1111
address: string | undefined;
1212
getCosmWasmClient: () => Promise<CosmWasmClient>;
1313
getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;

packages/ts-codegen/src/plugins/provider-bundle.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class ContractsProviderBundlePlugin extends BuilderPluginBase<TSBuilderOp
4242

4343
const providerInfos = context.getProviderInfos();
4444

45-
if (!Object.keys(providerInfos)?.length) {
45+
if (!Object.keys(providerInfos || {})?.length) {
4646
return;
4747
}
4848

packages/ts-codegen/src/plugins/provider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export class ContractsContextProviderPlugin extends BuilderPluginBase<TSBuilderO
4545

4646
const providerInfo = context.getProviderInfos()[name];
4747

48-
if (!Object.keys(providerInfo)?.length) {
48+
if (!Object.keys(providerInfo || {})?.length) {
4949
return;
5050
}
5151

packages/ts-codegen/types/src/builder/builder.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export interface BundleOptions {
1515
export interface UseContractsOptions {
1616
enabled?: boolean;
1717
}
18-
export type TSBuilderOptions = {
18+
export declare type TSBuilderOptions = {
1919
bundle?: BundleOptions;
2020
/**
2121
* Enable using shorthand constructor.
@@ -24,7 +24,7 @@ export type TSBuilderOptions = {
2424
useShorthandCtor?: boolean;
2525
useContractsHooks?: UseContractsOptions;
2626
} & RenderOptions;
27-
export type BuilderFileType = 'type' | 'client' | 'recoil' | 'react-query' | 'message-composer' | 'message-builder' | 'plugin';
27+
export declare type BuilderFileType = 'type' | 'client' | 'recoil' | 'react-query' | 'message-composer' | 'message-builder' | 'plugin';
2828
export interface BuilderFile {
2929
type: BuilderFileType;
3030
pluginType?: string;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export declare const contractsContextTSX = "\nimport React, { useEffect, useMemo, useRef, useState, useContext } from 'react';\nimport {\n CosmWasmClient,\n SigningCosmWasmClient,\n} from '@cosmjs/cosmwasm-stargate';\n\nimport { IContractsContext, getProviders } from './contractContextProviders';\n\ninterface ContractsConfig {\n address: string | undefined;\n getCosmWasmClient: () => Promise<CosmWasmClient>;\n getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;\n}\n\nconst ContractsContext = React.createContext<IContractsContext | null>(null);\n\nexport const ContractsProvider = ({\n children,\n contractsConfig,\n}: {\n children: React.ReactNode;\n contractsConfig: ContractsConfig;\n}) => {\n const [cosmWasmClient, setCosmWasmClient] = useState<CosmWasmClient>();\n const [signingCosmWasmClient, setSigningCosmWasmClient] =\n useState<SigningCosmWasmClient>();\n\n const { address, getCosmWasmClient, getSigningCosmWasmClient } =\n contractsConfig;\n\n const prevAddressRef = useRef<string | undefined>(address);\n\n const contracts: IContractsContext = useMemo(() => {\n return getProviders(address, cosmWasmClient, signingCosmWasmClient);\n }, [address, cosmWasmClient, signingCosmWasmClient]);\n\n useEffect(() => {\n const connectSigningCwClient = async () => {\n if (address && prevAddressRef.current !== address) {\n const signingCosmWasmClient = await getSigningCosmWasmClient();\n setSigningCosmWasmClient(signingCosmWasmClient);\n } else if (!address) {\n setSigningCosmWasmClient(undefined);\n }\n prevAddressRef.current = address;\n };\n connectSigningCwClient();\n }, [address, getSigningCosmWasmClient]);\n\n useEffect(() => {\n const connectCosmWasmClient = async () => {\n const cosmWasmClient = await getCosmWasmClient();\n setCosmWasmClient(cosmWasmClient);\n };\n connectCosmWasmClient();\n }, [getCosmWasmClient]);\n\n return (\n <ContractsContext.Provider value={contracts}>\n {children}\n </ContractsContext.Provider>\n );\n};\n\nexport const useContracts = () => {\n const contracts: IContractsContext = useContext(ContractsContext);\n if (contracts === null) {\n throw new Error('useContracts must be used within a ContractsProvider');\n }\n return contracts;\n};\n";
1+
export declare const contractsContextTSX = "\nimport React, { useEffect, useMemo, useRef, useState, useContext } from 'react';\nimport {\n CosmWasmClient,\n SigningCosmWasmClient,\n} from '@cosmjs/cosmwasm-stargate';\n\nimport { IContractsContext, getProviders } from './contractContextProviders';\n\nexport interface ContractsConfig {\n address: string | undefined;\n getCosmWasmClient: () => Promise<CosmWasmClient>;\n getSigningCosmWasmClient: () => Promise<SigningCosmWasmClient>;\n}\n\nconst ContractsContext = React.createContext<IContractsContext | null>(null);\n\nexport const ContractsProvider = ({\n children,\n contractsConfig,\n}: {\n children: React.ReactNode;\n contractsConfig: ContractsConfig;\n}) => {\n const [cosmWasmClient, setCosmWasmClient] = useState<CosmWasmClient>();\n const [signingCosmWasmClient, setSigningCosmWasmClient] =\n useState<SigningCosmWasmClient>();\n\n const { address, getCosmWasmClient, getSigningCosmWasmClient } =\n contractsConfig;\n\n const prevAddressRef = useRef<string | undefined>(address);\n\n const contracts: IContractsContext = useMemo(() => {\n return getProviders(address, cosmWasmClient, signingCosmWasmClient);\n }, [address, cosmWasmClient, signingCosmWasmClient]);\n\n useEffect(() => {\n const connectSigningCwClient = async () => {\n if (address && prevAddressRef.current !== address) {\n const signingCosmWasmClient = await getSigningCosmWasmClient();\n setSigningCosmWasmClient(signingCosmWasmClient);\n } else if (!address) {\n setSigningCosmWasmClient(undefined);\n }\n prevAddressRef.current = address;\n };\n connectSigningCwClient();\n }, [address, getSigningCosmWasmClient]);\n\n useEffect(() => {\n const connectCosmWasmClient = async () => {\n const cosmWasmClient = await getCosmWasmClient();\n setCosmWasmClient(cosmWasmClient);\n };\n connectCosmWasmClient();\n }, [getCosmWasmClient]);\n\n return (\n <ContractsContext.Provider value={contracts}>\n {children}\n </ContractsContext.Provider>\n );\n};\n\nexport const useContracts = () => {\n const contracts: IContractsContext = useContext(ContractsContext);\n if (contracts === null) {\n throw new Error('useContracts must be used within a ContractsProvider');\n }\n return contracts;\n};\n";

packages/wasm-ast-types/types/context/imports.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ export interface ImportObj {
55
path: string;
66
importAs?: string;
77
}
8-
export type GetUtilFn = (<TContext = RenderContext>(...args: any[]) => (context: TContext) => ImportObj);
9-
export type UtilMapping = {
8+
export declare type GetUtilFn = (<TContext = RenderContext>(...args: any[]) => (context: TContext) => ImportObj);
9+
export declare type UtilMapping = {
1010
[key: string]: ImportObj | string | GetUtilFn;
1111
};
1212
export declare const UTILS: {

0 commit comments

Comments
 (0)