@codama/renderers-js 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.cjs +46 -37
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs +46 -37
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.node.cjs +46 -37
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +46 -37
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.react-native.mjs +46 -37
- package/dist/index.react-native.mjs.map +1 -1
- package/dist/types/utils/packageJson.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.node.cjs
CHANGED
|
@@ -341,15 +341,20 @@ var DEFAULT_NAME_TRANSFORMERS = {
|
|
|
341
341
|
// src/utils/options.ts
|
|
342
342
|
var DEFAULT_KIT_IMPORT_STRATEGY = "preferRoot";
|
|
343
343
|
var DEFAULT_DEPENDENCY_VERSIONS = {
|
|
344
|
-
"@solana/accounts": "^6.
|
|
345
|
-
"@solana/addresses": "^6.
|
|
346
|
-
"@solana/codecs": "^6.
|
|
347
|
-
"@solana/errors": "^6.
|
|
348
|
-
"@solana/
|
|
349
|
-
"@solana/
|
|
350
|
-
"@solana/
|
|
351
|
-
"@solana/
|
|
352
|
-
"@solana/
|
|
344
|
+
"@solana/accounts": "^6.1.0",
|
|
345
|
+
"@solana/addresses": "^6.1.0",
|
|
346
|
+
"@solana/codecs": "^6.1.0",
|
|
347
|
+
"@solana/errors": "^6.1.0",
|
|
348
|
+
"@solana/instruction-plans": "^6.1.0",
|
|
349
|
+
"@solana/instructions": "^6.1.0",
|
|
350
|
+
"@solana/kit": "^6.1.0",
|
|
351
|
+
"@solana/plugin-core": "^6.1.0",
|
|
352
|
+
"@solana/plugin-interfaces": "^6.1.0",
|
|
353
|
+
"@solana/program-client-core": "^6.1.0",
|
|
354
|
+
"@solana/programs": "^6.1.0",
|
|
355
|
+
"@solana/rpc-api": "^6.1.0",
|
|
356
|
+
"@solana/rpc-types": "^6.1.0",
|
|
357
|
+
"@solana/signers": "^6.1.0"
|
|
353
358
|
};
|
|
354
359
|
async function syncPackageJson(renderMap, formatCode, packageFolder, options) {
|
|
355
360
|
const shouldSyncPackageJson = options.syncPackageJson ?? true;
|
|
@@ -2319,10 +2324,14 @@ function getProgramPluginInstructionsTypeFragment(scope) {
|
|
|
2319
2324
|
programNode.instructions.map((instruction) => {
|
|
2320
2325
|
const name = nameApi.programPluginInstructionKey(instruction.name);
|
|
2321
2326
|
const isAsync = asyncInstructions.includes(instruction.name);
|
|
2322
|
-
|
|
2323
|
-
const
|
|
2324
|
-
const
|
|
2325
|
-
|
|
2327
|
+
let instructionInputType = isAsync ? use("type " + nameApi.instructionAsyncInputType(instruction.name), "generatedInstructions") : use("type " + nameApi.instructionSyncInputType(instruction.name), "generatedInstructions");
|
|
2328
|
+
const instructionFunction = isAsync ? use("type " + nameApi.instructionAsyncFunction(instruction.name), "generatedInstructions") : use("type " + nameApi.instructionSyncFunction(instruction.name), "generatedInstructions");
|
|
2329
|
+
const payerDefaultValues = getPayerDefaultValues(instruction);
|
|
2330
|
+
if (payerDefaultValues.length > 0) {
|
|
2331
|
+
const fieldStringUnion = payerDefaultValues.map(({ name: name2 }) => `"${name2}"`).join(" | ");
|
|
2332
|
+
instructionInputType = fragment`MakeOptional<${instructionInputType}, ${fieldStringUnion}>`;
|
|
2333
|
+
}
|
|
2334
|
+
return fragment`${name}: (input: ${instructionInputType}) => ReturnType<typeof ${instructionFunction}> & ${selfPlanAndSendFunctions};`;
|
|
2326
2335
|
}),
|
|
2327
2336
|
(c) => c.join(" ")
|
|
2328
2337
|
);
|
|
@@ -2340,7 +2349,7 @@ function getProgramPluginRequirementsTypeFragment(scope) {
|
|
|
2340
2349
|
const requirements = mergeFragments(
|
|
2341
2350
|
[
|
|
2342
2351
|
hasAccounts ? clientWithRpc : void 0,
|
|
2343
|
-
|
|
2352
|
+
hasPayerDefaultValues(programNode) ? clientWithPayer : void 0,
|
|
2344
2353
|
hasInstructions ? clientWithTransactionPlanning : void 0,
|
|
2345
2354
|
hasInstructions ? clientWithTransactionSending : void 0
|
|
2346
2355
|
],
|
|
@@ -2360,7 +2369,7 @@ function getProgramPluginFunctionFragment(scope) {
|
|
|
2360
2369
|
);
|
|
2361
2370
|
return fragment`export function ${programPluginFunction}() {
|
|
2362
2371
|
return <T extends ${programPluginRequirementsType}>(client: T) => {
|
|
2363
|
-
return { ...client, ${programPluginKey}: { ${fields}
|
|
2372
|
+
return { ...client, ${programPluginKey}: <${programPluginType}>{ ${fields} } };
|
|
2364
2373
|
};
|
|
2365
2374
|
}`;
|
|
2366
2375
|
}
|
|
@@ -2385,40 +2394,40 @@ function getProgramPluginInstructionsObjectFragment(scope) {
|
|
|
2385
2394
|
programNode.instructions.map((instruction) => {
|
|
2386
2395
|
const name = nameApi.programPluginInstructionKey(instruction.name);
|
|
2387
2396
|
const isAsync = asyncInstructions.includes(instruction.name);
|
|
2388
|
-
const instructionInputType = isAsync ? use("type " + nameApi.instructionAsyncInputType(instruction.name), "generatedInstructions") : use("type " + nameApi.instructionSyncInputType(instruction.name), "generatedInstructions");
|
|
2389
2397
|
const instructionFunction = isAsync ? use(nameApi.instructionAsyncFunction(instruction.name), "generatedInstructions") : use(nameApi.instructionSyncFunction(instruction.name), "generatedInstructions");
|
|
2390
2398
|
const addSelfPlanAndSendFunctions = use("addSelfPlanAndSendFunctions", "solanaProgramClientCore");
|
|
2391
|
-
const
|
|
2392
|
-
|
|
2393
|
-
|
|
2399
|
+
const payerDefaultValues = getPayerDefaultValues(instruction);
|
|
2400
|
+
let input = fragment`input`;
|
|
2401
|
+
if (payerDefaultValues.length > 0) {
|
|
2402
|
+
const fieldOverrides = mergeFragments(
|
|
2403
|
+
payerDefaultValues.map(({ name: name2, signer }) => {
|
|
2404
|
+
const signerDefault = signer ? "client.payer" : "client.payer.address";
|
|
2405
|
+
return fragment`${name2}: input.${name2} ?? ${signerDefault}`;
|
|
2406
|
+
}),
|
|
2407
|
+
(c) => c.join(", ")
|
|
2408
|
+
);
|
|
2409
|
+
input = fragment`{ ...input, ${fieldOverrides} }`;
|
|
2394
2410
|
}
|
|
2395
|
-
|
|
2396
|
-
const processedInputWithDefaultPayerValues = inputWithDefaultPayerValues.map((inputNode) => {
|
|
2397
|
-
return nodes.isNode(inputNode, "instructionAccountNode") ? { name: inputNode.name, signer: inputNode.isSigner !== false } : { name: renamedArgs.get(inputNode.name) ?? inputNode.name, signer: false };
|
|
2398
|
-
});
|
|
2399
|
-
const fieldStringUnion = processedInputWithDefaultPayerValues.map(({ name: name2 }) => `"${name2}"`).join(" | ");
|
|
2400
|
-
const instructionInputTypeWithPayer = fragment`MakeOptional<${instructionInputType}, ${fieldStringUnion}>`;
|
|
2401
|
-
const fieldOverrides = mergeFragments(
|
|
2402
|
-
processedInputWithDefaultPayerValues.map(
|
|
2403
|
-
({ name: name2, signer }) => fragment`${name2}: input.${name2} ?? ${signer ? "client.payer" : "client.payer.address"}`
|
|
2404
|
-
),
|
|
2405
|
-
(c) => c.join(", ")
|
|
2406
|
-
);
|
|
2407
|
-
const inputWithPayer = fragment`{ ...input, ${fieldOverrides} }`;
|
|
2408
|
-
return fragment`${name}: (input: ${instructionInputTypeWithPayer}) => ${addSelfPlanAndSendFunctions}(client, ${instructionFunction}(${inputWithPayer}))`;
|
|
2411
|
+
return fragment`${name}: input => ${addSelfPlanAndSendFunctions}(client, ${instructionFunction}(${input}))`;
|
|
2409
2412
|
}),
|
|
2410
2413
|
(c) => c.join(", ")
|
|
2411
2414
|
);
|
|
2412
2415
|
return fragment`instructions: { ${fields} }`;
|
|
2413
2416
|
}
|
|
2414
2417
|
function getMakeOptionalHelperTypeFragment(scope) {
|
|
2415
|
-
if (!
|
|
2418
|
+
if (!hasPayerDefaultValues(scope.programNode)) return;
|
|
2416
2419
|
return fragment`type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;`;
|
|
2417
2420
|
}
|
|
2418
|
-
function
|
|
2419
|
-
return programNode.instructions.some((instruction) =>
|
|
2421
|
+
function hasPayerDefaultValues(programNode) {
|
|
2422
|
+
return programNode.instructions.some((instruction) => getPayerDefaultValueNodes(instruction).length > 0);
|
|
2423
|
+
}
|
|
2424
|
+
function getPayerDefaultValues(instructionNode) {
|
|
2425
|
+
const renamedArgs = getRenamedArgsMap(instructionNode);
|
|
2426
|
+
return getPayerDefaultValueNodes(instructionNode).map((inputNode) => {
|
|
2427
|
+
return nodes.isNode(inputNode, "instructionAccountNode") ? { name: inputNode.name, signer: inputNode.isSigner !== false } : { name: renamedArgs.get(inputNode.name) ?? inputNode.name, signer: false };
|
|
2428
|
+
});
|
|
2420
2429
|
}
|
|
2421
|
-
function
|
|
2430
|
+
function getPayerDefaultValueNodes(instructionNode) {
|
|
2422
2431
|
return [
|
|
2423
2432
|
...instructionNode.accounts.filter((a) => !a.isOptional && nodes.isNode(a.defaultValue, "payerValueNode")),
|
|
2424
2433
|
...instructionNode.arguments.filter((a) => nodes.isNode(a.defaultValue, "payerValueNode"))
|