Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/frank-stamps-bathe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@codama/renderers-js': patch
---

Use standalone format function from Prettier and remove opinionated defaults
10 changes: 2 additions & 8 deletions src/utils/formatCode.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,17 @@
import { joinPath, mapRenderMapContentAsync, RenderMap } from '@codama/renderers-core';
import { format, Plugin, resolveConfig } from 'prettier';
import { Plugin, resolveConfig } from 'prettier';
import * as estreePlugin from 'prettier/plugins/estree';
import * as typeScriptPlugin from 'prettier/plugins/typescript';
import { format } from 'prettier/standalone';

import { Fragment } from './fragment';
import { RenderOptions } from './options';

export type PrettierOptions = Parameters<typeof format>[1];

const DEFAULT_PRETTIER_OPTIONS: PrettierOptions = {
arrowParens: 'always',
parser: 'typescript',
plugins: [estreePlugin as Plugin<unknown>, typeScriptPlugin],
printWidth: 80,
semi: true,
singleQuote: true,
tabWidth: 2,
trailingComma: 'es5',
useTabs: false,
};

export async function formatCode(
Expand Down
2 changes: 1 addition & 1 deletion src/utils/packageJson.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import { CODAMA_ERROR__RENDERERS__MISSING_DEPENDENCY_VERSIONS, CodamaError, logW
import { fileExists, joinPath, readJson, RenderMap, writeFile } from '@codama/renderers-core';
import { lt as ltVersion, minVersion, subset } from 'semver';

import { RenderOptions } from '.';
import { Fragment, mergeFragments } from './fragment';
import { getExternalDependencies } from './importMap';
import { RenderOptions } from './options';

type DependencyVersions = Record<string, string>;

Expand Down
16 changes: 8 additions & 8 deletions test/e2e/anchor/src/generated/accounts/guardV1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ export function getGuardV1Encoder(): Encoder<GuardV1Args> {
['transferAmountRule', getOptionEncoder(getTransferAmountRuleEncoder())],
['additionalFieldsRule', getArrayEncoder(getMetadataAdditionalFieldRuleEncoder())],
]),
value => ({ ...value, discriminator: GUARD_V1_DISCRIMINATOR })
value => ({ ...value, discriminator: GUARD_V1_DISCRIMINATOR }),
);
}

Expand All @@ -123,21 +123,21 @@ export function getGuardV1Codec(): Codec<GuardV1Args, GuardV1> {
}

export function decodeGuardV1<TAddress extends string = string>(
encodedAccount: EncodedAccount<TAddress>
encodedAccount: EncodedAccount<TAddress>,
): Account<GuardV1, TAddress>;
export function decodeGuardV1<TAddress extends string = string>(
encodedAccount: MaybeEncodedAccount<TAddress>
encodedAccount: MaybeEncodedAccount<TAddress>,
): MaybeAccount<GuardV1, TAddress>;
export function decodeGuardV1<TAddress extends string = string>(
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,
): Account<GuardV1, TAddress> | MaybeAccount<GuardV1, TAddress> {
return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getGuardV1Decoder());
}

