@strapi/strapi
Version:
An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite
1 lines • 6.85 kB
Source Map (JSON)
{"version":3,"file":"command.mjs","sources":["../../../../../src/cli/commands/transfer/command.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport { createCommand, Option } from 'commander';\nimport { getCommanderConfirmMessage, forceOption, parseURL } from '../../utils/commander';\nimport { exitWith, assertUrlHasProtocol, ifOptions } from '../../utils/helpers';\nimport {\n excludeOption,\n onlyOption,\n throttleOption,\n validateExcludeOnly,\n} from '../../utils/data-transfer';\n\nimport action from './action';\n\n/**\n * `$ strapi transfer`\n */\nconst command = () => {\n return (\n createCommand('transfer')\n .description('Transfer data from one source to another')\n .allowExcessArguments(false)\n .addOption(\n new Option(\n '--from <sourceURL>',\n `URL of the remote Strapi instance to get data from`\n ).argParser(parseURL)\n )\n .addOption(new Option('--from-token <token>', `Transfer token for the remote Strapi source`))\n .addOption(\n new Option(\n '--to <destinationURL>',\n `URL of the remote Strapi instance to send data to`\n ).argParser(parseURL)\n )\n\n .addOption(\n new Option('--to-token <token>', `Transfer token for the remote Strapi destination`)\n )\n .addOption(new Option('--verbose', 'Enable verbose logs'))\n .addOption(forceOption)\n .addOption(excludeOption)\n .addOption(onlyOption)\n .addOption(throttleOption)\n .hook('preAction', validateExcludeOnly)\n .hook(\n 'preAction',\n ifOptions(\n (opts) => !(opts.from || opts.to) || (opts.from && opts.to),\n async () =>\n exitWith(\n 1,\n 'Exactly one remote source (from) or destination (to) option must be provided'\n )\n )\n )\n // If --from is used, validate the URL and token\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.from,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().from, ['https:', 'http:']);\n if (!thisCommand.opts().fromToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi source',\n name: 'fromToken',\n },\n ]);\n if (!answers.fromToken?.length) {\n exitWith(1, 'No token provided for remote source, aborting transfer.');\n }\n thisCommand.opts().fromToken = answers.fromToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete all the local Strapi assets and its database. Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n // If --to is used, validate the URL, token, and confirm restore\n .hook(\n 'preAction',\n ifOptions(\n (opts) => opts.to,\n async (thisCommand) => {\n assertUrlHasProtocol(thisCommand.opts().to, ['https:', 'http:']);\n if (!thisCommand.opts().toToken) {\n const answers = await inquirer.prompt([\n {\n type: 'password',\n message: 'Please enter your transfer token for the remote Strapi destination',\n name: 'toToken',\n },\n ]);\n if (!answers.toToken?.length) {\n exitWith(1, 'No token provided for remote destination, aborting transfer.');\n }\n thisCommand.opts().toToken = answers.toToken;\n }\n\n await getCommanderConfirmMessage(\n 'The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed?',\n { failMessage: 'Transfer process aborted' }\n )(thisCommand);\n }\n )\n )\n .action(action)\n );\n};\n\nexport default command;\n"],"names":["command","createCommand","description","allowExcessArguments","addOption","Option","argParser","parseURL","forceOption","excludeOption","onlyOption","throttleOption","hook","validateExcludeOnly","ifOptions","opts","from","to","exitWith","thisCommand","assertUrlHasProtocol","fromToken","answers","inquirer","prompt","type","message","name","length","getCommanderConfirmMessage","failMessage","toToken","action"],"mappings":"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"}