@fragment-dev/cli
Version:
118 lines (112 loc) • 3.5 kB
JavaScript
import {
AuthenticatedCommand
} from "./chunk-W7HG2VEH.js";
import {
require_lib
} from "./chunk-UD22EIAP.js";
import {
require_source
} from "./chunk-M5OAS5QZ.js";
import {
__toESM,
init_cjs_shims
} from "./chunk-7GH3YGSC.js";
// src/commands/migrate-ledger-entry.ts
init_cjs_shims();
var import_core = __toESM(require_lib(), 1);
var import_chalk = __toESM(require_source(), 1);
var MigrateLedgerEntry = class extends AuthenticatedCommand {
static {
this.summary = "Migrate a Ledger Entry to a new type and version.";
}
static {
this.description = `This mirrors the ${import_chalk.default.magentaBright(
"migrateLedgerEntry"
)} mutation in the GraphQL API.
Migrates an existing Ledger Entry to a new type and version with new parameters.
`;
}
static {
this.examples = ["<%= config.bin %> <%= command.id %>"];
}
static {
this.flags = {
"entry.id": import_core.Flags.string({
char: "e",
description: "The ID of the Ledger Entry to migrate.",
required: true
}),
"ledger.ik": import_core.Flags.string({
char: "l",
description: "The Idempotency Key of the Ledger containing the entry.",
required: true
}),
"new.entry.type": import_core.Flags.string({
char: "t",
required: true,
description: "The new type for the migrated Ledger Entry."
}),
"new.entry.type.version": import_core.Flags.integer({
char: "n",
required: false,
description: "The new version of the Ledger Entry type."
}),
param: import_core.Flags.string({
char: "p",
multiple: true,
summary: "The parameters for the new Ledger Entry. (ex: --param amount=100 --param currency=USD)",
description: "You may specify multiple parameters by repeating the flag."
})
};
}
async run() {
const parameters = this.flags.param?.reduce((acc, param) => {
const [key, value] = param.split("=");
if (!key || !value) {
this.logToStderr(
`Invalid value for parameters. ${import_chalk.default.cyan(
"`parameters`"
)} must be in the format of key=value. You can specify multiple parameters by repeating the flag.
You provided:
${import_chalk.default.yellow(param)}`
);
this.exit(1);
}
if (acc[key]) {
this.logToStderr(
`Invalid value for parameters. ${import_chalk.default.cyan(
"`parameters`"
)} must not contain duplicate keys.
You provided:
${import_chalk.default.yellow(param)}`
);
this.exit(1);
}
acc[key] = value;
return acc;
}, {});
const res = await this.sdk.MigrateLedgerEntry({
input: {
id: this.flags["entry.id"],
newLedgerEntry: {
ledger: {
ik: this.flags["ledger.ik"]
},
type: this.flags["new.entry.type"],
typeVersion: this.flags["new.entry.type.version"],
parameters
}
}
});
if (res.migrateLedgerEntry.__typename !== "MigrateLedgerEntryResult") {
this.logToStderr(`Received error: ${res.migrateLedgerEntry.__typename}`);
this.logToStderr(`Message: ${res.migrateLedgerEntry.message}`);
this.logToStderr(`Code: ${res.migrateLedgerEntry.code}`);
this.logToStderr(`Retryable: ${res.migrateLedgerEntry.retryable}`);
this.exit(1);
}
}
};
export {
MigrateLedgerEntry
};