export async function fetchGuardV1<TAddress extends string = string>(
rpc: Parameters<typeof fetchEncodedAccount>[0],
address: Address<TAddress>,
config?: FetchAccountConfig
config?: FetchAccountConfig,
): Promise<Account<GuardV1, TAddress>> {
const maybeAccount = await fetchMaybeGuardV1(rpc, address, config);
assertAccountExists(maybeAccount);
Expand All @@ -147,7 +147,7 @@ export async function fetchGuardV1<TAddress extends string = string>(
export async function fetchMaybeGuardV1<TAddress extends string = string>(
rpc: Parameters<typeof fetchEncodedAccount>[0],
address: Address<TAddress>,
config?: FetchAccountConfig
config?: FetchAccountConfig,
): Promise<MaybeAccount<GuardV1, TAddress>> {
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
return decodeGuardV1(maybeAccount);
Expand All @@ -156,7 +156,7 @@ export async function fetchMaybeGuardV1<TAddress extends string = string>(
export async function fetchAllGuardV1(
rpc: Parameters<typeof fetchEncodedAccounts>[0],
addresses: Array<Address>,
config?: FetchAccountsConfig
config?: FetchAccountsConfig,
): Promise<Account<GuardV1>[]> {
const maybeAccounts = await fetchAllMaybeGuardV1(rpc, addresses, config);
assertAccountsExist(maybeAccounts);
Expand All @@ -166,7 +166,7 @@ export async function fetchAllGuardV1(
export async function fetchAllMaybeGuardV1(
rpc: Parameters<typeof fetchEncodedAccounts>[0],
addresses: Array<Address>,
config?: FetchAccountsConfig
config?: FetchAccountsConfig,
): Promise<MaybeAccount<GuardV1>[]> {
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
return maybeAccounts.map(maybeAccount => decodeGuardV1(maybeAccount));
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/anchor/src/generated/errors/wenTransferGuard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export function getWenTransferGuardErrorMessage(code: WenTransferGuardError): st
export function isWenTransferGuardError<TProgramErrorCode extends WenTransferGuardError>(
error: unknown,
transactionMessage: { instructions: Record<number, { programAddress: Address }> },
code?: TProgramErrorCode
code?: TProgramErrorCode,
): error is SolanaError<typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM> &
Readonly<{ context: Readonly<{ code: TProgramErrorCode }> }> {
return isProgramError<TProgramErrorCode>(error, transactionMessage, WEN_TRANSFER_GUARD_PROGRAM_ADDRESS, code);
Expand Down
10 changes: 5 additions & 5 deletions test/e2e/anchor/src/generated/instructions/createGuard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ export function getCreateGuardInstructionDataEncoder(): Encoder<CreateGuardInstr
['transferAmountRule', getOptionEncoder(getTransferAmountRuleEncoder())],
['additionalFieldsRule', getArrayEncoder(getMetadataAdditionalFieldRuleEncoder())],
]),
value => ({ ...value, discriminator: CREATE_GUARD_DISCRIMINATOR })
value => ({ ...value, discriminator: CREATE_GUARD_DISCRIMINATOR }),
);
}

Expand Down Expand Up @@ -206,7 +206,7 @@ export async function getCreateGuardInstructionAsync<
TAccountTokenProgram,
TAccountSystemProgram
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): Promise<
CreateGuardInstruction<
TProgramAddress,
Expand Down Expand Up @@ -248,7 +248,7 @@ export async function getCreateGuardInstructionAsync<
new Uint8Array([
119, 101, 110, 95, 116, 111, 107, 101, 110, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 103,
117, 97, 114, 100,
])
]),
),
getBytesEncoder().encode(new Uint8Array([103, 117, 97, 114, 100, 95, 118, 49])),
getAddressEncoder().encode(expectAddress(accounts.mint.value)),
Expand Down Expand Up @@ -353,7 +353,7 @@ export function getCreateGuardInstruction<
TAccountTokenProgram,
TAccountSystemProgram
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): CreateGuardInstruction<
TProgramAddress,
TAccountGuard,
Expand Down Expand Up @@ -446,7 +446,7 @@ export type ParsedCreateGuardInstruction<
export function parseCreateGuardInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(
instruction: Instruction<TProgram> &
InstructionWithAccounts<TAccountMetas> &
InstructionWithData<ReadonlyUint8Array>
InstructionWithData<ReadonlyUint8Array>,
): ParsedCreateGuardInstruction<TProgram, TAccountMetas> {
if (instruction.accounts.length < 8) {
// TODO: Coded error.
Expand Down
10 changes: 5 additions & 5 deletions test/e2e/anchor/src/generated/instructions/execute.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ export function getExecuteInstructionDataEncoder(): FixedSizeEncoder<ExecuteInst
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
['amount', getU64Encoder()],
]),
value => ({ ...value, discriminator: EXECUTE_DISCRIMINATOR })
value => ({ ...value, discriminator: EXECUTE_DISCRIMINATOR }),
);
}

Expand Down Expand Up @@ -134,7 +134,7 @@ export async function getExecuteInstructionAsync<
TAccountGuard,
TAccountInstructionSysvarAccount
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): Promise<
ExecuteInstruction<
TProgramAddress,
Expand Down Expand Up @@ -173,7 +173,7 @@ export async function getExecuteInstructionAsync<
getBytesEncoder().encode(
new Uint8Array([
101, 120, 116, 114, 97, 45, 97, 99, 99, 111, 117, 110, 116, 45, 109, 101, 116, 97, 115,
])
]),
),
getAddressEncoder().encode(expectAddress(accounts.mint.value)),
],
Expand Down Expand Up @@ -247,7 +247,7 @@ export function getExecuteInstruction<
TAccountGuard,
TAccountInstructionSysvarAccount
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): ExecuteInstruction<
TProgramAddress,
TAccountSourceAccount,
Expand Down Expand Up @@ -327,7 +327,7 @@ export type ParsedExecuteInstruction<
export function parseExecuteInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(
instruction: Instruction<TProgram> &
InstructionWithAccounts<TAccountMetas> &
InstructionWithData<ReadonlyUint8Array>
InstructionWithData<ReadonlyUint8Array>,
): ParsedExecuteInstruction<TProgram, TAccountMetas> {
if (instruction.accounts.length < 7) {
// TODO: Coded error.
Expand Down
8 changes: 4 additions & 4 deletions test/e2e/anchor/src/generated/instructions/initialize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ export async function getInitializeInstructionAsync<
TAccountSystemProgram,
TAccountPayer
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): Promise<
InitializeInstruction<
TProgramAddress,
Expand Down Expand Up @@ -160,7 +160,7 @@ export async function getInitializeInstructionAsync<
getBytesEncoder().encode(
new Uint8Array([
101, 120, 116, 114, 97, 45, 97, 99, 99, 111, 117, 110, 116, 45, 109, 101, 116, 97, 115,
])
]),
),
getAddressEncoder().encode(expectAddress(accounts.mint.value)),
],
Expand Down Expand Up @@ -227,7 +227,7 @@ export function getInitializeInstruction<
TAccountSystemProgram,
TAccountPayer
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): InitializeInstruction<
TProgramAddress,
TAccountExtraMetasAccount,
Expand Down Expand Up @@ -299,7 +299,7 @@ export type ParsedInitializeInstruction<
export function parseInitializeInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(
instruction: Instruction<TProgram> &
InstructionWithAccounts<TAccountMetas> &
InstructionWithData<ReadonlyUint8Array>
InstructionWithData<ReadonlyUint8Array>,
): ParsedInitializeInstruction<TProgram, TAccountMetas> {
if (instruction.accounts.length < 6) {
// TODO: Coded error.
Expand Down
10 changes: 5 additions & 5 deletions test/e2e/anchor/src/generated/instructions/updateGuard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ export function getUpdateGuardInstructionDataEncoder(): Encoder<UpdateGuardInstr
['transferAmountRule', getOptionEncoder(getTransferAmountRuleEncoder())],
['additionalFieldsRule', getArrayEncoder(getMetadataAdditionalFieldRuleEncoder())],
]),
value => ({ ...value, discriminator: UPDATE_GUARD_DISCRIMINATOR })
value => ({ ...value, discriminator: UPDATE_GUARD_DISCRIMINATOR }),
);
}

Expand Down Expand Up @@ -163,7 +163,7 @@ export async function getUpdateGuardInstructionAsync<
TAccountTokenProgram,
TAccountSystemProgram
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): Promise<
UpdateGuardInstruction<
TProgramAddress,
Expand Down Expand Up @@ -201,7 +201,7 @@ export async function getUpdateGuardInstructionAsync<
new Uint8Array([
119, 101, 110, 95, 116, 111, 107, 101, 110, 95, 116, 114, 97, 110, 115, 102, 101, 114, 95, 103,
117, 97, 114, 100,
])
]),
),
getBytesEncoder().encode(new Uint8Array([103, 117, 97, 114, 100, 95, 118, 49])),
getAddressEncoder().encode(expectAddress(accounts.mint.value)),
Expand Down Expand Up @@ -287,7 +287,7 @@ export function getUpdateGuardInstruction<
TAccountTokenProgram,
TAccountSystemProgram
>,
config?: { programAddress?: TProgramAddress }
config?: { programAddress?: TProgramAddress },
): UpdateGuardInstruction<
TProgramAddress,
TAccountGuard,
Expand Down Expand Up @@ -366,7 +366,7 @@ export type ParsedUpdateGuardInstruction<
export function parseUpdateGuardInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(
instruction: Instruction<TProgram> &
InstructionWithAccounts<TAccountMetas> &
InstructionWithData<ReadonlyUint8Array>
InstructionWithData<ReadonlyUint8Array>,
): ParsedUpdateGuardInstruction<TProgram, TAccountMetas> {
if (instruction.accounts.length < 6) {
// TODO: Coded error.
Expand Down
14 changes: 7 additions & 7 deletions test/e2e/anchor/src/generated/programs/wenTransferGuard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ export enum WenTransferGuardAccount {
}

export function identifyWenTransferGuardAccount(
account: { data: ReadonlyUint8Array } | ReadonlyUint8Array
account: { data: ReadonlyUint8Array } | ReadonlyUint8Array,
): WenTransferGuardAccount {
const data = 'data' in account ? account.data : account;
if (
containsBytes(
data,
fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([185, 149, 156, 78, 245, 108, 172, 68])),
0
0,
)
) {
return WenTransferGuardAccount.GuardV1;
Expand All @@ -45,14 +45,14 @@ export enum WenTransferGuardInstruction {
}

export function identifyWenTransferGuardInstruction(
instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array
instruction: { data: ReadonlyUint8Array } | ReadonlyUint8Array,
): WenTransferGuardInstruction {
const data = 'data' in instruction ? instruction.data : instruction;
if (
containsBytes(
data,
fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([251, 254, 17, 198, 219, 218, 154, 99])),
0
0,
)
) {
return WenTransferGuardInstruction.CreateGuard;
Expand All @@ -61,7 +61,7 @@ export function identifyWenTransferGuardInstruction(
containsBytes(
data,
fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([105, 37, 101, 197, 75, 251, 102, 26])),
0
0,
)
) {
return WenTransferGuardInstruction.Execute;
Expand All @@ -70,7 +70,7 @@ export function identifyWenTransferGuardInstruction(
containsBytes(
data,
fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([43, 34, 13, 49, 167, 88, 235, 235])),
0
0,
)
) {
return WenTransferGuardInstruction.Initialize;
Expand All @@ -79,7 +79,7 @@ export function identifyWenTransferGuardInstruction(
containsBytes(
data,
fixEncoderSize(getBytesEncoder(), 8).encode(new Uint8Array([51, 38, 175, 180, 25, 249, 39, 24])),
0
0,
)
) {
return WenTransferGuardInstruction.UpdateGuard;
Expand Down
8 changes: 4 additions & 4 deletions test/e2e/anchor/src/generated/shared/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export function expectSome<T>(value: T | null | undefined): T {
* @internal
*/
export function expectAddress<T extends string = string>(
value: Address<T> | ProgramDerivedAddress<T> | TransactionSigner<T> | null | undefined
value: Address<T> | ProgramDerivedAddress<T> | TransactionSigner<T> | null | undefined,
): Address<T> {
if (!value) {
throw new Error('Expected a Address.');
Expand All @@ -53,7 +53,7 @@ export function expectAddress<T extends string = string>(
* @internal
*/
export function expectProgramDerivedAddress<T extends string = string>(
value: Address<T> | ProgramDerivedAddress<T> | TransactionSigner<T> | null | undefined
value: Address<T> | ProgramDerivedAddress<T> | TransactionSigner<T> | null | undefined,
): ProgramDerivedAddress<T> {
if (!value || !Array.isArray(value) || !isProgramDerivedAddress(value)) {
throw new Error('Expected a ProgramDerivedAddress.');
Expand All @@ -66,7 +66,7 @@ export function expectProgramDerivedAddress<T extends string = string>(
* @internal
*/
export function expectTransactionSigner<T extends string = string>(
value: Address<T> | ProgramDerivedAddress<T> | TransactionSigner<T> | null | undefined
value: Address<T> | ProgramDerivedAddress<T> | TransactionSigner<T> | null | undefined,
): TransactionSigner<T> {
if (!value || !isTransactionSigner(value)) {
throw new Error('Expected a TransactionSigner.');
Expand Down Expand Up @@ -119,7 +119,7 @@ export function getAccountMetaFactory(programAddress: Address, optionalAccountSt
}

export function isTransactionSigner<TAddress extends string = string>(
value: Address<TAddress> | ProgramDerivedAddress<TAddress> | TransactionSigner<TAddress>
value: Address<TAddress> | ProgramDerivedAddress<TAddress> | TransactionSigner<TAddress>,
): value is TransactionSigner<TAddress> {
return !!value && typeof value === 'object' && 'address' in value && kitIsTransactionSigner(value);
}
4 changes: 2 additions & 2 deletions test/e2e/anchor/src/generated/types/cpiRule.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ export function getCpiRuleCodec(): Codec<CpiRuleArgs, CpiRule> {
// Data Enum Helpers.
export function cpiRule(
kind: 'Allow',
data: GetDiscriminatedUnionVariantContent<CpiRuleArgs, '__kind', 'Allow'>['fields']
data: GetDiscriminatedUnionVariantContent<CpiRuleArgs, '__kind', 'Allow'>['fields'],
): GetDiscriminatedUnionVariant<CpiRuleArgs, '__kind', 'Allow'>;
export function cpiRule(
kind: 'Deny',
data: GetDiscriminatedUnionVariantContent<CpiRuleArgs, '__kind', 'Deny'>['fields']
data: GetDiscriminatedUnionVariantContent<CpiRuleArgs, '__kind', 'Deny'>['fields'],
): GetDiscriminatedUnionVariant<CpiRuleArgs, '__kind', 'Deny'>;
export function cpiRule<K extends CpiRuleArgs['__kind'], Data>(kind: K, data?: Data) {
return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) };
Expand Down
Loading