From fab83c2ebfc580aea9f7b9f44ce54380f0486f52 Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 09:24:44 +0100 Subject: [PATCH 01/12] fix: add support for exec and refactor code --- dist/npm-to-yarn.mjs | 266 +++++++++++++++++++--------------- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 278 +++++++++++++++++++++--------------- dist/npm-to-yarn.umd.js.map | 2 +- dist/types/index.d.ts | 11 ++ dist/types/npmToYarn.d.ts | 1 + dist/types/utils.d.ts | 7 +- dist/types/yarnToNpm.d.ts | 1 + src/index.ts | 236 +++--------------------------- src/npmToYarn.ts | 132 +++++++++++++++++ src/utils.ts | 36 +---- src/yarnToNpm.ts | 99 +++++++++++++ test/index.spec.ts | 21 +++ 13 files changed, 609 insertions(+), 483 deletions(-) create mode 100644 dist/types/npmToYarn.d.ts create mode 100644 dist/types/yarnToNpm.d.ts create mode 100644 src/npmToYarn.ts create mode 100644 src/yarnToNpm.ts diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 735af46..9c1c64b 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -28,6 +28,7 @@ var yarnCLICommands = [ 'self-update', 'tag', 'team', + 'link', 'unlink', 'upgrade', 'upgrade-interactive', @@ -35,9 +36,111 @@ var yarnCLICommands = [ 'versions', 'why', 'workspace', - 'workspaces' + 'workspaces', ]; +var yarnToNpmTable = { + add: function (command, global) { + var dev; + if (command === 'add --force') { + return 'rebuild'; + } + var ret = command + .replace('add', 'install') + .replace(/\s*--dev/, function () { + dev = true; + return ''; + }) + .replace('--no-lockfile', '--no-package-lock') + .replace('--optional', '--save-optional') + .replace('--exact', '--save-exact'); + if (dev) { + ret += ' --save-dev'; + } + else if (global) { + ret += ' --global'; + } + else { + ret += ' --save'; + } + return ret; + }, + remove: function (command, global) { + var dev; + var ret = command + .replace('remove', 'uninstall') + .replace(/\s*--dev/, function () { + dev = true; + return ''; + }) + .replace('--no-lockfile', '--no-package-lock') + .replace('--optional', '--save-optional') + .replace('--exact', '--save-exact'); + if (dev) { + ret += ' --save-dev'; + } + else if (global) { + ret += ' --global'; + } + else { + ret += ' --save'; + } + return ret; + }, + version: function (command) { + return command.replace(/--(major|minor|patch)/, '$1'); + }, + install: 'install', + list: function (command) { + return command + .replace(/--pattern ["']([^"']+)["']/, function (_, packages) { + return packages.split('|').join(' '); + }) + .replace(/^list/, 'ls'); + }, + init: 'init', + create: 'init', + run: 'run', + start: 'start', + stop: 'stop', + test: 'test', + global: function (command) { + if (/^global add/.test(command)) { + return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true); + } + else if (/^global remove/.test(command)) { + return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true); + } + return 'npm ' + command + "\n# couldn't auto-convert command"; + }, +}; +function yarnToNPM(_m, command) { + command = (command || '').trim(); + if (command === '') { + return 'npm install'; + } + var firstCommand = (/\w+/.exec(command) || [''])[0]; + if (unchangedCLICommands.includes(firstCommand)) { + return 'npm ' + command; + } + if (firstCommand in yarnToNpmTable) { + var converter = yarnToNpmTable[firstCommand]; + if (typeof converter === 'function') { + return 'npm ' + converter(command); + } + else { + return 'npm ' + command.replace(firstCommand, converter); + } + } + else if (!yarnCLICommands.includes(firstCommand)) { + // i.e., yarn grunt -> npm run grunt + return 'npm run ' + command; + } + else { + return 'npm ' + command + "\n# couldn't auto-convert command"; + } +} + var npmToYarnTable = { install: function (command) { if (/^install *$/.test(command)) { @@ -46,10 +149,10 @@ var npmToYarnTable = { var ret = command .replace('install', 'add') .replace('--save-dev', '--dev') - .replace('--save-exact', '--exact') + .replace('--no-package-lock', '--no-lockfile') .replace('--save-optional', '--optional') - .replace(/\s*--save/, '') - .replace('--no-package-lock', '--no-lockfile'); + .replace('--save-exact', '--exact') + .replace(/\s*--save/, ''); if (/ -(?:-global|g)(?![^\b])/.test(ret)) { ret = ret.replace(/ -(?:-global|g)(?![^\b])/, ''); ret = 'global ' + ret; @@ -74,6 +177,22 @@ var npmToYarnTable = { rebuild: function (command) { return command.replace('rebuild', 'add --force'); }, + exec: function (command) { + return command.replace(/^exec\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { + var result = ''; + if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { + result += data; + } + else { + result += 'run ' + (data || ''); + } + if (dash) + result += dash.replace(/^\s--/, ''); + if (rest) + result += rest; + return result; + }); + }, run: function (command) { return command.replace(/^run\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { var result = ''; @@ -130,133 +249,54 @@ var npmToYarnTable = { return command.replace('init', 'create'); } return command.replace(' --scope', ''); - } -}; -var yarnToNpmTable = { - add: function (command, global) { - var dev; - if (command === 'add --force') { - return 'rebuild'; - } - var ret = command - .replace('add', 'install') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; - } - else if (global) { - ret += ' --global'; - } - else { - ret += ' --save'; - } - return ret; - }, - remove: function (command, global) { - var dev; - var ret = command - .replace('remove', 'uninstall') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; - } - else if (global) { - ret += ' --global'; - } - else { - ret += ' --save'; - } - return ret; - }, - version: function (command) { - return command.replace(/--(major|minor|patch)/, '$1'); - }, - install: 'install', - list: function (command) { - return command - .replace(/--pattern ["']([^"']+)["']/, function (_, packages) { - return packages.split('|').join(' '); - }) - .replace(/^list/, 'ls'); }, - init: 'init', - create: 'init', - run: 'run', - global: function (command) { - if (/^global add/.test(command)) { - return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true); - } - else if (/^global remove/.test(command)) { - return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true); - } - } + start: 'start', + stop: 'stop', + test: 'test', }; -function convert(str, to) { - var returnStr = str; - if (to === 'npm') { - return returnStr.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); - } - else { - return returnStr.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); - } -} -function npmToYarn(m, command) { +function npmToYarn(_m, command) { command = (command || '').trim(); var firstCommand = (/\w+/.exec(command) || [''])[0]; if (unchangedCLICommands.includes(firstCommand)) { return 'yarn ' + command; } - else if (Object.prototype.hasOwnProperty.call(npmToYarnTable, firstCommand) && - npmToYarnTable[firstCommand]) { - if (typeof npmToYarnTable[firstCommand] === 'function') { - return 'yarn ' + npmToYarnTable[firstCommand](command); + if (firstCommand in npmToYarnTable) { + var converter = npmToYarnTable[firstCommand]; + if (typeof converter === 'function') { + return 'yarn ' + converter(command); } else { - return 'yarn ' + command.replace(firstCommand, npmToYarnTable[firstCommand]); + return 'yarn ' + command.replace(firstCommand, converter); } } else { return 'yarn ' + command + "\n# couldn't auto-convert command"; } +} + +/** + * Converts yarn to npm command + */ +function convertToNpm(str) { + return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); } -function yarnToNPM(m, command) { - command = (command || '').trim(); - if (command === '') { - return 'npm install'; - } - var firstCommand = (/\w+/.exec(command) || [''])[0]; - if (unchangedCLICommands.includes(firstCommand)) { - return 'npm ' + command; - } - else if (Object.prototype.hasOwnProperty.call(yarnToNpmTable, firstCommand) && - yarnToNpmTable[firstCommand]) { - if (typeof yarnToNpmTable[firstCommand] === 'function') { - return 'npm ' + yarnToNpmTable[firstCommand](command); - } - else { - return 'npm ' + command.replace(firstCommand, yarnToNpmTable[firstCommand]); - } - } - else if (!yarnCLICommands.includes(firstCommand)) { - // i.e., yarn grunt -> npm run grunt - return 'npm run ' + command; +/** + * Converts npm to yarn command + */ +function convertToYarn(str) { + return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); +} +/** + * Converts between npm and yarn command + */ +function convert(str, to) { + if (to === 'npm') { + return convertToNpm(str); } else { - return 'npm ' + command + "\n# couldn't auto-convert command"; + return convertToYarn(str); } } -export { convert as default }; +export { convertToNpm, convertToYarn, convert as default }; //# sourceMappingURL=npm-to-yarn.mjs.map diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index 5a4daa0..26417f6 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/index.ts"],"sourcesContent":["export var unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport var yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport var uniqueYarnCLICommands = [\n 'add',\n 'autoclean',\n 'check',\n 'generate-lock-entry',\n 'global',\n 'import',\n 'info',\n 'licenses',\n 'link',\n 'lockfile',\n 'policies',\n 'remove',\n 'run',\n 'self-update',\n 'tag',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport var npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","import {\n unchangedCLICommands,\n yarnCLICommands,\n uniqueYarnCLICommands,\n npmCLICommands\n} from './utils'\n\n// keys are NPM, vals are Yarn\n\ninterface Indexable {\n [index: string]: string | ((command: string) => string)\n}\n\nvar npmToYarnTable: Indexable = {\n install: function (command: string) {\n if (/^install *$/.test(command)) {\n return 'install'\n }\n var ret = command\n .replace('install', 'add')\n .replace('--save-dev', '--dev')\n .replace('--save-exact', '--exact')\n .replace('--save-optional', '--optional')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n uninstall: function (command: string) {\n var ret = command\n .replace('uninstall', 'remove')\n .replace('--save-dev', '--dev')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n version: function (command: string) {\n return command.replace(/(major|minor|patch)/, '--$1')\n },\n rebuild: function (command: string) {\n return command.replace('rebuild', 'add --force')\n },\n run: function (command: string) {\n return command.replace(\n /^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n var result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n ls: function (command: string) {\n return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string {\n var result = 'list'\n if (args) {\n var ended = false\n var packages = []\n var items = args.split(' ').filter(Boolean)\n for (var item of items) {\n if (ended) {\n result += ' ' + item\n } else if (item.startsWith('-')) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n packages = []\n ended = true\n result += ' ' + item\n } else {\n packages.push(item)\n }\n }\n if (packages.length > 0) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n }\n return result\n } else {\n return 'list'\n }\n })\n },\n list: function (command: string) {\n return (npmToYarnTable.ls as Function)(command)\n },\n init: function (command: string) {\n if (/^init (?!-).*$/.test(command)) {\n return command.replace('init', 'create')\n }\n return command.replace(' --scope', '')\n }\n}\n\nvar yarnToNpmTable: Indexable = {\n add: function (command: string, global?: true) {\n var dev\n if (command === 'add --force') {\n return 'rebuild'\n }\n var ret = command\n .replace('add', 'install')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n remove: function (command: string, global?: true) {\n var dev\n var ret = command\n .replace('remove', 'uninstall')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n version: function (command: string) {\n return command.replace(/--(major|minor|patch)/, '$1')\n },\n install: 'install',\n list: function (command: string) {\n return command\n .replace(/--pattern [\"']([^\"']+)[\"']/, function (_, packages: string) {\n return packages.split('|').join(' ')\n })\n .replace(/^list/, 'ls')\n },\n init: 'init',\n create: 'init',\n run: 'run',\n global: function (command: string) {\n if (/^global add/.test(command)) {\n return (yarnToNpmTable.add as Function)(command.replace(/^global add/, 'add'), true)\n } else if (/^global remove/.test(command)) {\n return (yarnToNpmTable.remove as Function)(command.replace(/^global remove/, 'remove'), true)\n }\n }\n}\n\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n var returnStr = str\n if (to === 'npm') {\n return returnStr.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return returnStr.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n\nfunction npmToYarn (m: string, command: string): string {\n command = (command || '').trim()\n var firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'yarn ' + command\n } else if (\n Object.prototype.hasOwnProperty.call(npmToYarnTable, firstCommand) &&\n npmToYarnTable[firstCommand]\n ) {\n if (typeof npmToYarnTable[firstCommand] === 'function') {\n return 'yarn ' + (npmToYarnTable[firstCommand] as Function)(command)\n } else {\n return 'yarn ' + command.replace(firstCommand, npmToYarnTable[firstCommand] as string)\n }\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n\nfunction yarnToNPM (m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n var firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'npm ' + command\n } else if (\n Object.prototype.hasOwnProperty.call(yarnToNpmTable, firstCommand) &&\n yarnToNpmTable[firstCommand]\n ) {\n if (typeof yarnToNpmTable[firstCommand] === 'function') {\n return 'npm ' + (yarnToNpmTable[firstCommand] as Function)(command)\n } else {\n return 'npm ' + command.replace(firstCommand, yarnToNpmTable[firstCommand] as string)\n }\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst yarnToNpmTable = {\n add(command: string, global?: true) {\n let dev\n if (command === 'add --force') {\n return 'rebuild'\n }\n let ret = command\n .replace('add', 'install')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n remove(command: string, global?: true) {\n let dev\n let ret = command\n .replace('remove', 'uninstall')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n version(command: string) {\n return command.replace(/--(major|minor|patch)/, '$1')\n },\n install: 'install',\n list(command: string) {\n return command\n .replace(/--pattern [\"']([^\"']+)[\"']/, function (_, packages: string) {\n return packages.split('|').join(' ')\n })\n .replace(/^list/, 'ls')\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(command: string) {\n if (/^global add/.test(command)) {\n return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true)\n } else if (/^global remove/.test(command)) {\n return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true)\n }\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'npm ' + command\n }\n\n if (firstCommand in yarnToNpmTable) {\n const converter = yarnToNpmTable[firstCommand as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n return 'npm ' + converter(command)\n } else {\n return 'npm ' + command.replace(firstCommand, converter)\n }\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst npmToYarnTable = {\n install(command: string) {\n if (/^install *$/.test(command)) {\n return 'install'\n }\n let ret = command\n .replace('install', 'add')\n .replace('--save-dev', '--dev')\n .replace('--no-package-lock', '--no-lockfile')\n .replace('--save-optional', '--optional')\n .replace('--save-exact', '--exact')\n .replace(/\\s*--save/, '')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n uninstall(command: string) {\n let ret = command\n .replace('uninstall', 'remove')\n .replace('--save-dev', '--dev')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n version(command: string) {\n return command.replace(/(major|minor|patch)/, '--$1')\n },\n rebuild(command: string) {\n return command.replace('rebuild', 'add --force')\n },\n exec (command: string) {\n return command.replace(\n /^exec\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n run(command: string) {\n return command.replace(\n /^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n ls(command: string) {\n return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string {\n let result = 'list'\n if (args) {\n let ended = false\n let packages = []\n const items = args.split(' ').filter(Boolean)\n for (const item of items) {\n if (ended) {\n result += ' ' + item\n } else if (item.startsWith('-')) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n packages = []\n ended = true\n result += ' ' + item\n } else {\n packages.push(item)\n }\n }\n if (packages.length > 0) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n }\n return result\n } else {\n return 'list'\n }\n })\n },\n list(command: string) {\n return npmToYarnTable.ls(command)\n },\n init(command: string) {\n if (/^init (?!-).*$/.test(command)) {\n return command.replace('init', 'create')\n }\n return command.replace(' --scope', '')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n command = (command || '').trim()\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'yarn ' + command\n }\n\n if (firstCommand in npmToYarnTable) {\n const converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n return 'yarn ' + converter(command)\n } else {\n return 'yarn ' + command.replace(firstCommand, converter)\n }\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index eda4b44..3d1ed02 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.n2y = factory()); -})(this, (function () { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n2y = {})); +})(this, (function (exports) { 'use strict'; var unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']; var yarnCLICommands = [ @@ -34,6 +34,7 @@ 'self-update', 'tag', 'team', + 'link', 'unlink', 'upgrade', 'upgrade-interactive', @@ -41,9 +42,111 @@ 'versions', 'why', 'workspace', - 'workspaces' + 'workspaces', ]; + var yarnToNpmTable = { + add: function (command, global) { + var dev; + if (command === 'add --force') { + return 'rebuild'; + } + var ret = command + .replace('add', 'install') + .replace(/\s*--dev/, function () { + dev = true; + return ''; + }) + .replace('--no-lockfile', '--no-package-lock') + .replace('--optional', '--save-optional') + .replace('--exact', '--save-exact'); + if (dev) { + ret += ' --save-dev'; + } + else if (global) { + ret += ' --global'; + } + else { + ret += ' --save'; + } + return ret; + }, + remove: function (command, global) { + var dev; + var ret = command + .replace('remove', 'uninstall') + .replace(/\s*--dev/, function () { + dev = true; + return ''; + }) + .replace('--no-lockfile', '--no-package-lock') + .replace('--optional', '--save-optional') + .replace('--exact', '--save-exact'); + if (dev) { + ret += ' --save-dev'; + } + else if (global) { + ret += ' --global'; + } + else { + ret += ' --save'; + } + return ret; + }, + version: function (command) { + return command.replace(/--(major|minor|patch)/, '$1'); + }, + install: 'install', + list: function (command) { + return command + .replace(/--pattern ["']([^"']+)["']/, function (_, packages) { + return packages.split('|').join(' '); + }) + .replace(/^list/, 'ls'); + }, + init: 'init', + create: 'init', + run: 'run', + start: 'start', + stop: 'stop', + test: 'test', + global: function (command) { + if (/^global add/.test(command)) { + return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true); + } + else if (/^global remove/.test(command)) { + return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true); + } + return 'npm ' + command + "\n# couldn't auto-convert command"; + }, + }; + function yarnToNPM(_m, command) { + command = (command || '').trim(); + if (command === '') { + return 'npm install'; + } + var firstCommand = (/\w+/.exec(command) || [''])[0]; + if (unchangedCLICommands.includes(firstCommand)) { + return 'npm ' + command; + } + if (firstCommand in yarnToNpmTable) { + var converter = yarnToNpmTable[firstCommand]; + if (typeof converter === 'function') { + return 'npm ' + converter(command); + } + else { + return 'npm ' + command.replace(firstCommand, converter); + } + } + else if (!yarnCLICommands.includes(firstCommand)) { + // i.e., yarn grunt -> npm run grunt + return 'npm run ' + command; + } + else { + return 'npm ' + command + "\n# couldn't auto-convert command"; + } + } + var npmToYarnTable = { install: function (command) { if (/^install *$/.test(command)) { @@ -52,10 +155,10 @@ var ret = command .replace('install', 'add') .replace('--save-dev', '--dev') - .replace('--save-exact', '--exact') + .replace('--no-package-lock', '--no-lockfile') .replace('--save-optional', '--optional') - .replace(/\s*--save/, '') - .replace('--no-package-lock', '--no-lockfile'); + .replace('--save-exact', '--exact') + .replace(/\s*--save/, ''); if (/ -(?:-global|g)(?![^\b])/.test(ret)) { ret = ret.replace(/ -(?:-global|g)(?![^\b])/, ''); ret = 'global ' + ret; @@ -80,6 +183,22 @@ rebuild: function (command) { return command.replace('rebuild', 'add --force'); }, + exec: function (command) { + return command.replace(/^exec\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { + var result = ''; + if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { + result += data; + } + else { + result += 'run ' + (data || ''); + } + if (dash) + result += dash.replace(/^\s--/, ''); + if (rest) + result += rest; + return result; + }); + }, run: function (command) { return command.replace(/^run\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { var result = ''; @@ -136,135 +255,60 @@ return command.replace('init', 'create'); } return command.replace(' --scope', ''); - } - }; - var yarnToNpmTable = { - add: function (command, global) { - var dev; - if (command === 'add --force') { - return 'rebuild'; - } - var ret = command - .replace('add', 'install') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; - } - else if (global) { - ret += ' --global'; - } - else { - ret += ' --save'; - } - return ret; }, - remove: function (command, global) { - var dev; - var ret = command - .replace('remove', 'uninstall') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; - } - else if (global) { - ret += ' --global'; - } - else { - ret += ' --save'; - } - return ret; - }, - version: function (command) { - return command.replace(/--(major|minor|patch)/, '$1'); - }, - install: 'install', - list: function (command) { - return command - .replace(/--pattern ["']([^"']+)["']/, function (_, packages) { - return packages.split('|').join(' '); - }) - .replace(/^list/, 'ls'); - }, - init: 'init', - create: 'init', - run: 'run', - global: function (command) { - if (/^global add/.test(command)) { - return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true); - } - else if (/^global remove/.test(command)) { - return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true); - } - } + start: 'start', + stop: 'stop', + test: 'test', }; - function convert(str, to) { - var returnStr = str; - if (to === 'npm') { - return returnStr.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); - } - else { - return returnStr.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); - } - } - function npmToYarn(m, command) { + function npmToYarn(_m, command) { command = (command || '').trim(); var firstCommand = (/\w+/.exec(command) || [''])[0]; if (unchangedCLICommands.includes(firstCommand)) { return 'yarn ' + command; } - else if (Object.prototype.hasOwnProperty.call(npmToYarnTable, firstCommand) && - npmToYarnTable[firstCommand]) { - if (typeof npmToYarnTable[firstCommand] === 'function') { - return 'yarn ' + npmToYarnTable[firstCommand](command); + if (firstCommand in npmToYarnTable) { + var converter = npmToYarnTable[firstCommand]; + if (typeof converter === 'function') { + return 'yarn ' + converter(command); } else { - return 'yarn ' + command.replace(firstCommand, npmToYarnTable[firstCommand]); + return 'yarn ' + command.replace(firstCommand, converter); } } else { return 'yarn ' + command + "\n# couldn't auto-convert command"; } + } + + /** + * Converts yarn to npm command + */ + function convertToNpm(str) { + return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); } - function yarnToNPM(m, command) { - command = (command || '').trim(); - if (command === '') { - return 'npm install'; - } - var firstCommand = (/\w+/.exec(command) || [''])[0]; - if (unchangedCLICommands.includes(firstCommand)) { - return 'npm ' + command; - } - else if (Object.prototype.hasOwnProperty.call(yarnToNpmTable, firstCommand) && - yarnToNpmTable[firstCommand]) { - if (typeof yarnToNpmTable[firstCommand] === 'function') { - return 'npm ' + yarnToNpmTable[firstCommand](command); - } - else { - return 'npm ' + command.replace(firstCommand, yarnToNpmTable[firstCommand]); - } - } - else if (!yarnCLICommands.includes(firstCommand)) { - // i.e., yarn grunt -> npm run grunt - return 'npm run ' + command; + /** + * Converts npm to yarn command + */ + function convertToYarn(str) { + return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); + } + /** + * Converts between npm and yarn command + */ + function convert(str, to) { + if (to === 'npm') { + return convertToNpm(str); } else { - return 'npm ' + command + "\n# couldn't auto-convert command"; + return convertToYarn(str); } } - return convert; + exports.convertToNpm = convertToNpm; + exports.convertToYarn = convertToYarn; + exports.default = convert; + + Object.defineProperty(exports, '__esModule', { value: true }); })); //# sourceMappingURL=npm-to-yarn.umd.js.map diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index 689f3cd..91ae788 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/index.ts"],"sourcesContent":["export var unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport var yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport var uniqueYarnCLICommands = [\n 'add',\n 'autoclean',\n 'check',\n 'generate-lock-entry',\n 'global',\n 'import',\n 'info',\n 'licenses',\n 'link',\n 'lockfile',\n 'policies',\n 'remove',\n 'run',\n 'self-update',\n 'tag',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport var npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","import {\n unchangedCLICommands,\n yarnCLICommands,\n uniqueYarnCLICommands,\n npmCLICommands\n} from './utils'\n\n// keys are NPM, vals are Yarn\n\ninterface Indexable {\n [index: string]: string | ((command: string) => string)\n}\n\nvar npmToYarnTable: Indexable = {\n install: function (command: string) {\n if (/^install *$/.test(command)) {\n return 'install'\n }\n var ret = command\n .replace('install', 'add')\n .replace('--save-dev', '--dev')\n .replace('--save-exact', '--exact')\n .replace('--save-optional', '--optional')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n uninstall: function (command: string) {\n var ret = command\n .replace('uninstall', 'remove')\n .replace('--save-dev', '--dev')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n version: function (command: string) {\n return command.replace(/(major|minor|patch)/, '--$1')\n },\n rebuild: function (command: string) {\n return command.replace('rebuild', 'add --force')\n },\n run: function (command: string) {\n return command.replace(\n /^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n var result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n ls: function (command: string) {\n return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string {\n var result = 'list'\n if (args) {\n var ended = false\n var packages = []\n var items = args.split(' ').filter(Boolean)\n for (var item of items) {\n if (ended) {\n result += ' ' + item\n } else if (item.startsWith('-')) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n packages = []\n ended = true\n result += ' ' + item\n } else {\n packages.push(item)\n }\n }\n if (packages.length > 0) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n }\n return result\n } else {\n return 'list'\n }\n })\n },\n list: function (command: string) {\n return (npmToYarnTable.ls as Function)(command)\n },\n init: function (command: string) {\n if (/^init (?!-).*$/.test(command)) {\n return command.replace('init', 'create')\n }\n return command.replace(' --scope', '')\n }\n}\n\nvar yarnToNpmTable: Indexable = {\n add: function (command: string, global?: true) {\n var dev\n if (command === 'add --force') {\n return 'rebuild'\n }\n var ret = command\n .replace('add', 'install')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n remove: function (command: string, global?: true) {\n var dev\n var ret = command\n .replace('remove', 'uninstall')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n version: function (command: string) {\n return command.replace(/--(major|minor|patch)/, '$1')\n },\n install: 'install',\n list: function (command: string) {\n return command\n .replace(/--pattern [\"']([^\"']+)[\"']/, function (_, packages: string) {\n return packages.split('|').join(' ')\n })\n .replace(/^list/, 'ls')\n },\n init: 'init',\n create: 'init',\n run: 'run',\n global: function (command: string) {\n if (/^global add/.test(command)) {\n return (yarnToNpmTable.add as Function)(command.replace(/^global add/, 'add'), true)\n } else if (/^global remove/.test(command)) {\n return (yarnToNpmTable.remove as Function)(command.replace(/^global remove/, 'remove'), true)\n }\n }\n}\n\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n var returnStr = str\n if (to === 'npm') {\n return returnStr.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return returnStr.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n\nfunction npmToYarn (m: string, command: string): string {\n command = (command || '').trim()\n var firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'yarn ' + command\n } else if (\n Object.prototype.hasOwnProperty.call(npmToYarnTable, firstCommand) &&\n npmToYarnTable[firstCommand]\n ) {\n if (typeof npmToYarnTable[firstCommand] === 'function') {\n return 'yarn ' + (npmToYarnTable[firstCommand] as Function)(command)\n } else {\n return 'yarn ' + command.replace(firstCommand, npmToYarnTable[firstCommand] as string)\n }\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n\nfunction yarnToNPM (m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n var firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'npm ' + command\n } else if (\n Object.prototype.hasOwnProperty.call(yarnToNpmTable, firstCommand) &&\n yarnToNpmTable[firstCommand]\n ) {\n if (typeof yarnToNpmTable[firstCommand] === 'function') {\n return 'npm ' + (yarnToNpmTable[firstCommand] as Function)(command)\n } else {\n return 'npm ' + command.replace(firstCommand, yarnToNpmTable[firstCommand] as string)\n }\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst yarnToNpmTable = {\n add(command: string, global?: true) {\n let dev\n if (command === 'add --force') {\n return 'rebuild'\n }\n let ret = command\n .replace('add', 'install')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n remove(command: string, global?: true) {\n let dev\n let ret = command\n .replace('remove', 'uninstall')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n version(command: string) {\n return command.replace(/--(major|minor|patch)/, '$1')\n },\n install: 'install',\n list(command: string) {\n return command\n .replace(/--pattern [\"']([^\"']+)[\"']/, function (_, packages: string) {\n return packages.split('|').join(' ')\n })\n .replace(/^list/, 'ls')\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(command: string) {\n if (/^global add/.test(command)) {\n return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true)\n } else if (/^global remove/.test(command)) {\n return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true)\n }\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'npm ' + command\n }\n\n if (firstCommand in yarnToNpmTable) {\n const converter = yarnToNpmTable[firstCommand as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n return 'npm ' + converter(command)\n } else {\n return 'npm ' + command.replace(firstCommand, converter)\n }\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst npmToYarnTable = {\n install(command: string) {\n if (/^install *$/.test(command)) {\n return 'install'\n }\n let ret = command\n .replace('install', 'add')\n .replace('--save-dev', '--dev')\n .replace('--no-package-lock', '--no-lockfile')\n .replace('--save-optional', '--optional')\n .replace('--save-exact', '--exact')\n .replace(/\\s*--save/, '')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n uninstall(command: string) {\n let ret = command\n .replace('uninstall', 'remove')\n .replace('--save-dev', '--dev')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n version(command: string) {\n return command.replace(/(major|minor|patch)/, '--$1')\n },\n rebuild(command: string) {\n return command.replace('rebuild', 'add --force')\n },\n exec (command: string) {\n return command.replace(\n /^exec\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n run(command: string) {\n return command.replace(\n /^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n ls(command: string) {\n return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string {\n let result = 'list'\n if (args) {\n let ended = false\n let packages = []\n const items = args.split(' ').filter(Boolean)\n for (const item of items) {\n if (ended) {\n result += ' ' + item\n } else if (item.startsWith('-')) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n packages = []\n ended = true\n result += ' ' + item\n } else {\n packages.push(item)\n }\n }\n if (packages.length > 0) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n }\n return result\n } else {\n return 'list'\n }\n })\n },\n list(command: string) {\n return npmToYarnTable.ls(command)\n },\n init(command: string) {\n if (/^init (?!-).*$/.test(command)) {\n return command.replace('init', 'create')\n }\n return command.replace(' --scope', '')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n command = (command || '').trim()\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'yarn ' + command\n }\n\n if (firstCommand in npmToYarnTable) {\n const converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n return 'yarn ' + converter(command)\n } else {\n return 'yarn ' + command.replace(firstCommand, converter)\n }\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/types/index.d.ts b/dist/types/index.d.ts index ebef85c..204049f 100644 --- a/dist/types/index.d.ts +++ b/dist/types/index.d.ts @@ -1 +1,12 @@ +/** + * Converts yarn to npm command + */ +export declare function convertToNpm(str: string): string; +/** + * Converts npm to yarn command + */ +export declare function convertToYarn(str: string): string; +/** + * Converts between npm and yarn command + */ export default function convert(str: string, to: 'npm' | 'yarn'): string; diff --git a/dist/types/npmToYarn.d.ts b/dist/types/npmToYarn.d.ts new file mode 100644 index 0000000..64bdc4c --- /dev/null +++ b/dist/types/npmToYarn.d.ts @@ -0,0 +1 @@ +export declare function npmToYarn(_m: string, command: string): string; diff --git a/dist/types/utils.d.ts b/dist/types/utils.d.ts index 0c3442e..1eef26c 100644 --- a/dist/types/utils.d.ts +++ b/dist/types/utils.d.ts @@ -1,4 +1,3 @@ -export declare var unchangedCLICommands: string[]; -export declare var yarnCLICommands: string[]; -export declare var uniqueYarnCLICommands: string[]; -export declare var npmCLICommands: string[]; +export declare const unchangedCLICommands: string[]; +export declare const yarnCLICommands: string[]; +export declare const npmCLICommands: string[]; diff --git a/dist/types/yarnToNpm.d.ts b/dist/types/yarnToNpm.d.ts new file mode 100644 index 0000000..446a836 --- /dev/null +++ b/dist/types/yarnToNpm.d.ts @@ -0,0 +1 @@ +export declare function yarnToNPM(_m: string, command: string): string; diff --git a/src/index.ts b/src/index.ts index 15dfde9..9b2f07e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,225 +1,27 @@ -import { - unchangedCLICommands, - yarnCLICommands, - uniqueYarnCLICommands, - npmCLICommands -} from './utils' - -// keys are NPM, vals are Yarn - -interface Indexable { - [index: string]: string | ((command: string) => string) +import { yarnToNPM } from './yarnToNpm' +import { npmToYarn } from './npmToYarn' + +/** + * Converts yarn to npm command + */ +export function convertToNpm(str: string) { + return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM) } -var npmToYarnTable: Indexable = { - install: function (command: string) { - if (/^install *$/.test(command)) { - return 'install' - } - var ret = command - .replace('install', 'add') - .replace('--save-dev', '--dev') - .replace('--save-exact', '--exact') - .replace('--save-optional', '--optional') - .replace(/\s*--save/, '') - .replace('--no-package-lock', '--no-lockfile') - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, '') - ret = 'global ' + ret - } - return ret - }, - uninstall: function (command: string) { - var ret = command - .replace('uninstall', 'remove') - .replace('--save-dev', '--dev') - .replace(/\s*--save/, '') - .replace('--no-package-lock', '--no-lockfile') - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, '') - ret = 'global ' + ret - } - return ret - }, - version: function (command: string) { - return command.replace(/(major|minor|patch)/, '--$1') - }, - rebuild: function (command: string) { - return command.replace('rebuild', 'add --force') - }, - run: function (command: string) { - return command.replace( - /^run\s?([^\s]+)?(\s--\s--)?(.*)$/, - (_, data?: string, dash?: string, rest?: string): string => { - var result = '' - if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { - result += data - } else { - result += 'run ' + (data || '') - } - if (dash) result += dash.replace(/^\s--/, '') - if (rest) result += rest - return result - } - ) - }, - ls: function (command: string) { - return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string { - var result = 'list' - if (args) { - var ended = false - var packages = [] - var items = args.split(' ').filter(Boolean) - for (var item of items) { - if (ended) { - result += ' ' + item - } else if (item.startsWith('-')) { - result += ' --pattern "' + packages.join('|') + '"' - packages = [] - ended = true - result += ' ' + item - } else { - packages.push(item) - } - } - if (packages.length > 0) { - result += ' --pattern "' + packages.join('|') + '"' - } - return result - } else { - return 'list' - } - }) - }, - list: function (command: string) { - return (npmToYarnTable.ls as Function)(command) - }, - init: function (command: string) { - if (/^init (?!-).*$/.test(command)) { - return command.replace('init', 'create') - } - return command.replace(' --scope', '') - } +/** + * Converts npm to yarn command + */ +export function convertToYarn(str: string) { + return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn) } -var yarnToNpmTable: Indexable = { - add: function (command: string, global?: true) { - var dev - if (command === 'add --force') { - return 'rebuild' - } - var ret = command - .replace('add', 'install') - .replace(/\s*--dev/, function () { - dev = true - return '' - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact') - if (dev) { - ret += ' --save-dev' - } else if (global) { - ret += ' --global' - } else { - ret += ' --save' - } - return ret - }, - remove: function (command: string, global?: true) { - var dev - var ret = command - .replace('remove', 'uninstall') - .replace(/\s*--dev/, function () { - dev = true - return '' - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact') - if (dev) { - ret += ' --save-dev' - } else if (global) { - ret += ' --global' - } else { - ret += ' --save' - } - return ret - }, - version: function (command: string) { - return command.replace(/--(major|minor|patch)/, '$1') - }, - install: 'install', - list: function (command: string) { - return command - .replace(/--pattern ["']([^"']+)["']/, function (_, packages: string) { - return packages.split('|').join(' ') - }) - .replace(/^list/, 'ls') - }, - init: 'init', - create: 'init', - run: 'run', - global: function (command: string) { - if (/^global add/.test(command)) { - return (yarnToNpmTable.add as Function)(command.replace(/^global add/, 'add'), true) - } else if (/^global remove/.test(command)) { - return (yarnToNpmTable.remove as Function)(command.replace(/^global remove/, 'remove'), true) - } - } -} - -export default function convert (str: string, to: 'npm' | 'yarn'): string { - var returnStr = str +/** + * Converts between npm and yarn command + */ +export default function convert(str: string, to: 'npm' | 'yarn'): string { if (to === 'npm') { - return returnStr.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM) - } else { - return returnStr.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn) - } -} - -function npmToYarn (m: string, command: string): string { - command = (command || '').trim() - var firstCommand = (/\w+/.exec(command) || [''])[0] - - if (unchangedCLICommands.includes(firstCommand)) { - return 'yarn ' + command - } else if ( - Object.prototype.hasOwnProperty.call(npmToYarnTable, firstCommand) && - npmToYarnTable[firstCommand] - ) { - if (typeof npmToYarnTable[firstCommand] === 'function') { - return 'yarn ' + (npmToYarnTable[firstCommand] as Function)(command) - } else { - return 'yarn ' + command.replace(firstCommand, npmToYarnTable[firstCommand] as string) - } - } else { - return 'yarn ' + command + "\n# couldn't auto-convert command" - } -} - -function yarnToNPM (m: string, command: string): string { - command = (command || '').trim() - if (command === '') { - return 'npm install' - } - var firstCommand = (/\w+/.exec(command) || [''])[0] - - if (unchangedCLICommands.includes(firstCommand)) { - return 'npm ' + command - } else if ( - Object.prototype.hasOwnProperty.call(yarnToNpmTable, firstCommand) && - yarnToNpmTable[firstCommand] - ) { - if (typeof yarnToNpmTable[firstCommand] === 'function') { - return 'npm ' + (yarnToNpmTable[firstCommand] as Function)(command) - } else { - return 'npm ' + command.replace(firstCommand, yarnToNpmTable[firstCommand] as string) - } - } else if (!yarnCLICommands.includes(firstCommand)) { - // i.e., yarn grunt -> npm run grunt - return 'npm run ' + command + return convertToNpm(str) } else { - return 'npm ' + command + "\n# couldn't auto-convert command" + return convertToYarn(str) } } diff --git a/src/npmToYarn.ts b/src/npmToYarn.ts new file mode 100644 index 0000000..0aab5d6 --- /dev/null +++ b/src/npmToYarn.ts @@ -0,0 +1,132 @@ +import { unchangedCLICommands, yarnCLICommands } from './utils' + +const npmToYarnTable = { + install(command: string) { + if (/^install *$/.test(command)) { + return 'install' + } + let ret = command + .replace('install', 'add') + .replace('--save-dev', '--dev') + .replace('--save-optional', '--optional') + .replace('--save-exact', '--exact') + .replace('--no-package-lock', '--no-lockfile') + .replace(/\s*--save/, '') + if (/ -(?:-global|g)(?![^\b])/.test(ret)) { + ret = ret.replace(/ -(?:-global|g)(?![^\b])/, '') + ret = 'global ' + ret + } + return ret + }, + uninstall(command: string) { + let ret = command + .replace('uninstall', 'remove') + .replace('--save-dev', '--dev') + .replace(/\s*--save/, '') + .replace('--no-package-lock', '--no-lockfile') + if (/ -(?:-global|g)(?![^\b])/.test(ret)) { + ret = ret.replace(/ -(?:-global|g)(?![^\b])/, '') + ret = 'global ' + ret + } + return ret + }, + version(command: string) { + return command.replace(/(major|minor|patch)/, '--$1') + }, + rebuild(command: string) { + return command.replace('rebuild', 'add --force') + }, + exec (command: string) { + return command.replace( + /^exec\s?([^\s]+)?(\s--\s--)?(.*)$/, + (_, data?: string, dash?: string, rest?: string): string => { + let result = '' + if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { + result += data + } else { + result += 'run ' + (data || '') + } + if (dash) result += dash.replace(/^\s--/, '') + if (rest) result += rest + return result + } + ) + }, + run(command: string) { + return command.replace( + /^run\s?([^\s]+)?(\s--\s--)?(.*)$/, + (_, data?: string, dash?: string, rest?: string): string => { + let result = '' + if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { + result += data + } else { + result += 'run ' + (data || '') + } + if (dash) result += dash.replace(/^\s--/, '') + if (rest) result += rest + return result + } + ) + }, + ls(command: string) { + return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string { + let result = 'list' + if (args) { + let ended = false + let packages = [] + const items = args.split(' ').filter(Boolean) + for (const item of items) { + if (ended) { + result += ' ' + item + } else if (item.startsWith('-')) { + result += ' --pattern "' + packages.join('|') + '"' + packages = [] + ended = true + result += ' ' + item + } else { + packages.push(item) + } + } + if (packages.length > 0) { + result += ' --pattern "' + packages.join('|') + '"' + } + return result + } else { + return 'list' + } + }) + }, + list(command: string) { + return npmToYarnTable.ls(command) + }, + init(command: string) { + if (/^init (?!-).*$/.test(command)) { + return command.replace('init', 'create') + } + return command.replace(' --scope', '') + }, + start: 'start', + stop: 'stop', + test: 'test', +} + +export function npmToYarn(_m: string, command: string): string { + command = (command || '').trim() + const firstCommand = (/\w+/.exec(command) || [''])[0] + + if (unchangedCLICommands.includes(firstCommand)) { + return 'yarn ' + command + } + + if (firstCommand in npmToYarnTable) { + const converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable] + + if (typeof converter === 'function') { + return 'yarn ' + converter(command) + } else { + return 'yarn ' + command.replace(firstCommand, converter) + } + } else { + return 'yarn ' + command + "\n# couldn't auto-convert command" + } +} diff --git a/src/utils.ts b/src/utils.ts index dbd7c54..e349fab 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,6 +1,6 @@ -export var unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache'] +export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache'] -export var yarnCLICommands = [ +export const yarnCLICommands = [ 'init', 'run', 'add', @@ -29,42 +29,18 @@ export var yarnCLICommands = [ 'self-update', 'tag', 'team', - 'unlink', - 'upgrade', - 'upgrade-interactive', - 'version', - 'versions', - 'why', - 'workspace', - 'workspaces' -] - -export var uniqueYarnCLICommands = [ - 'add', - 'autoclean', - 'check', - 'generate-lock-entry', - 'global', - 'import', - 'info', - 'licenses', 'link', - 'lockfile', - 'policies', - 'remove', - 'run', - 'self-update', - 'tag', 'unlink', 'upgrade', 'upgrade-interactive', + 'version', 'versions', 'why', 'workspace', - 'workspaces' + 'workspaces', ] -export var npmCLICommands = [ +export const npmCLICommands = [ 'init', 'run', 'access', @@ -120,5 +96,5 @@ export var npmCLICommands = [ 'update', 'version', 'view', - 'whoami' + 'whoami', ] diff --git a/src/yarnToNpm.ts b/src/yarnToNpm.ts new file mode 100644 index 0000000..ce479b0 --- /dev/null +++ b/src/yarnToNpm.ts @@ -0,0 +1,99 @@ +import { unchangedCLICommands, yarnCLICommands } from './utils' + +const yarnToNpmTable = { + add(command: string, global?: true) { + let dev + if (command === 'add --force') { + return 'rebuild' + } + let ret = command + .replace('add', 'install') + .replace(/\s*--dev/, function () { + dev = true + return '' + }) + .replace('--no-lockfile', '--no-package-lock') + .replace('--optional', '--save-optional') + .replace('--exact', '--save-exact') + if (dev) { + ret += ' --save-dev' + } else if (global) { + ret += ' --global' + } else { + ret += ' --save' + } + return ret + }, + remove(command: string, global?: true) { + let dev + let ret = command + .replace('remove', 'uninstall') + .replace(/\s*--dev/, function () { + dev = true + return '' + }) + .replace('--no-lockfile', '--no-package-lock') + .replace('--optional', '--save-optional') + .replace('--exact', '--save-exact') + if (dev) { + ret += ' --save-dev' + } else if (global) { + ret += ' --global' + } else { + ret += ' --save' + } + return ret + }, + version(command: string) { + return command.replace(/--(major|minor|patch)/, '$1') + }, + install: 'install', + list(command: string) { + return command + .replace(/--pattern ["']([^"']+)["']/, function (_, packages: string) { + return packages.split('|').join(' ') + }) + .replace(/^list/, 'ls') + }, + init: 'init', + create: 'init', + run: 'run', + start: 'start', + stop: 'stop', + test: 'test', + global(command: string) { + if (/^global add/.test(command)) { + return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true) + } else if (/^global remove/.test(command)) { + return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true) + } + return 'npm ' + command + "\n# couldn't auto-convert command" + }, +} + +export function yarnToNPM(_m: string, command: string): string { + command = (command || '').trim() + if (command === '') { + return 'npm install' + } + const firstCommand = (/\w+/.exec(command) || [''])[0] + + if (unchangedCLICommands.includes(firstCommand)) { + return 'npm ' + command + } + + if (firstCommand in yarnToNpmTable) { + const converter = yarnToNpmTable[firstCommand as keyof typeof yarnToNpmTable] + + if (typeof converter === 'function') { + return 'npm ' + converter(command) + } else { + return 'npm ' + command.replace(firstCommand, converter) + } + } else if (!yarnCLICommands.includes(firstCommand)) { + // i.e., yarn grunt -> npm run grunt + return 'npm run ' + command + } else { + return 'npm ' + command + "\n# couldn't auto-convert command" + } +} diff --git a/test/index.spec.ts b/test/index.spec.ts index c7d4669..10c2bf2 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -48,6 +48,12 @@ describe('NPM to Yarn tests', () => { expect(convert('npm whoami', 'yarn')).toEqual("yarn whoami\n# couldn't auto-convert command") }) + it('npm custom', () => { + expect(convert('npm start', 'yarn')).toEqual('yarn start') + expect(convert('npm stop', 'yarn')).toEqual('yarn stop') + expect(convert('npm test', 'yarn')).toEqual('yarn test') + }) + it('npm init', () => { expect(convert('npm init', 'yarn')).toEqual('yarn init') expect(convert('npm init -y', 'yarn')).toEqual('yarn init -y') @@ -72,6 +78,15 @@ describe('NPM to Yarn tests', () => { expect(convert('npm run custom -- --version', 'yarn')).toEqual('yarn custom --version') }) + it('npm exec', () => { + expect(convert('npm exec custom', 'yarn')).toEqual('yarn custom') + expect(convert('npm exec add', 'yarn')).toEqual('yarn run add') + expect(convert('npm exec install', 'yarn')).toEqual('yarn run install') + expect(convert('npm exec run', 'yarn')).toEqual('yarn run run') + // with args + expect(convert('npm exec custom -- --version', 'yarn')).toEqual('yarn custom --version') + }) + it('npm list', () => { expect(convert('npm list', 'yarn')).toEqual('yarn list') expect(convert('npm list package', 'yarn')).toEqual('yarn list --pattern "package"') @@ -174,6 +189,12 @@ describe('Yarn to NPM tests', () => { ) }) + it('npm custom', () => { + expect(convert('yarn start', 'npm')).toEqual('npm start') + expect(convert('yarn stop', 'npm')).toEqual('npm stop') + expect(convert('yarn test', 'npm')).toEqual('npm test') + }) + it('yarn run', () => { expect(convert('yarn custom', 'npm')).toEqual('npm run custom') expect(convert('yarn run custom', 'npm')).toEqual('npm run custom') From 7b54605d9e330157fbb8bb6a23c8032588a455b5 Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 09:37:10 +0100 Subject: [PATCH 02/12] fix: update how data is parsed and fix more conversion logic --- dist/npm-to-yarn.mjs | 344 +++++++++++++++++++----------------- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 344 +++++++++++++++++++----------------- dist/npm-to-yarn.umd.js.map | 2 +- dist/types/command.d.ts | 1 + src/command.ts | 30 ++++ src/npmToYarn.ts | 179 +++++++++---------- src/utils.ts | 1 + src/yarnToNpm.ts | 126 ++++++------- test/commands.spec.ts | 37 ++++ test/index.spec.ts | 31 ++++ 11 files changed, 616 insertions(+), 481 deletions(-) create mode 100644 dist/types/command.d.ts create mode 100644 src/command.ts create mode 100644 test/commands.spec.ts diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 9c1c64b..52c9070 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -39,64 +39,98 @@ var yarnCLICommands = [ 'workspaces', ]; -var yarnToNpmTable = { - add: function (command, global) { - var dev; - if (command === 'add --force') { - return 'rebuild'; - } - var ret = command - .replace('add', 'install') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; - } - else if (global) { - ret += ' --global'; +function parse(command) { + var args = []; + var lastQuote = false; + var escaped = false; + var part = ''; + for (var i = 0; i < command.length; ++i) { + var char = command.charAt(i); + if (char === '\\') { + part += char; + escaped = true; } else { - ret += ' --save'; + if (char === ' ' && !lastQuote) { + args.push(part); + part = ''; + } + else if (!escaped && (char === '"' || char === "'")) { + part += char; + if (char === lastQuote) { + lastQuote = false; + } + else if (!lastQuote) { + lastQuote = char; + } + } + else { + part += char; + } + escaped = false; } - return ret; - }, - remove: function (command, global) { - var dev; - var ret = command - .replace('remove', 'uninstall') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; + } + args.push(part); + return args; +} + +function convertAddRemoveArgs(args) { + return args.map(function (item) { + switch (item) { + case '--no-lockfile': + return '--no-package-lock'; + case '--dev': + return '--save-dev'; + case '--optional': + return '--save-optional'; + case '--exact': + return '--save-exact'; + default: + return item; } - else if (global) { - ret += ' --global'; + }); +} +var yarnToNpmTable = { + add: function (args) { + if (args[1] === '--force') { + return ['rebuild']; } - else { - ret += ' --save'; + args[0] = 'install'; + if (!args.includes('--dev')) { + args.push('--save'); } - return ret; + return convertAddRemoveArgs(args); }, - version: function (command) { - return command.replace(/--(major|minor|patch)/, '$1'); + remove: function (args) { + args[0] = 'uninstall'; + if (!args.includes('--dev')) { + args.push('--save'); + } + return convertAddRemoveArgs(args); + }, + version: function (args) { + return args.map(function (item) { + switch (item) { + case '--major': + return 'major'; + case '--minor': + return 'minor'; + case '--patch': + return 'patch'; + default: + return item; + } + }); }, install: 'install', - list: function (command) { - return command - .replace(/--pattern ["']([^"']+)["']/, function (_, packages) { - return packages.split('|').join(' '); - }) - .replace(/^list/, 'ls'); + list: function (args) { + args[0] = 'ls'; + var patternIndex = args.findIndex(function (item) { return item === '--pattern'; }); + if (patternIndex && args[patternIndex + 1]) { + var packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|'); + args.splice(patternIndex, 2, packages.join(' ')); + } + return args; }, init: 'init', create: 'init', @@ -104,14 +138,15 @@ var yarnToNpmTable = { start: 'start', stop: 'stop', test: 'test', - global: function (command) { - if (/^global add/.test(command)) { - return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true); - } - else if (/^global remove/.test(command)) { - return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true); + global: function (args) { + if (args[1] === 'add' || args[1] === 'remove') { + args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall'); + args.push('--global'); + return convertAddRemoveArgs(args); } - return 'npm ' + command + "\n# couldn't auto-convert command"; + // TODO: find better way + args.push("\n# couldn't auto-convert command"); + return args; }, }; function yarnToNPM(_m, command) { @@ -119,18 +154,20 @@ function yarnToNPM(_m, command) { if (command === '') { return 'npm install'; } + var args = parse(command); var firstCommand = (/\w+/.exec(command) || [''])[0]; - if (unchangedCLICommands.includes(firstCommand)) { + if (unchangedCLICommands.includes(args[0])) { return 'npm ' + command; } - if (firstCommand in yarnToNpmTable) { - var converter = yarnToNpmTable[firstCommand]; + else if (args[0] in yarnToNpmTable) { + var converter = yarnToNpmTable[args[0]]; if (typeof converter === 'function') { - return 'npm ' + converter(command); + args = converter(args); } else { - return 'npm ' + command.replace(firstCommand, converter); + args[0] = converter; } + return 'npm ' + args.filter(Boolean).join(' '); } else if (!yarnCLICommands.includes(firstCommand)) { // i.e., yarn grunt -> npm run grunt @@ -142,132 +179,117 @@ function yarnToNPM(_m, command) { } var npmToYarnTable = { - install: function (command) { - if (/^install *$/.test(command)) { - return 'install'; + install: function (args) { + if (args.length === 1) { + return args; } - var ret = command - .replace('install', 'add') - .replace('--save-dev', '--dev') - .replace('--no-package-lock', '--no-lockfile') - .replace('--save-optional', '--optional') - .replace('--save-exact', '--exact') - .replace(/\s*--save/, ''); - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, ''); - ret = 'global ' + ret; + args[0] = 'add'; + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global'); } - return ret; + return args.map(function (item) { + if (item === '--save-dev') + return '--dev'; + else if (item === '--save') + return ''; + else if (item === '--no-package-lock') + return '--no-lockfile'; + else if (item === '--save-optional') + return '--optional'; + else if (item === '--save-exact') + return '--exact'; + else if (item === '--global' || item === '-g') + return ''; + return item; + }); + }, + i: function (args) { + return npmToYarnTable.install(args); }, - uninstall: function (command) { - var ret = command - .replace('uninstall', 'remove') - .replace('--save-dev', '--dev') - .replace(/\s*--save/, '') - .replace('--no-package-lock', '--no-lockfile'); - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, ''); - ret = 'global ' + ret; + uninstall: function (args) { + args[0] = 'remove'; + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global'); } - return ret; + return args.map(function (item) { + if (item === '--save-dev') + return '--dev'; + else if (item === '--save') + return ''; + else if (item === '--no-package-lock') + return '--no-lockfile'; + else if (item === '--global' || item === '-g') + return ''; + return item; + }); }, - version: function (command) { - return command.replace(/(major|minor|patch)/, '--$1'); + version: function (args) { + return args.map(function (item) { + if (['major', 'minor', 'patch'].includes(item)) + return "--".concat(item); + return item; + }); }, - rebuild: function (command) { - return command.replace('rebuild', 'add --force'); + rebuild: function (args) { + args[0] = 'add --force'; + return args; }, - exec: function (command) { - return command.replace(/^exec\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { - var result = ''; - if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { - result += data; - } - else { - result += 'run ' + (data || ''); - } - if (dash) - result += dash.replace(/^\s--/, ''); - if (rest) - result += rest; - return result; - }); + run: function (args) { + if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { + args.splice(0, 1); + } + var index = args.findIndex(function (a) { return a === '--'; }); + if (index >= 0) { + args.splice(index, 1); + } + return args; }, - run: function (command) { - return command.replace(/^run\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { - var result = ''; - if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { - result += data; - } - else { - result += 'run ' + (data || ''); - } - if (dash) - result += dash.replace(/^\s--/, ''); - if (rest) - result += rest; - return result; - }); + exec: function (args) { + args[0] = 'run'; + return npmToYarnTable.run(args); }, - ls: function (command) { - return command.replace(/^(ls|list)(.*)$/, function (_1, _2, args) { - var result = 'list'; - if (args) { - var ended = false; - var packages = []; - var items = args.split(' ').filter(Boolean); - for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { - var item = items_1[_i]; - if (ended) { - result += ' ' + item; - } - else if (item.startsWith('-')) { - result += ' --pattern "' + packages.join('|') + '"'; - packages = []; - ended = true; - result += ' ' + item; - } - else { - packages.push(item); - } - } - if (packages.length > 0) { - result += ' --pattern "' + packages.join('|') + '"'; - } - return result; - } - else { - return 'list'; + ls: function (args) { + args[0] = 'list'; + var ended = false; + var packages = args.filter(function (item, id) { + if (id > 0 && !ended) { + ended = item.startsWith('-'); + return !ended; } + return false; }); + if (packages.length > 0) { + args.splice(1, packages.length, '--pattern', '"' + packages.join('|') + '"'); + } + return args; }, - list: function (command) { - return npmToYarnTable.ls(command); + list: function (args) { + return npmToYarnTable.ls(args); }, - init: function (command) { - if (/^init (?!-).*$/.test(command)) { - return command.replace('init', 'create'); + init: function (args) { + if (args[1] && !args[1].startsWith('-')) { + args[0] = 'create'; } - return command.replace(' --scope', ''); + return args.filter(function (item) { return item !== '--scope'; }); }, start: 'start', stop: 'stop', test: 'test', }; function npmToYarn(_m, command) { - command = (command || '').trim(); - var firstCommand = (/\w+/.exec(command) || [''])[0]; - if (unchangedCLICommands.includes(firstCommand)) { + var args = parse((command || '').trim()); + if (unchangedCLICommands.includes(args[0])) { return 'yarn ' + command; } - if (firstCommand in npmToYarnTable) { - var converter = npmToYarnTable[firstCommand]; + else if (args[0] in npmToYarnTable) { + var converter = npmToYarnTable[args[0]]; if (typeof converter === 'function') { - return 'yarn ' + converter(command); + args = converter(args); } else { - return 'yarn ' + command.replace(firstCommand, converter); + args[0] = converter; } + return 'yarn ' + args.filter(Boolean).join(' '); } else { return 'yarn ' + command + "\n# couldn't auto-convert command"; diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index 26417f6..e6dac5c 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst yarnToNpmTable = {\n add(command: string, global?: true) {\n let dev\n if (command === 'add --force') {\n return 'rebuild'\n }\n let ret = command\n .replace('add', 'install')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n remove(command: string, global?: true) {\n let dev\n let ret = command\n .replace('remove', 'uninstall')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n version(command: string) {\n return command.replace(/--(major|minor|patch)/, '$1')\n },\n install: 'install',\n list(command: string) {\n return command\n .replace(/--pattern [\"']([^\"']+)[\"']/, function (_, packages: string) {\n return packages.split('|').join(' ')\n })\n .replace(/^list/, 'ls')\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(command: string) {\n if (/^global add/.test(command)) {\n return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true)\n } else if (/^global remove/.test(command)) {\n return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true)\n }\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'npm ' + command\n }\n\n if (firstCommand in yarnToNpmTable) {\n const converter = yarnToNpmTable[firstCommand as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n return 'npm ' + converter(command)\n } else {\n return 'npm ' + command.replace(firstCommand, converter)\n }\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst npmToYarnTable = {\n install(command: string) {\n if (/^install *$/.test(command)) {\n return 'install'\n }\n let ret = command\n .replace('install', 'add')\n .replace('--save-dev', '--dev')\n .replace('--no-package-lock', '--no-lockfile')\n .replace('--save-optional', '--optional')\n .replace('--save-exact', '--exact')\n .replace(/\\s*--save/, '')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n uninstall(command: string) {\n let ret = command\n .replace('uninstall', 'remove')\n .replace('--save-dev', '--dev')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n version(command: string) {\n return command.replace(/(major|minor|patch)/, '--$1')\n },\n rebuild(command: string) {\n return command.replace('rebuild', 'add --force')\n },\n exec (command: string) {\n return command.replace(\n /^exec\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n run(command: string) {\n return command.replace(\n /^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n ls(command: string) {\n return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string {\n let result = 'list'\n if (args) {\n let ended = false\n let packages = []\n const items = args.split(' ').filter(Boolean)\n for (const item of items) {\n if (ended) {\n result += ' ' + item\n } else if (item.startsWith('-')) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n packages = []\n ended = true\n result += ' ' + item\n } else {\n packages.push(item)\n }\n }\n if (packages.length > 0) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n }\n return result\n } else {\n return 'list'\n }\n })\n },\n list(command: string) {\n return npmToYarnTable.ls(command)\n },\n init(command: string) {\n if (/^init (?!-).*$/.test(command)) {\n return command.replace('init', 'create')\n }\n return command.replace(' --scope', '')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n command = (command || '').trim()\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'yarn ' + command\n }\n\n if (firstCommand in npmToYarnTable) {\n const converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n return 'yarn ' + converter(command)\n } else {\n return 'yarn ' + command.replace(firstCommand, converter)\n }\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + command\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index 3d1ed02..7075630 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -45,64 +45,98 @@ 'workspaces', ]; - var yarnToNpmTable = { - add: function (command, global) { - var dev; - if (command === 'add --force') { - return 'rebuild'; - } - var ret = command - .replace('add', 'install') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; - } - else if (global) { - ret += ' --global'; + function parse(command) { + var args = []; + var lastQuote = false; + var escaped = false; + var part = ''; + for (var i = 0; i < command.length; ++i) { + var char = command.charAt(i); + if (char === '\\') { + part += char; + escaped = true; } else { - ret += ' --save'; + if (char === ' ' && !lastQuote) { + args.push(part); + part = ''; + } + else if (!escaped && (char === '"' || char === "'")) { + part += char; + if (char === lastQuote) { + lastQuote = false; + } + else if (!lastQuote) { + lastQuote = char; + } + } + else { + part += char; + } + escaped = false; } - return ret; - }, - remove: function (command, global) { - var dev; - var ret = command - .replace('remove', 'uninstall') - .replace(/\s*--dev/, function () { - dev = true; - return ''; - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact'); - if (dev) { - ret += ' --save-dev'; + } + args.push(part); + return args; + } + + function convertAddRemoveArgs(args) { + return args.map(function (item) { + switch (item) { + case '--no-lockfile': + return '--no-package-lock'; + case '--dev': + return '--save-dev'; + case '--optional': + return '--save-optional'; + case '--exact': + return '--save-exact'; + default: + return item; } - else if (global) { - ret += ' --global'; + }); + } + var yarnToNpmTable = { + add: function (args) { + if (args[1] === '--force') { + return ['rebuild']; } - else { - ret += ' --save'; + args[0] = 'install'; + if (!args.includes('--dev')) { + args.push('--save'); } - return ret; + return convertAddRemoveArgs(args); }, - version: function (command) { - return command.replace(/--(major|minor|patch)/, '$1'); + remove: function (args) { + args[0] = 'uninstall'; + if (!args.includes('--dev')) { + args.push('--save'); + } + return convertAddRemoveArgs(args); + }, + version: function (args) { + return args.map(function (item) { + switch (item) { + case '--major': + return 'major'; + case '--minor': + return 'minor'; + case '--patch': + return 'patch'; + default: + return item; + } + }); }, install: 'install', - list: function (command) { - return command - .replace(/--pattern ["']([^"']+)["']/, function (_, packages) { - return packages.split('|').join(' '); - }) - .replace(/^list/, 'ls'); + list: function (args) { + args[0] = 'ls'; + var patternIndex = args.findIndex(function (item) { return item === '--pattern'; }); + if (patternIndex && args[patternIndex + 1]) { + var packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|'); + args.splice(patternIndex, 2, packages.join(' ')); + } + return args; }, init: 'init', create: 'init', @@ -110,14 +144,15 @@ start: 'start', stop: 'stop', test: 'test', - global: function (command) { - if (/^global add/.test(command)) { - return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true); - } - else if (/^global remove/.test(command)) { - return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true); + global: function (args) { + if (args[1] === 'add' || args[1] === 'remove') { + args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall'); + args.push('--global'); + return convertAddRemoveArgs(args); } - return 'npm ' + command + "\n# couldn't auto-convert command"; + // TODO: find better way + args.push("\n# couldn't auto-convert command"); + return args; }, }; function yarnToNPM(_m, command) { @@ -125,18 +160,20 @@ if (command === '') { return 'npm install'; } + var args = parse(command); var firstCommand = (/\w+/.exec(command) || [''])[0]; - if (unchangedCLICommands.includes(firstCommand)) { + if (unchangedCLICommands.includes(args[0])) { return 'npm ' + command; } - if (firstCommand in yarnToNpmTable) { - var converter = yarnToNpmTable[firstCommand]; + else if (args[0] in yarnToNpmTable) { + var converter = yarnToNpmTable[args[0]]; if (typeof converter === 'function') { - return 'npm ' + converter(command); + args = converter(args); } else { - return 'npm ' + command.replace(firstCommand, converter); + args[0] = converter; } + return 'npm ' + args.filter(Boolean).join(' '); } else if (!yarnCLICommands.includes(firstCommand)) { // i.e., yarn grunt -> npm run grunt @@ -148,132 +185,117 @@ } var npmToYarnTable = { - install: function (command) { - if (/^install *$/.test(command)) { - return 'install'; + install: function (args) { + if (args.length === 1) { + return args; } - var ret = command - .replace('install', 'add') - .replace('--save-dev', '--dev') - .replace('--no-package-lock', '--no-lockfile') - .replace('--save-optional', '--optional') - .replace('--save-exact', '--exact') - .replace(/\s*--save/, ''); - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, ''); - ret = 'global ' + ret; + args[0] = 'add'; + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global'); } - return ret; + return args.map(function (item) { + if (item === '--save-dev') + return '--dev'; + else if (item === '--save') + return ''; + else if (item === '--no-package-lock') + return '--no-lockfile'; + else if (item === '--save-optional') + return '--optional'; + else if (item === '--save-exact') + return '--exact'; + else if (item === '--global' || item === '-g') + return ''; + return item; + }); + }, + i: function (args) { + return npmToYarnTable.install(args); }, - uninstall: function (command) { - var ret = command - .replace('uninstall', 'remove') - .replace('--save-dev', '--dev') - .replace(/\s*--save/, '') - .replace('--no-package-lock', '--no-lockfile'); - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, ''); - ret = 'global ' + ret; + uninstall: function (args) { + args[0] = 'remove'; + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global'); } - return ret; + return args.map(function (item) { + if (item === '--save-dev') + return '--dev'; + else if (item === '--save') + return ''; + else if (item === '--no-package-lock') + return '--no-lockfile'; + else if (item === '--global' || item === '-g') + return ''; + return item; + }); }, - version: function (command) { - return command.replace(/(major|minor|patch)/, '--$1'); + version: function (args) { + return args.map(function (item) { + if (['major', 'minor', 'patch'].includes(item)) + return "--".concat(item); + return item; + }); }, - rebuild: function (command) { - return command.replace('rebuild', 'add --force'); + rebuild: function (args) { + args[0] = 'add --force'; + return args; }, - exec: function (command) { - return command.replace(/^exec\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { - var result = ''; - if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { - result += data; - } - else { - result += 'run ' + (data || ''); - } - if (dash) - result += dash.replace(/^\s--/, ''); - if (rest) - result += rest; - return result; - }); + run: function (args) { + if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { + args.splice(0, 1); + } + var index = args.findIndex(function (a) { return a === '--'; }); + if (index >= 0) { + args.splice(index, 1); + } + return args; }, - run: function (command) { - return command.replace(/^run\s?([^\s]+)?(\s--\s--)?(.*)$/, function (_, data, dash, rest) { - var result = ''; - if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { - result += data; - } - else { - result += 'run ' + (data || ''); - } - if (dash) - result += dash.replace(/^\s--/, ''); - if (rest) - result += rest; - return result; - }); + exec: function (args) { + args[0] = 'run'; + return npmToYarnTable.run(args); }, - ls: function (command) { - return command.replace(/^(ls|list)(.*)$/, function (_1, _2, args) { - var result = 'list'; - if (args) { - var ended = false; - var packages = []; - var items = args.split(' ').filter(Boolean); - for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { - var item = items_1[_i]; - if (ended) { - result += ' ' + item; - } - else if (item.startsWith('-')) { - result += ' --pattern "' + packages.join('|') + '"'; - packages = []; - ended = true; - result += ' ' + item; - } - else { - packages.push(item); - } - } - if (packages.length > 0) { - result += ' --pattern "' + packages.join('|') + '"'; - } - return result; - } - else { - return 'list'; + ls: function (args) { + args[0] = 'list'; + var ended = false; + var packages = args.filter(function (item, id) { + if (id > 0 && !ended) { + ended = item.startsWith('-'); + return !ended; } + return false; }); + if (packages.length > 0) { + args.splice(1, packages.length, '--pattern', '"' + packages.join('|') + '"'); + } + return args; }, - list: function (command) { - return npmToYarnTable.ls(command); + list: function (args) { + return npmToYarnTable.ls(args); }, - init: function (command) { - if (/^init (?!-).*$/.test(command)) { - return command.replace('init', 'create'); + init: function (args) { + if (args[1] && !args[1].startsWith('-')) { + args[0] = 'create'; } - return command.replace(' --scope', ''); + return args.filter(function (item) { return item !== '--scope'; }); }, start: 'start', stop: 'stop', test: 'test', }; function npmToYarn(_m, command) { - command = (command || '').trim(); - var firstCommand = (/\w+/.exec(command) || [''])[0]; - if (unchangedCLICommands.includes(firstCommand)) { + var args = parse((command || '').trim()); + if (unchangedCLICommands.includes(args[0])) { return 'yarn ' + command; } - if (firstCommand in npmToYarnTable) { - var converter = npmToYarnTable[firstCommand]; + else if (args[0] in npmToYarnTable) { + var converter = npmToYarnTable[args[0]]; if (typeof converter === 'function') { - return 'yarn ' + converter(command); + args = converter(args); } else { - return 'yarn ' + command.replace(firstCommand, converter); + args[0] = converter; } + return 'yarn ' + args.filter(Boolean).join(' '); } else { return 'yarn ' + command + "\n# couldn't auto-convert command"; diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index 91ae788..17e7dd6 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst yarnToNpmTable = {\n add(command: string, global?: true) {\n let dev\n if (command === 'add --force') {\n return 'rebuild'\n }\n let ret = command\n .replace('add', 'install')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n remove(command: string, global?: true) {\n let dev\n let ret = command\n .replace('remove', 'uninstall')\n .replace(/\\s*--dev/, function () {\n dev = true\n return ''\n })\n .replace('--no-lockfile', '--no-package-lock')\n .replace('--optional', '--save-optional')\n .replace('--exact', '--save-exact')\n if (dev) {\n ret += ' --save-dev'\n } else if (global) {\n ret += ' --global'\n } else {\n ret += ' --save'\n }\n return ret\n },\n version(command: string) {\n return command.replace(/--(major|minor|patch)/, '$1')\n },\n install: 'install',\n list(command: string) {\n return command\n .replace(/--pattern [\"']([^\"']+)[\"']/, function (_, packages: string) {\n return packages.split('|').join(' ')\n })\n .replace(/^list/, 'ls')\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(command: string) {\n if (/^global add/.test(command)) {\n return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true)\n } else if (/^global remove/.test(command)) {\n return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true)\n }\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'npm ' + command\n }\n\n if (firstCommand in yarnToNpmTable) {\n const converter = yarnToNpmTable[firstCommand as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n return 'npm ' + converter(command)\n } else {\n return 'npm ' + command.replace(firstCommand, converter)\n }\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\n\nconst npmToYarnTable = {\n install(command: string) {\n if (/^install *$/.test(command)) {\n return 'install'\n }\n let ret = command\n .replace('install', 'add')\n .replace('--save-dev', '--dev')\n .replace('--no-package-lock', '--no-lockfile')\n .replace('--save-optional', '--optional')\n .replace('--save-exact', '--exact')\n .replace(/\\s*--save/, '')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n uninstall(command: string) {\n let ret = command\n .replace('uninstall', 'remove')\n .replace('--save-dev', '--dev')\n .replace(/\\s*--save/, '')\n .replace('--no-package-lock', '--no-lockfile')\n if (/ -(?:-global|g)(?![^\\b])/.test(ret)) {\n ret = ret.replace(/ -(?:-global|g)(?![^\\b])/, '')\n ret = 'global ' + ret\n }\n return ret\n },\n version(command: string) {\n return command.replace(/(major|minor|patch)/, '--$1')\n },\n rebuild(command: string) {\n return command.replace('rebuild', 'add --force')\n },\n exec (command: string) {\n return command.replace(\n /^exec\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n run(command: string) {\n return command.replace(\n /^run\\s?([^\\s]+)?(\\s--\\s--)?(.*)$/,\n (_, data?: string, dash?: string, rest?: string): string => {\n let result = ''\n if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) {\n result += data\n } else {\n result += 'run ' + (data || '')\n }\n if (dash) result += dash.replace(/^\\s--/, '')\n if (rest) result += rest\n return result\n }\n )\n },\n ls(command: string) {\n return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string {\n let result = 'list'\n if (args) {\n let ended = false\n let packages = []\n const items = args.split(' ').filter(Boolean)\n for (const item of items) {\n if (ended) {\n result += ' ' + item\n } else if (item.startsWith('-')) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n packages = []\n ended = true\n result += ' ' + item\n } else {\n packages.push(item)\n }\n }\n if (packages.length > 0) {\n result += ' --pattern \"' + packages.join('|') + '\"'\n }\n return result\n } else {\n return 'list'\n }\n })\n },\n list(command: string) {\n return npmToYarnTable.ls(command)\n },\n init(command: string) {\n if (/^init (?!-).*$/.test(command)) {\n return command.replace('init', 'create')\n }\n return command.replace(' --scope', '')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n command = (command || '').trim()\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(firstCommand)) {\n return 'yarn ' + command\n }\n\n if (firstCommand in npmToYarnTable) {\n const converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n return 'yarn ' + converter(command)\n } else {\n return 'yarn ' + command.replace(firstCommand, converter)\n }\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + command\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/types/command.d.ts b/dist/types/command.d.ts new file mode 100644 index 0000000..c9b824d --- /dev/null +++ b/dist/types/command.d.ts @@ -0,0 +1 @@ +export declare function parse(command: string): string[]; diff --git a/src/command.ts b/src/command.ts new file mode 100644 index 0000000..d84854a --- /dev/null +++ b/src/command.ts @@ -0,0 +1,30 @@ +export function parse(command: string) { + const args: string[] = [] + let lastQuote: string | false = false + let escaped = false + let part = '' + for (let i = 0; i < command.length; ++i) { + const char = command.charAt(i) + if (char === '\\') { + part += char + escaped = true + } else { + if (char === ' ' && !lastQuote) { + args.push(part) + part = '' + } else if (!escaped && (char === '"' || char === "'")) { + part += char + if (char === lastQuote) { + lastQuote = false + } else if (!lastQuote) { + lastQuote = char + } + } else { + part += char + } + escaped = false + } + } + args.push(part) + return args +} diff --git a/src/npmToYarn.ts b/src/npmToYarn.ts index 0aab5d6..19455f7 100644 --- a/src/npmToYarn.ts +++ b/src/npmToYarn.ts @@ -1,109 +1,93 @@ import { unchangedCLICommands, yarnCLICommands } from './utils' +import { parse } from './command' const npmToYarnTable = { - install(command: string) { - if (/^install *$/.test(command)) { - return 'install' + install(args: string[]) { + if (args.length === 1) { + return args } - let ret = command - .replace('install', 'add') - .replace('--save-dev', '--dev') - .replace('--save-optional', '--optional') - .replace('--save-exact', '--exact') - .replace('--no-package-lock', '--no-lockfile') - .replace(/\s*--save/, '') - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, '') - ret = 'global ' + ret + args[0] = 'add' + + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global') } - return ret + + return args.map((item) => { + if (item === '--save-dev') return '--dev' + else if (item === '--save') return '' + else if (item === '--no-package-lock') return '--no-lockfile' + else if (item === '--save-optional') return '--optional' + else if (item === '--save-exact') return '--exact' + else if (item === '--global' || item === '-g') return '' + return item + }) }, - uninstall(command: string) { - let ret = command - .replace('uninstall', 'remove') - .replace('--save-dev', '--dev') - .replace(/\s*--save/, '') - .replace('--no-package-lock', '--no-lockfile') - if (/ -(?:-global|g)(?![^\b])/.test(ret)) { - ret = ret.replace(/ -(?:-global|g)(?![^\b])/, '') - ret = 'global ' + ret + i(args: string[]) { + return npmToYarnTable.install(args) + }, + uninstall(args: string[]) { + args[0] = 'remove' + + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global') } - return ret + + return args.map((item) => { + if (item === '--save-dev') return '--dev' + else if (item === '--save') return '' + else if (item === '--no-package-lock') return '--no-lockfile' + else if (item === '--global' || item === '-g') return '' + return item + }) }, - version(command: string) { - return command.replace(/(major|minor|patch)/, '--$1') + version(args: string[]) { + return args.map((item) => { + if (['major', 'minor', 'patch'].includes(item)) return `--${item}` + return item + }) }, - rebuild(command: string) { - return command.replace('rebuild', 'add --force') + rebuild(args: string[]) { + args[0] = 'add --force' + return args }, - exec (command: string) { - return command.replace( - /^exec\s?([^\s]+)?(\s--\s--)?(.*)$/, - (_, data?: string, dash?: string, rest?: string): string => { - let result = '' - if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { - result += data - } else { - result += 'run ' + (data || '') - } - if (dash) result += dash.replace(/^\s--/, '') - if (rest) result += rest - return result - } - ) + run(args: string[]) { + if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { + args.splice(0, 1) + } + const index = args.findIndex((a) => a === '--') + if (index >= 0) { + args.splice(index, 1) + } + return args }, - run(command: string) { - return command.replace( - /^run\s?([^\s]+)?(\s--\s--)?(.*)$/, - (_, data?: string, dash?: string, rest?: string): string => { - let result = '' - if (data && !unchangedCLICommands.includes(data) && !yarnCLICommands.includes(data)) { - result += data - } else { - result += 'run ' + (data || '') - } - if (dash) result += dash.replace(/^\s--/, '') - if (rest) result += rest - return result - } - ) + exec(args: string[]) { + args[0] = 'run' + return npmToYarnTable.run(args) }, - ls(command: string) { - return command.replace(/^(ls|list)(.*)$/, function (_1, _2: string, args: string): string { - let result = 'list' - if (args) { - let ended = false - let packages = [] - const items = args.split(' ').filter(Boolean) - for (const item of items) { - if (ended) { - result += ' ' + item - } else if (item.startsWith('-')) { - result += ' --pattern "' + packages.join('|') + '"' - packages = [] - ended = true - result += ' ' + item - } else { - packages.push(item) - } - } - if (packages.length > 0) { - result += ' --pattern "' + packages.join('|') + '"' - } - return result - } else { - return 'list' + ls(args: string[]) { + args[0] = 'list' + + let ended = false + const packages = args.filter((item, id) => { + if (id > 0 && !ended) { + ended = item.startsWith('-') + return !ended } + return false }) + if (packages.length > 0) { + args.splice(1, packages.length, '--pattern', '"' + packages.join('|') + '"') + } + return args }, - list(command: string) { - return npmToYarnTable.ls(command) + list(args: string[]) { + return npmToYarnTable.ls(args) }, - init(command: string) { - if (/^init (?!-).*$/.test(command)) { - return command.replace('init', 'create') + init(args: string[]) { + if (args[1] && !args[1].startsWith('-')) { + args[0] = 'create' } - return command.replace(' --scope', '') + return args.filter((item) => item !== '--scope') }, start: 'start', stop: 'stop', @@ -111,21 +95,20 @@ const npmToYarnTable = { } export function npmToYarn(_m: string, command: string): string { - command = (command || '').trim() - const firstCommand = (/\w+/.exec(command) || [''])[0] + let args = parse((command || '').trim()) - if (unchangedCLICommands.includes(firstCommand)) { + if (unchangedCLICommands.includes(args[0])) { return 'yarn ' + command - } - - if (firstCommand in npmToYarnTable) { - const converter = npmToYarnTable[firstCommand as keyof typeof npmToYarnTable] + } else if (args[0] in npmToYarnTable) { + const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable] if (typeof converter === 'function') { - return 'yarn ' + converter(command) + args = converter(args) } else { - return 'yarn ' + command.replace(firstCommand, converter) + args[0] = converter } + + return 'yarn ' + args.filter(Boolean).join(' ') } else { return 'yarn ' + command + "\n# couldn't auto-convert command" } diff --git a/src/utils.ts b/src/utils.ts index e349fab..1ad177b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -60,6 +60,7 @@ export const npmCLICommands = [ 'doctor', 'edit', 'explore', + 'exec', 'fund', 'help-search', 'help', diff --git a/src/yarnToNpm.ts b/src/yarnToNpm.ts index ce479b0..e0f93fd 100644 --- a/src/yarnToNpm.ts +++ b/src/yarnToNpm.ts @@ -1,59 +1,64 @@ import { unchangedCLICommands, yarnCLICommands } from './utils' +import { parse } from './command' + +function convertAddRemoveArgs(args: string[]) { + return args.map((item) => { + switch (item) { + case '--no-lockfile': + return '--no-package-lock' + case '--dev': + return '--save-dev' + case '--optional': + return '--save-optional' + case '--exact': + return '--save-exact' + default: + return item + } + }) +} const yarnToNpmTable = { - add(command: string, global?: true) { - let dev - if (command === 'add --force') { - return 'rebuild' + add(args: string[]) { + if (args[1] === '--force') { + return ['rebuild'] } - let ret = command - .replace('add', 'install') - .replace(/\s*--dev/, function () { - dev = true - return '' - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact') - if (dev) { - ret += ' --save-dev' - } else if (global) { - ret += ' --global' - } else { - ret += ' --save' + args[0] = 'install' + if (!args.includes('--dev')) { + args.push('--save') } - return ret + return convertAddRemoveArgs(args) }, - remove(command: string, global?: true) { - let dev - let ret = command - .replace('remove', 'uninstall') - .replace(/\s*--dev/, function () { - dev = true - return '' - }) - .replace('--no-lockfile', '--no-package-lock') - .replace('--optional', '--save-optional') - .replace('--exact', '--save-exact') - if (dev) { - ret += ' --save-dev' - } else if (global) { - ret += ' --global' - } else { - ret += ' --save' + remove(args: string[]) { + args[0] = 'uninstall' + if (!args.includes('--dev')) { + args.push('--save') } - return ret + return convertAddRemoveArgs(args) }, - version(command: string) { - return command.replace(/--(major|minor|patch)/, '$1') + version(args: string[]) { + return args.map((item) => { + switch (item) { + case '--major': + return 'major' + case '--minor': + return 'minor' + case '--patch': + return 'patch' + default: + return item + } + }) }, install: 'install', - list(command: string) { - return command - .replace(/--pattern ["']([^"']+)["']/, function (_, packages: string) { - return packages.split('|').join(' ') - }) - .replace(/^list/, 'ls') + list(args: string[]) { + args[0] = 'ls' + const patternIndex = args.findIndex((item) => item === '--pattern') + if (patternIndex && args[patternIndex + 1]) { + const packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|') + args.splice(patternIndex, 2, packages.join(' ')) + } + return args }, init: 'init', create: 'init', @@ -61,13 +66,15 @@ const yarnToNpmTable = { start: 'start', stop: 'stop', test: 'test', - global(command: string) { - if (/^global add/.test(command)) { - return yarnToNpmTable.add(command.replace(/^global add/, 'add'), true) - } else if (/^global remove/.test(command)) { - return yarnToNpmTable.remove(command.replace(/^global remove/, 'remove'), true) + global(args: string[]) { + if (args[1] === 'add' || args[1] === 'remove') { + args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall') + args.push('--global') + return convertAddRemoveArgs(args) } - return 'npm ' + command + "\n# couldn't auto-convert command" + // TODO: find better way + args.push("\n# couldn't auto-convert command") + return args }, } @@ -76,20 +83,21 @@ export function yarnToNPM(_m: string, command: string): string { if (command === '') { return 'npm install' } + let args = parse(command) const firstCommand = (/\w+/.exec(command) || [''])[0] - if (unchangedCLICommands.includes(firstCommand)) { + if (unchangedCLICommands.includes(args[0])) { return 'npm ' + command - } - - if (firstCommand in yarnToNpmTable) { - const converter = yarnToNpmTable[firstCommand as keyof typeof yarnToNpmTable] + } else if (args[0] in yarnToNpmTable) { + const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable] if (typeof converter === 'function') { - return 'npm ' + converter(command) + args = converter(args) } else { - return 'npm ' + command.replace(firstCommand, converter) + args[0] = converter } + + return 'npm ' + args.filter(Boolean).join(' ') } else if (!yarnCLICommands.includes(firstCommand)) { // i.e., yarn grunt -> npm run grunt return 'npm run ' + command diff --git a/test/commands.spec.ts b/test/commands.spec.ts new file mode 100644 index 0000000..dc549eb --- /dev/null +++ b/test/commands.spec.ts @@ -0,0 +1,37 @@ +import { parse } from '../src/command' + +describe('should parse command correctly', () => { + it('simple', () => { + expect(parse('npm')).toEqual(['npm']) + expect(parse('npm test')).toEqual(['npm', 'test']) + expect(parse('npm test bar')).toEqual(['npm', 'test', 'bar']) + }) + it('with params', () => { + expect(parse('npm --bar')).toEqual(['npm', '--bar']) + expect(parse('npm -- --bar')).toEqual(['npm', '--', '--bar']) + }) + it('with strings', () => { + expect(parse('npm ""')).toEqual(['npm', '""']) + expect(parse('npm "test"')).toEqual(['npm', '"test"']) + expect(parse("npm ''")).toEqual(['npm', "''"]) + expect(parse("npm 'test'")).toEqual(['npm', "'test'"]) + }) + it('with string params', () => { + expect(parse('npm --bar ""')).toEqual(['npm', '--bar', '""']) + expect(parse('npm --bar "test"')).toEqual(['npm', '--bar', '"test"']) + expect(parse("npm --bar ''")).toEqual(['npm', '--bar', "''"]) + expect(parse("npm --bar 'test'")).toEqual(['npm', '--bar', "'test'"]) + expect(parse('yarn add test --no-lockfile')).toEqual(['yarn', 'add', 'test', '--no-lockfile']) + }) + it('with space in strings', () => { + expect(parse('npm --bar "test 123"')).toEqual(['npm', '--bar', '"test 123"']) + expect(parse("npm --bar 'test 123'")).toEqual(['npm', '--bar', "'test 123'"]) + expect(parse('npm --bar "test \' 123"')).toEqual(['npm', '--bar', '"test \' 123"']) + expect(parse('npm --bar "test \\" 123"')).toEqual(['npm', '--bar', '"test \\" 123"']) + expect(parse("npm --bar 'test \" 123'")).toEqual(['npm', '--bar', "'test \" 123'"]) + expect(parse("npm --bar 'test \\' 123'")).toEqual(['npm', '--bar', "'test \\' 123'"]) + expect(parse("npm 'test \\' 123 --bar'")).toEqual(['npm', "'test \\' 123 --bar'"]) + expect(parse('npm "test \\" 123 --bar"')).toEqual(['npm', '"test \\" 123 --bar"']) + expect(parse('npm "a \\" 11" "b \\" 22"')).toEqual(['npm', '"a \\" 11"', '"b \\" 22"']) + }) +}) diff --git a/test/index.spec.ts b/test/index.spec.ts index 10c2bf2..e2dec50 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -5,6 +5,16 @@ import convert from '../src' describe('NPM to Yarn tests', () => { it('Simple convert works', () => { expect(convert('npm install squirrelly', 'yarn')).toEqual('yarn add squirrelly') + expect(convert('npm install my--save-dev', 'yarn')).toEqual('yarn add my--save-dev') + expect(convert('npm i squirrelly', 'yarn')).toEqual('yarn add squirrelly') + expect(convert('npm i my--save-dev', 'yarn')).toEqual('yarn add my--save-dev') + expect(convert('npm i squirrelly --no-package-lock', 'yarn')).toEqual( + 'yarn add squirrelly --no-lockfile' + ) + expect(convert('npm i squirrelly --save-optional', 'yarn')).toEqual( + 'yarn add squirrelly --optional' + ) + expect(convert('npm i squirrelly --save-exact', 'yarn')).toEqual('yarn add squirrelly --exact') }) it('Simple convert works w/ remove', () => { @@ -13,6 +23,9 @@ describe('NPM to Yarn tests', () => { it('Global install', () => { expect(convert('npm install squirrelly --global', 'yarn')).toEqual('yarn global add squirrelly') + expect(convert('npm install squirrelly -g', 'yarn')).toEqual('yarn global add squirrelly') + expect(convert('npm i squirrelly --global', 'yarn')).toEqual('yarn global add squirrelly') + expect(convert('npm i squirrelly -g', 'yarn')).toEqual('yarn global add squirrelly') }) it('Global uninstall', () => { @@ -26,7 +39,10 @@ describe('NPM to Yarn tests', () => { }) it('Version works', () => { + expect(convert('npm version', 'yarn')).toEqual('yarn version') expect(convert('npm version major', 'yarn')).toEqual('yarn version --major') + expect(convert('npm version minor', 'yarn')).toEqual('yarn version --minor') + expect(convert('npm version patch', 'yarn')).toEqual('yarn version --patch') }) it('npm install', () => { @@ -117,6 +133,15 @@ describe('NPM to Yarn tests', () => { describe('Yarn to NPM tests', () => { it('Simple convert works', () => { expect(convert('yarn add squirrelly', 'npm')).toEqual('npm install squirrelly --save') + expect(convert('yarn add squirrelly --no-lockfile', 'npm')).toEqual( + 'npm install squirrelly --no-package-lock --save' + ) + expect(convert('yarn add squirrelly --optional', 'npm')).toEqual( + 'npm install squirrelly --save-optional --save' + ) + expect(convert('yarn add squirrelly --exact', 'npm')).toEqual( + 'npm install squirrelly --save-exact --save' + ) }) it('Convert with dev works', () => { @@ -149,6 +174,9 @@ describe('Yarn to NPM tests', () => { expect(convert('yarn global remove squirrelly', 'npm')).toEqual( 'npm uninstall squirrelly --global' ) + expect(convert('yarn global squirrelly', 'npm')).toEqual( + 'npm global squirrelly \n' + "# couldn't auto-convert command" + ) }) it('Plain `yarn`', () => { @@ -160,7 +188,10 @@ describe('Yarn to NPM tests', () => { }) it('Version works', () => { + expect(convert('yarn version', 'npm')).toEqual('npm version') expect(convert('yarn version --major', 'npm')).toEqual('npm version major') + expect(convert('yarn version --minor', 'npm')).toEqual('npm version minor') + expect(convert('yarn version --patch', 'npm')).toEqual('npm version patch') }) it('Yarn remove', () => { From bcef28077a12003ce2f84bf3cd5b5466b94ff9cd Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 10:06:11 +0100 Subject: [PATCH 03/12] fix: add test cases for reported issues - armano2/npm-to-yarn#6 - armano2/npm-to-yarn#7 --- dist/npm-to-yarn.mjs | 10 +++++----- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 10 +++++----- dist/npm-to-yarn.umd.js.map | 2 +- src/npmToYarn.ts | 11 ++++++----- test/index.spec.ts | 8 ++++++++ 6 files changed, 26 insertions(+), 17 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 52c9070..14eb3f8 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -238,10 +238,6 @@ var npmToYarnTable = { if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { args.splice(0, 1); } - var index = args.findIndex(function (a) { return a === '--'; }); - if (index >= 0) { - args.splice(index, 1); - } return args; }, exec: function (args) { @@ -278,8 +274,12 @@ var npmToYarnTable = { }; function npmToYarn(_m, command) { var args = parse((command || '').trim()); + var index = args.findIndex(function (a) { return a === '--'; }); + if (index >= 0) { + args.splice(index, 1); + } if (unchangedCLICommands.includes(args[0])) { - return 'yarn ' + command; + return 'yarn ' + args.join(' '); } else if (args[0] in npmToYarnTable) { var converter = npmToYarnTable[args[0]]; diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index e6dac5c..f792c73 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + command\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index 7075630..d89f799 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -244,10 +244,6 @@ if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { args.splice(0, 1); } - var index = args.findIndex(function (a) { return a === '--'; }); - if (index >= 0) { - args.splice(index, 1); - } return args; }, exec: function (args) { @@ -284,8 +280,12 @@ }; function npmToYarn(_m, command) { var args = parse((command || '').trim()); + var index = args.findIndex(function (a) { return a === '--'; }); + if (index >= 0) { + args.splice(index, 1); + } if (unchangedCLICommands.includes(args[0])) { - return 'yarn ' + command; + return 'yarn ' + args.join(' '); } else if (args[0] in npmToYarnTable) { var converter = npmToYarnTable[args[0]]; diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index 17e7dd6..4d5c056 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + command\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/npmToYarn.ts b/src/npmToYarn.ts index 19455f7..cd287e6 100644 --- a/src/npmToYarn.ts +++ b/src/npmToYarn.ts @@ -54,10 +54,6 @@ const npmToYarnTable = { if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { args.splice(0, 1) } - const index = args.findIndex((a) => a === '--') - if (index >= 0) { - args.splice(index, 1) - } return args }, exec(args: string[]) { @@ -97,8 +93,13 @@ const npmToYarnTable = { export function npmToYarn(_m: string, command: string): string { let args = parse((command || '').trim()) + const index = args.findIndex((a) => a === '--') + if (index >= 0) { + args.splice(index, 1) + } + if (unchangedCLICommands.includes(args[0])) { - return 'yarn ' + command + return 'yarn ' + args.join(' ') } else if (args[0] in npmToYarnTable) { const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable] diff --git a/test/index.spec.ts b/test/index.spec.ts index e2dec50..487aad4 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -15,6 +15,7 @@ describe('NPM to Yarn tests', () => { 'yarn add squirrelly --optional' ) expect(convert('npm i squirrelly --save-exact', 'yarn')).toEqual('yarn add squirrelly --exact') + expect(convert('npm install pkg --save-exact', 'yarn')).toEqual('yarn add pkg --exact') }) it('Simple convert works w/ remove', () => { @@ -70,6 +71,13 @@ describe('NPM to Yarn tests', () => { expect(convert('npm test', 'yarn')).toEqual('yarn test') }) + it('npm with dash-dash', () => { + expect(convert('npm run test -- --version', 'yarn')).toEqual('yarn run test --version') + expect(convert('npm run test -- -v', 'yarn')).toEqual('yarn run test -v') + expect(convert('npm test -- --version', 'yarn')).toEqual('yarn test --version') + expect(convert('npm test -- -v', 'yarn')).toEqual('yarn test -v') + }) + it('npm init', () => { expect(convert('npm init', 'yarn')).toEqual('yarn init') expect(convert('npm init -y', 'yarn')).toEqual('yarn init -y') From 58e39cae39949427b2bae4833c122f31090c7f17 Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 10:14:46 +0100 Subject: [PATCH 04/12] fix: remove exports --- dist/npm-to-yarn.mjs | 2 +- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 14 +++++--------- dist/npm-to-yarn.umd.js.map | 2 +- dist/types/index.d.ts | 8 -------- src/index.ts | 4 ++-- 6 files changed, 10 insertions(+), 22 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 14eb3f8..9e00a04 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -320,5 +320,5 @@ function convert(str, to) { } } -export { convertToNpm, convertToYarn, convert as default }; +export { convert as default }; //# sourceMappingURL=npm-to-yarn.mjs.map diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index f792c73..2bfba9a 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index d89f799..77b8be3 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -1,8 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n2y = {})); -})(this, (function (exports) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.n2y = factory()); +})(this, (function () { 'use strict'; var unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']; var yarnCLICommands = [ @@ -326,11 +326,7 @@ } } - exports.convertToNpm = convertToNpm; - exports.convertToYarn = convertToYarn; - exports.default = convert; - - Object.defineProperty(exports, '__esModule', { value: true }); + return convert; })); //# sourceMappingURL=npm-to-yarn.umd.js.map diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index 4d5c056..924dcc2 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nexport function convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nexport function convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/types/index.d.ts b/dist/types/index.d.ts index 204049f..003e7ab 100644 --- a/dist/types/index.d.ts +++ b/dist/types/index.d.ts @@ -1,11 +1,3 @@ -/** - * Converts yarn to npm command - */ -export declare function convertToNpm(str: string): string; -/** - * Converts npm to yarn command - */ -export declare function convertToYarn(str: string): string; /** * Converts between npm and yarn command */ diff --git a/src/index.ts b/src/index.ts index 9b2f07e..349f636 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,14 +4,14 @@ import { npmToYarn } from './npmToYarn' /** * Converts yarn to npm command */ -export function convertToNpm(str: string) { +function convertToNpm(str: string) { return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM) } /** * Converts npm to yarn command */ -export function convertToYarn(str: string) { +function convertToYarn(str: string) { return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn) } From 9171a85d6555cdc4534c08d7a0f35ec842d6637e Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 10:18:49 +0100 Subject: [PATCH 05/12] docs: add missing readme change --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f2a471f..794486b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ![GitHub package.json version (master)](https://img.shields.io/github/package-json/v/nebrelbug/npm-to-yarn/master?label=current%20version) [![Travis](https://img.shields.io/travis/com/nebrelbug/npm-to-yarn/master.svg)](https://travis-ci.com/nebrelbug/npm-to-yarn) -[![All Contributors][logo]](#contributors-) +[![All Contributors][logo]](#contributors) [![Coveralls](https://img.shields.io/coveralls/nebrelbug/npm-to-yarn.svg)](https://coveralls.io/github/nebrelbug/npm-to-yarn) [![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier) @@ -40,7 +40,12 @@ convert('npm install squirrelly', 'yarn') ### API -`convert(command: string, to: 'yarn' | 'npm') -> string` +```ts +/** + * Converts between npm and yarn command + */ +export default function convert(str: string, to: 'npm' | 'yarn'): string; +``` ## ✔️ Tests @@ -53,6 +58,7 @@ To be added ## Projects using `npm-to-yarn` - [Dynamoose](https://dynamoosejs.com) +- [Docusaurus](https://docusaurus.io) ## Contributors From fe3a7825123ebc4e6e0d6b01b0f7bad4e99aa2c6 Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 10:44:54 +0100 Subject: [PATCH 06/12] fix: add missing shortcut support npm i, -E -D -S --- dist/npm-to-yarn.mjs | 9 +++++---- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 9 +++++---- dist/npm-to-yarn.umd.js.map | 2 +- src/npmToYarn.ts | 7 ++++--- src/yarnToNpm.ts | 2 +- test/index.spec.ts | 23 +++++++++++++++++++++-- 7 files changed, 38 insertions(+), 16 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 9e00a04..d8b0556 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -96,7 +96,7 @@ var yarnToNpmTable = { return ['rebuild']; } args[0] = 'install'; - if (!args.includes('--dev')) { + if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) { args.push('--save'); } return convertAddRemoveArgs(args); @@ -188,15 +188,15 @@ var npmToYarnTable = { args.unshift('global'); } return args.map(function (item) { - if (item === '--save-dev') + if (item === '--save-dev' || item === '-D') return '--dev'; - else if (item === '--save') + else if (item === '--save' || item === '-S') return ''; else if (item === '--no-package-lock') return '--no-lockfile'; else if (item === '--save-optional') return '--optional'; - else if (item === '--save-exact') + else if (item === '--save-exact' || item === '-E') return '--exact'; else if (item === '--global' || item === '-g') return ''; @@ -204,6 +204,7 @@ var npmToYarnTable = { }); }, i: function (args) { + args[0] = 'install'; return npmToYarnTable.install(args); }, uninstall: function (args) { diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index 2bfba9a..c007256 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index 77b8be3..06cae3b 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -102,7 +102,7 @@ return ['rebuild']; } args[0] = 'install'; - if (!args.includes('--dev')) { + if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) { args.push('--save'); } return convertAddRemoveArgs(args); @@ -194,15 +194,15 @@ args.unshift('global'); } return args.map(function (item) { - if (item === '--save-dev') + if (item === '--save-dev' || item === '-D') return '--dev'; - else if (item === '--save') + else if (item === '--save' || item === '-S') return ''; else if (item === '--no-package-lock') return '--no-lockfile'; else if (item === '--save-optional') return '--optional'; - else if (item === '--save-exact') + else if (item === '--save-exact' || item === '-E') return '--exact'; else if (item === '--global' || item === '-g') return ''; @@ -210,6 +210,7 @@ }); }, i: function (args) { + args[0] = 'install'; return npmToYarnTable.install(args); }, uninstall: function (args) { diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index 924dcc2..05829d2 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":";;;;;;EAAO,IAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;EAEpF,IAAM,eAAe,GAAG;MAC7B,MAAM;MACN,KAAK;MACL,KAAK;MACL,OAAO;MACP,WAAW;MACX,KAAK;MACL,OAAO;MACP,QAAQ;MACR,QAAQ;MACR,QAAQ;MACR,qBAAqB;MACrB,QAAQ;MACR,MAAM;MACN,QAAQ;MACR,MAAM;MACN,SAAS;MACT,UAAU;MACV,MAAM;MACN,UAAU;MACV,UAAU;MACV,OAAO;MACP,MAAM;MACN,UAAU;MACV,OAAO;MACP,QAAQ;MACR,aAAa;MACb,KAAK;MACL,MAAM;MACN,MAAM;MACN,QAAQ;MACR,SAAS;MACT,qBAAqB;MACrB,SAAS;MACT,UAAU;MACV,KAAK;MACL,WAAW;MACX,YAAY;GACb;;ECxCK,SAAU,KAAK,CAAC,OAAe,EAAA;MACnC,IAAM,IAAI,GAAa,EAAE,CAAA;MACzB,IAAI,SAAS,GAAmB,KAAK,CAAA;MACrC,IAAI,OAAO,GAAG,KAAK,CAAA;MACnB,IAAI,IAAI,GAAG,EAAE,CAAA;EACb,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;UACvC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;UAC9B,IAAI,IAAI,KAAK,IAAI,EAAE;cACjB,IAAI,IAAI,IAAI,CAAA;cACZ,OAAO,GAAG,IAAI,CAAA;EACf,SAAA;EAAM,aAAA;EACL,YAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;EAC9B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;kBACf,IAAI,GAAG,EAAE,CAAA;EACV,aAAA;EAAM,iBAAA,IAAI,CAAC,OAAO,KAAK,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;kBACrD,IAAI,IAAI,IAAI,CAAA;kBACZ,IAAI,IAAI,KAAK,SAAS,EAAE;sBACtB,SAAS,GAAG,KAAK,CAAA;EAClB,iBAAA;uBAAM,IAAI,CAAC,SAAS,EAAE;sBACrB,SAAS,GAAG,IAAI,CAAA;EACjB,iBAAA;EACF,aAAA;EAAM,iBAAA;kBACL,IAAI,IAAI,IAAI,CAAA;EACb,aAAA;cACD,OAAO,GAAG,KAAK,CAAA;EAChB,SAAA;EACF,KAAA;EACD,IAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;EACf,IAAA,OAAO,IAAI,CAAA;EACb;;EC1BA,SAAS,oBAAoB,CAAC,IAAc,EAAA;EAC1C,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;EACnB,QAAA,QAAQ,IAAI;EACV,YAAA,KAAK,eAAe;EAClB,gBAAA,OAAO,mBAAmB,CAAA;EAC5B,YAAA,KAAK,OAAO;EACV,gBAAA,OAAO,YAAY,CAAA;EACrB,YAAA,KAAK,YAAY;EACf,gBAAA,OAAO,iBAAiB,CAAA;EAC1B,YAAA,KAAK,SAAS;EACZ,gBAAA,OAAO,cAAc,CAAA;EACvB,YAAA;EACE,gBAAA,OAAO,IAAI,CAAA;EACd,SAAA;EACH,KAAC,CAAC,CAAA;EACJ,CAAC;EAED,IAAM,cAAc,GAAG;EACrB,IAAA,GAAG,YAAC,IAAc,EAAA;EAChB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;cACzB,OAAO,CAAC,SAAS,CAAC,CAAA;EACnB,SAAA;EACD,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;UACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;EACxF,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;EACpB,SAAA;EACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;OAClC;EACD,IAAA,MAAM,YAAC,IAAc,EAAA;EACnB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;EACrB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;EAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;EACpB,SAAA;EACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;OAClC;EACD,IAAA,OAAO,YAAC,IAAc,EAAA;EACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;EACnB,YAAA,QAAQ,IAAI;EACV,gBAAA,KAAK,SAAS;EACZ,oBAAA,OAAO,OAAO,CAAA;EAChB,gBAAA,KAAK,SAAS;EACZ,oBAAA,OAAO,OAAO,CAAA;EAChB,gBAAA,KAAK,SAAS;EACZ,oBAAA,OAAO,OAAO,CAAA;EAChB,gBAAA;EACE,oBAAA,OAAO,IAAI,CAAA;EACd,aAAA;EACH,SAAC,CAAC,CAAA;OACH;EACD,IAAA,OAAO,EAAE,SAAS;EAClB,IAAA,IAAI,YAAC,IAAc,EAAA;EACjB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;EACd,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,IAAI,KAAK,WAAW,CAApB,EAAoB,CAAC,CAAA;UACnE,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE;cAC1C,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;EACpF,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;EACjD,SAAA;EACD,QAAA,OAAO,IAAI,CAAA;OACZ;EACD,IAAA,IAAI,EAAE,MAAM;EACZ,IAAA,MAAM,EAAE,MAAM;EACd,IAAA,GAAG,EAAE,KAAK;EACV,IAAA,KAAK,EAAE,OAAO;EACd,IAAA,IAAI,EAAE,MAAM;EACZ,IAAA,IAAI,EAAE,MAAM;EACZ,IAAA,MAAM,YAAC,IAAc,EAAA;EACnB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;cAC7C,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,SAAS,GAAG,WAAW,CAAC,CAAA;EAC9D,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;EACrB,YAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;EAClC,SAAA;;EAED,QAAA,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;EAC9C,QAAA,OAAO,IAAI,CAAA;OACZ;GACF,CAAA;EAEe,SAAA,SAAS,CAAC,EAAU,EAAE,OAAe,EAAA;MACnD,OAAO,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAA;MAChC,IAAI,OAAO,KAAK,EAAE,EAAE;EAClB,QAAA,OAAO,aAAa,CAAA;EACrB,KAAA;EACD,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;EACzB,IAAA,IAAM,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;MAErD,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;UAC1C,OAAO,MAAM,GAAG,OAAO,CAAA;EACxB,KAAA;EAAM,SAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE;UACpC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAgC,CAAC,CAAA;EAExE,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;EACnC,YAAA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;EACvB,SAAA;EAAM,aAAA;EACL,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;EACpB,SAAA;EAED,QAAA,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EAC/C,KAAA;EAAM,SAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;;UAElD,OAAO,UAAU,GAAG,OAAO,CAAA;EAC5B,KAAA;EAAM,SAAA;EACL,QAAA,OAAO,MAAM,GAAG,OAAO,GAAG,mCAAmC,CAAA;EAC9D,KAAA;EACH;;ECvGA,IAAM,cAAc,GAAG;EACrB,IAAA,OAAO,YAAC,IAAc,EAAA;EACpB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;EACrB,YAAA,OAAO,IAAI,CAAA;EACZ,SAAA;EACD,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;EAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;EACpD,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;EACvB,SAAA;EAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;EACnB,YAAA,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,IAAI;EAAE,gBAAA,OAAO,OAAO,CAAA;EACrD,iBAAA,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;EAAE,gBAAA,OAAO,EAAE,CAAA;mBACjD,IAAI,IAAI,KAAK,mBAAmB;EAAE,gBAAA,OAAO,eAAe,CAAA;mBACxD,IAAI,IAAI,KAAK,iBAAiB;EAAE,gBAAA,OAAO,YAAY,CAAA;EACnD,iBAAA,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,IAAI;EAAE,gBAAA,OAAO,SAAS,CAAA;EAC9D,iBAAA,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI;EAAE,gBAAA,OAAO,EAAE,CAAA;EACxD,YAAA,OAAO,IAAI,CAAA;EACb,SAAC,CAAC,CAAA;OACH;EACD,IAAA,CAAC,YAAC,IAAc,EAAA;EACd,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;EACnB,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;OACpC;EACD,IAAA,SAAS,YAAC,IAAc,EAAA;EACtB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;EAElB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;EACpD,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;EACvB,SAAA;EAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;cACnB,IAAI,IAAI,KAAK,YAAY;EAAE,gBAAA,OAAO,OAAO,CAAA;mBACpC,IAAI,IAAI,KAAK,QAAQ;EAAE,gBAAA,OAAO,EAAE,CAAA;mBAChC,IAAI,IAAI,KAAK,mBAAmB;EAAE,gBAAA,OAAO,eAAe,CAAA;EACxD,iBAAA,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI;EAAE,gBAAA,OAAO,EAAE,CAAA;EACxD,YAAA,OAAO,IAAI,CAAA;EACb,SAAC,CAAC,CAAA;OACH;EACD,IAAA,OAAO,YAAC,IAAc,EAAA;EACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;cACnB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;kBAAE,OAAO,IAAA,CAAA,MAAA,CAAK,IAAI,CAAE,CAAA;EAClE,YAAA,OAAO,IAAI,CAAA;EACb,SAAC,CAAC,CAAA;OACH;EACD,IAAA,OAAO,YAAC,IAAc,EAAA;EACpB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAA;EACvB,QAAA,OAAO,IAAI,CAAA;OACZ;EACD,IAAA,GAAG,YAAC,IAAc,EAAA;UAChB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;EAC5F,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;EAClB,SAAA;EACD,QAAA,OAAO,IAAI,CAAA;OACZ;EACD,IAAA,IAAI,YAAC,IAAc,EAAA;EACjB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;EACf,QAAA,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;OAChC;EACD,IAAA,EAAE,YAAC,IAAc,EAAA;EACf,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;UAEhB,IAAI,KAAK,GAAG,KAAK,CAAA;UACjB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,EAAE,EAAA;EACpC,YAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;EACpB,gBAAA,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;kBAC5B,OAAO,CAAC,KAAK,CAAA;EACd,aAAA;EACD,YAAA,OAAO,KAAK,CAAA;EACd,SAAC,CAAC,CAAA;EACF,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;cACvB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;EAC7E,SAAA;EACD,QAAA,OAAO,IAAI,CAAA;OACZ;EACD,IAAA,IAAI,YAAC,IAAc,EAAA;EACjB,QAAA,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;OAC/B;EACD,IAAA,IAAI,YAAC,IAAc,EAAA;EACjB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;EACvC,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;EACnB,SAAA;EACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,IAAI,KAAK,SAAS,CAAlB,EAAkB,CAAC,CAAA;OACjD;EACD,IAAA,KAAK,EAAE,OAAO;EACd,IAAA,IAAI,EAAE,MAAM;EACZ,IAAA,IAAI,EAAE,MAAM;GACb,CAAA;EAEe,SAAA,SAAS,CAAC,EAAU,EAAE,OAAe,EAAA;EACnD,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;EAExC,IAAA,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,KAAK,IAAI,CAAV,EAAU,CAAC,CAAA;MAC/C,IAAI,KAAK,IAAI,CAAC,EAAE;EACd,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;EACtB,KAAA;MAED,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;UAC1C,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EAChC,KAAA;EAAM,SAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE;UACpC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAgC,CAAC,CAAA;EAExE,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;EACnC,YAAA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;EACvB,SAAA;EAAM,aAAA;EACL,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;EACpB,SAAA;EAED,QAAA,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EAChD,KAAA;EAAM,SAAA;EACL,QAAA,OAAO,OAAO,GAAG,OAAO,GAAG,mCAAmC,CAAA;EAC/D,KAAA;EACH;;ECjHA;;EAEG;EACH,SAAS,YAAY,CAAC,GAAW,EAAA;MAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAA;EAC3D,CAAC;EAED;;EAEG;EACH,SAAS,aAAa,CAAC,GAAW,EAAA;MAChC,OAAO,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAA;EAC1D,CAAC;EAED;;EAEG;EACW,SAAU,OAAO,CAAC,GAAW,EAAE,EAAkB,EAAA;MAC7D,IAAI,EAAE,KAAK,KAAK,EAAE;EAChB,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;EACzB,KAAA;EAAM,SAAA;EACL,QAAA,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;EAC1B,KAAA;EACH;;;;;;;;"} \ No newline at end of file diff --git a/src/npmToYarn.ts b/src/npmToYarn.ts index cd287e6..fe1319e 100644 --- a/src/npmToYarn.ts +++ b/src/npmToYarn.ts @@ -13,16 +13,17 @@ const npmToYarnTable = { } return args.map((item) => { - if (item === '--save-dev') return '--dev' - else if (item === '--save') return '' + if (item === '--save-dev' || item === '-D') return '--dev' + else if (item === '--save' || item === '-S') return '' else if (item === '--no-package-lock') return '--no-lockfile' else if (item === '--save-optional') return '--optional' - else if (item === '--save-exact') return '--exact' + else if (item === '--save-exact' || item === '-E') return '--exact' else if (item === '--global' || item === '-g') return '' return item }) }, i(args: string[]) { + args[0] = 'install' return npmToYarnTable.install(args) }, uninstall(args: string[]) { diff --git a/src/yarnToNpm.ts b/src/yarnToNpm.ts index e0f93fd..8fc9789 100644 --- a/src/yarnToNpm.ts +++ b/src/yarnToNpm.ts @@ -24,7 +24,7 @@ const yarnToNpmTable = { return ['rebuild'] } args[0] = 'install' - if (!args.includes('--dev')) { + if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) { args.push('--save') } return convertAddRemoveArgs(args) diff --git a/test/index.spec.ts b/test/index.spec.ts index 487aad4..07393a7 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -48,13 +48,32 @@ describe('NPM to Yarn tests', () => { it('npm install', () => { expect(convert('npm install', 'yarn')).toEqual('yarn install') + expect(convert('npm i', 'yarn')).toEqual('yarn install') + }) + + it('npm install --save', () => { + expect(convert('npm install --save test', 'yarn')).toEqual('yarn add test') + expect(convert('npm install -S test', 'yarn')).toEqual('yarn add test') + expect(convert('npm i --save test', 'yarn')).toEqual('yarn add test') + expect(convert('npm i -S test', 'yarn')).toEqual('yarn add test') }) it('npm install --save-exact', () => { expect(convert('npm install --save-exact', 'yarn')).toEqual('yarn add --exact') + expect(convert('npm install -E', 'yarn')).toEqual('yarn add --exact') + expect(convert('npm i --save-exact', 'yarn')).toEqual('yarn add --exact') + expect(convert('npm i -E', 'yarn')).toEqual('yarn add --exact') }) it('npm install --save-optional', () => { expect(convert('npm install --save-optional', 'yarn')).toEqual('yarn add --optional') + expect(convert('npm i --save-optional', 'yarn')).toEqual('yarn add --optional') + expect(convert('npm i --save-optional test', 'yarn')).toEqual('yarn add --optional test') + }) + it('npm install --save-dev', () => { + expect(convert('npm install --save-dev', 'yarn')).toEqual('yarn add --dev') + expect(convert('npm install -D', 'yarn')).toEqual('yarn add --dev') + expect(convert('npm i --save-dev', 'yarn')).toEqual('yarn add --dev') + expect(convert('npm i -D', 'yarn')).toEqual('yarn add --dev') }) it('npm rebuild', () => { @@ -145,10 +164,10 @@ describe('Yarn to NPM tests', () => { 'npm install squirrelly --no-package-lock --save' ) expect(convert('yarn add squirrelly --optional', 'npm')).toEqual( - 'npm install squirrelly --save-optional --save' + 'npm install squirrelly --save-optional' ) expect(convert('yarn add squirrelly --exact', 'npm')).toEqual( - 'npm install squirrelly --save-exact --save' + 'npm install squirrelly --save-exact' ) }) From 3c3e6e728acc82bdac2b87ecf7ea12894bd797fd Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 11:09:19 +0100 Subject: [PATCH 07/12] fix: correct parsing list --production and --development --- src/yarnToNpm.ts | 2 +- test/index.spec.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/yarnToNpm.ts b/src/yarnToNpm.ts index 8fc9789..2db4b2e 100644 --- a/src/yarnToNpm.ts +++ b/src/yarnToNpm.ts @@ -54,7 +54,7 @@ const yarnToNpmTable = { list(args: string[]) { args[0] = 'ls' const patternIndex = args.findIndex((item) => item === '--pattern') - if (patternIndex && args[patternIndex + 1]) { + if (patternIndex >= 0 && args[patternIndex + 1]) { const packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|') args.splice(patternIndex, 2, packages.join(' ')) } diff --git a/test/index.spec.ts b/test/index.spec.ts index 07393a7..720900f 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -154,6 +154,8 @@ describe('NPM to Yarn tests', () => { expect(convert('npm ls @scope/package @scope/package2 --depth=2', 'yarn')).toEqual( 'yarn list --pattern "@scope/package|@scope/package2" --depth=2' ) + expect(convert('npm ls --production', 'yarn')).toEqual('yarn list --production') + expect(convert('npm ls --development', 'yarn')).toEqual('yarn list --development') }) }) @@ -274,5 +276,7 @@ describe('Yarn to NPM tests', () => { expect(convert('yarn list --pattern "@scope/package|@scope/package2"', 'npm')).toEqual( 'npm ls @scope/package @scope/package2' ) + expect(convert('yarn list --production', 'npm')).toEqual('npm ls --production') + expect(convert('yarn list --development', 'npm')).toEqual('npm ls --development') }) }) From dfa7239641227c244dbdd3310bd0e54f581c36c9 Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 11:11:52 +0100 Subject: [PATCH 08/12] fix: add missing build --- dist/npm-to-yarn.mjs | 2 +- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 2 +- dist/npm-to-yarn.umd.js.map | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index d8b0556..03d9909 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -126,7 +126,7 @@ var yarnToNpmTable = { list: function (args) { args[0] = 'ls'; var patternIndex = args.findIndex(function (item) { return item === '--pattern'; }); - if (patternIndex && args[patternIndex + 1]) { + if (patternIndex >= 0 && args[patternIndex + 1]) { var packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|'); args.splice(patternIndex, 2, packages.join(' ')); } diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index c007256..961192c 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"AAAO,IAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAEpF,IAAM,eAAe,GAAG;IAC7B,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,WAAW;IACX,KAAK;IACL,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,qBAAqB;IACrB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IACP,QAAQ;IACR,aAAa;IACb,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,qBAAqB;IACrB,SAAS;IACT,UAAU;IACV,KAAK;IACL,WAAW;IACX,YAAY;CACb;;ACxCK,SAAU,KAAK,CAAC,OAAe,EAAA;IACnC,IAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,SAAS,GAAmB,KAAK,CAAA;IACrC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,IAAI,GAAG,EAAE,CAAA;AACb,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACvC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,IAAI,IAAI,CAAA;YACZ,OAAO,GAAG,IAAI,CAAA;AACf,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACf,IAAI,GAAG,EAAE,CAAA;AACV,aAAA;AAAM,iBAAA,IAAI,CAAC,OAAO,KAAK,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;gBACrD,IAAI,IAAI,IAAI,CAAA;gBACZ,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,SAAS,GAAG,KAAK,CAAA;AAClB,iBAAA;qBAAM,IAAI,CAAC,SAAS,EAAE;oBACrB,SAAS,GAAG,IAAI,CAAA;AACjB,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,IAAI,IAAI,CAAA;AACb,aAAA;YACD,OAAO,GAAG,KAAK,CAAA;AAChB,SAAA;AACF,KAAA;AACD,IAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,IAAA,OAAO,IAAI,CAAA;AACb;;AC1BA,SAAS,oBAAoB,CAAC,IAAc,EAAA;AAC1C,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACnB,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,mBAAmB,CAAA;AAC5B,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,YAAY,CAAA;AACrB,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,iBAAiB,CAAA;AAC1B,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,cAAc,CAAA;AACvB,YAAA;AACE,gBAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACH,KAAC,CAAC,CAAA;AACJ,CAAC;AAED,IAAM,cAAc,GAAG;AACrB,IAAA,GAAG,YAAC,IAAc,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACzB,OAAO,CAAC,SAAS,CAAC,CAAA;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACxF,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACpB,SAAA;AACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;KAClC;AACD,IAAA,MAAM,YAAC,IAAc,EAAA;AACnB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACpB,SAAA;AACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;KAClC;AACD,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACnB,YAAA,QAAQ,IAAI;AACV,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,OAAO,CAAA;AAChB,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,OAAO,CAAA;AAChB,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,OAAO,CAAA;AAChB,gBAAA;AACE,oBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AACD,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AACd,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,IAAI,KAAK,WAAW,CAApB,EAAoB,CAAC,CAAA;QACnE,IAAI,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE;YAC/C,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpF,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,YAAC,IAAc,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,SAAS,GAAG,WAAW,CAAC,CAAA;AAC9D,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACrB,YAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAClC,SAAA;;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;AAC9C,QAAA,OAAO,IAAI,CAAA;KACZ;CACF,CAAA;AAEe,SAAA,SAAS,CAAC,EAAU,EAAE,OAAe,EAAA;IACnD,OAAO,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAA;IAChC,IAAI,OAAO,KAAK,EAAE,EAAE;AAClB,QAAA,OAAO,aAAa,CAAA;AACrB,KAAA;AACD,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;AACzB,IAAA,IAAM,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAErD,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1C,OAAO,MAAM,GAAG,OAAO,CAAA;AACxB,KAAA;AAAM,SAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE;QACpC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAgC,CAAC,CAAA;AAExE,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACnC,YAAA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AACpB,SAAA;AAED,QAAA,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/C,KAAA;AAAM,SAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;;QAElD,OAAO,UAAU,GAAG,OAAO,CAAA;AAC5B,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,MAAM,GAAG,OAAO,GAAG,mCAAmC,CAAA;AAC9D,KAAA;AACH;;ACvGA,IAAM,cAAc,GAAG;AACrB,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACvB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACnB,YAAA,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,OAAO,CAAA;AACrD,iBAAA,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE,CAAA;iBACjD,IAAI,IAAI,KAAK,mBAAmB;AAAE,gBAAA,OAAO,eAAe,CAAA;iBACxD,IAAI,IAAI,KAAK,iBAAiB;AAAE,gBAAA,OAAO,YAAY,CAAA;AACnD,iBAAA,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,SAAS,CAAA;AAC9D,iBAAA,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE,CAAA;AACxD,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,CAAC,YAAC,IAAc,EAAA;AACd,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AACnB,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;KACpC;AACD,IAAA,SAAS,YAAC,IAAc,EAAA;AACtB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;AAElB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACvB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;YACnB,IAAI,IAAI,KAAK,YAAY;AAAE,gBAAA,OAAO,OAAO,CAAA;iBACpC,IAAI,IAAI,KAAK,QAAQ;AAAE,gBAAA,OAAO,EAAE,CAAA;iBAChC,IAAI,IAAI,KAAK,mBAAmB;AAAE,gBAAA,OAAO,eAAe,CAAA;AACxD,iBAAA,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE,CAAA;AACxD,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;YACnB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAA,CAAA,MAAA,CAAK,IAAI,CAAE,CAAA;AAClE,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAA;AACvB,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,GAAG,YAAC,IAAc,EAAA;QAChB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5F,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAClB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AACf,QAAA,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAChC;AACD,IAAA,EAAE,YAAC,IAAc,EAAA;AACf,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;QAEhB,IAAI,KAAK,GAAG,KAAK,CAAA;QACjB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,EAAE,EAAA;AACpC,YAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;AACpB,gBAAA,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;gBAC5B,OAAO,CAAC,KAAK,CAAA;AACd,aAAA;AACD,YAAA,OAAO,KAAK,CAAA;AACd,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;AAC7E,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;KAC/B;AACD,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;AACnB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,IAAI,KAAK,SAAS,CAAlB,EAAkB,CAAC,CAAA;KACjD;AACD,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;CACb,CAAA;AAEe,SAAA,SAAS,CAAC,EAAU,EAAE,OAAe,EAAA;AACnD,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;AAExC,IAAA,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,KAAK,IAAI,CAAV,EAAU,CAAC,CAAA;IAC/C,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AACtB,KAAA;IAED,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1C,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChC,KAAA;AAAM,SAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE;QACpC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAgC,CAAC,CAAA;AAExE,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACnC,YAAA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AACpB,SAAA;AAED,QAAA,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChD,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,OAAO,GAAG,OAAO,GAAG,mCAAmC,CAAA;AAC/D,KAAA;AACH;;ACjHA;;AAEG;AACH,SAAS,YAAY,CAAC,GAAW,EAAA;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAA;AAC3D,CAAC;AAED;;AAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAA;IAChC,OAAO,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAA;AAC1D,CAAC;AAED;;AAEG;AACW,SAAU,OAAO,CAAC,GAAW,EAAE,EAAkB,EAAA;IAC7D,IAAI,EAAE,KAAK,KAAK,EAAE;AAChB,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AACzB,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;AAC1B,KAAA;AACH;;;;"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index 06cae3b..471fd45 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -132,7 +132,7 @@ list: function (args) { args[0] = 'ls'; var patternIndex = args.findIndex(function (item) { return item === '--pattern'; }); - if (patternIndex && args[patternIndex + 1]) { + if (patternIndex >= 0 && args[patternIndex + 1]) { var packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|'); args.splice(patternIndex, 2, packages.join(' ')); } diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index 05829d2..f26503e 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file From 920d81b195ea6838cb17845d322b5aab278b099a Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 11:13:23 +0100 Subject: [PATCH 09/12] fix: revert some unecessary changes --- dist/npm-to-yarn.mjs | 16 ++-------------- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 16 ++-------------- dist/npm-to-yarn.umd.js.map | 2 +- src/index.ts | 18 ++---------------- 5 files changed, 8 insertions(+), 46 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 03d9909..9cdf5f7 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -297,27 +297,15 @@ function npmToYarn(_m, command) { } } -/** - * Converts yarn to npm command - */ -function convertToNpm(str) { - return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); -} -/** - * Converts npm to yarn command - */ -function convertToYarn(str) { - return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); -} /** * Converts between npm and yarn command */ function convert(str, to) { if (to === 'npm') { - return convertToNpm(str); + return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); } else { - return convertToYarn(str); + return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); } } diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index 961192c..928c463 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"AAAO,IAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAEpF,IAAM,eAAe,GAAG;IAC7B,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,WAAW;IACX,KAAK;IACL,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,qBAAqB;IACrB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IACP,QAAQ;IACR,aAAa;IACb,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,qBAAqB;IACrB,SAAS;IACT,UAAU;IACV,KAAK;IACL,WAAW;IACX,YAAY;CACb;;ACxCK,SAAU,KAAK,CAAC,OAAe,EAAA;IACnC,IAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,SAAS,GAAmB,KAAK,CAAA;IACrC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,IAAI,GAAG,EAAE,CAAA;AACb,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACvC,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,IAAI,IAAI,CAAA;YACZ,OAAO,GAAG,IAAI,CAAA;AACf,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACf,IAAI,GAAG,EAAE,CAAA;AACV,aAAA;AAAM,iBAAA,IAAI,CAAC,OAAO,KAAK,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;gBACrD,IAAI,IAAI,IAAI,CAAA;gBACZ,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,SAAS,GAAG,KAAK,CAAA;AAClB,iBAAA;qBAAM,IAAI,CAAC,SAAS,EAAE;oBACrB,SAAS,GAAG,IAAI,CAAA;AACjB,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,IAAI,IAAI,CAAA;AACb,aAAA;YACD,OAAO,GAAG,KAAK,CAAA;AAChB,SAAA;AACF,KAAA;AACD,IAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,IAAA,OAAO,IAAI,CAAA;AACb;;AC1BA,SAAS,oBAAoB,CAAC,IAAc,EAAA;AAC1C,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACnB,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,mBAAmB,CAAA;AAC5B,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,YAAY,CAAA;AACrB,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,iBAAiB,CAAA;AAC1B,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,cAAc,CAAA;AACvB,YAAA;AACE,gBAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACH,KAAC,CAAC,CAAA;AACJ,CAAC;AAED,IAAM,cAAc,GAAG;AACrB,IAAA,GAAG,YAAC,IAAc,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACzB,OAAO,CAAC,SAAS,CAAC,CAAA;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACxF,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACpB,SAAA;AACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;KAClC;AACD,IAAA,MAAM,YAAC,IAAc,EAAA;AACnB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACpB,SAAA;AACD,QAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;KAClC;AACD,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACnB,YAAA,QAAQ,IAAI;AACV,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,OAAO,CAAA;AAChB,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,OAAO,CAAA;AAChB,gBAAA,KAAK,SAAS;AACZ,oBAAA,OAAO,OAAO,CAAA;AAChB,gBAAA;AACE,oBAAA,OAAO,IAAI,CAAA;AACd,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AACD,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AACd,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,IAAI,KAAK,WAAW,CAApB,EAAoB,CAAC,CAAA;QACnE,IAAI,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE;YAC/C,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpF,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACjD,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,YAAC,IAAc,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,SAAS,GAAG,WAAW,CAAC,CAAA;AAC9D,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AACrB,YAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAClC,SAAA;;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;AAC9C,QAAA,OAAO,IAAI,CAAA;KACZ;CACF,CAAA;AAEe,SAAA,SAAS,CAAC,EAAU,EAAE,OAAe,EAAA;IACnD,OAAO,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAA;IAChC,IAAI,OAAO,KAAK,EAAE,EAAE;AAClB,QAAA,OAAO,aAAa,CAAA;AACrB,KAAA;AACD,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;AACzB,IAAA,IAAM,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAErD,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1C,OAAO,MAAM,GAAG,OAAO,CAAA;AACxB,KAAA;AAAM,SAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE;QACpC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAgC,CAAC,CAAA;AAExE,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACnC,YAAA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AACpB,SAAA;AAED,QAAA,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/C,KAAA;AAAM,SAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;;QAElD,OAAO,UAAU,GAAG,OAAO,CAAA;AAC5B,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,MAAM,GAAG,OAAO,GAAG,mCAAmC,CAAA;AAC9D,KAAA;AACH;;ACvGA,IAAM,cAAc,GAAG;AACrB,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAEf,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACvB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;AACnB,YAAA,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,OAAO,CAAA;AACrD,iBAAA,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE,CAAA;iBACjD,IAAI,IAAI,KAAK,mBAAmB;AAAE,gBAAA,OAAO,eAAe,CAAA;iBACxD,IAAI,IAAI,KAAK,iBAAiB;AAAE,gBAAA,OAAO,YAAY,CAAA;AACnD,iBAAA,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,SAAS,CAAA;AAC9D,iBAAA,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE,CAAA;AACxD,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,CAAC,YAAC,IAAc,EAAA;AACd,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AACnB,QAAA,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;KACpC;AACD,IAAA,SAAS,YAAC,IAAc,EAAA;AACtB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;AAElB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AACvB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;YACnB,IAAI,IAAI,KAAK,YAAY;AAAE,gBAAA,OAAO,OAAO,CAAA;iBACpC,IAAI,IAAI,KAAK,QAAQ;AAAE,gBAAA,OAAO,EAAE,CAAA;iBAChC,IAAI,IAAI,KAAK,mBAAmB;AAAE,gBAAA,OAAO,eAAe,CAAA;AACxD,iBAAA,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,EAAE,CAAA;AACxD,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;YACnB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAA,CAAA,MAAA,CAAK,IAAI,CAAE,CAAA;AAClE,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,OAAO,YAAC,IAAc,EAAA;AACpB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,aAAa,CAAA;AACvB,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,GAAG,YAAC,IAAc,EAAA;QAChB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5F,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAClB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AACf,QAAA,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;KAChC;AACD,IAAA,EAAE,YAAC,IAAc,EAAA;AACf,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;QAEhB,IAAI,KAAK,GAAG,KAAK,CAAA;QACjB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,EAAE,EAAA;AACpC,YAAA,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;AACpB,gBAAA,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;gBAC5B,OAAO,CAAC,KAAK,CAAA;AACd,aAAA;AACD,YAAA,OAAO,KAAK,CAAA;AACd,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;AAC7E,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AACD,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,OAAO,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;KAC/B;AACD,IAAA,IAAI,YAAC,IAAc,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAA;AACnB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,IAAI,KAAK,SAAS,CAAlB,EAAkB,CAAC,CAAA;KACjD;AACD,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;CACb,CAAA;AAEe,SAAA,SAAS,CAAC,EAAU,EAAE,OAAe,EAAA;AACnD,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;AAExC,IAAA,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,KAAK,IAAI,CAAV,EAAU,CAAC,CAAA;IAC/C,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AACtB,KAAA;IAED,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1C,OAAO,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChC,KAAA;AAAM,SAAA,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE;QACpC,IAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAgC,CAAC,CAAA;AAExE,QAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACnC,YAAA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AACvB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AACpB,SAAA;AAED,QAAA,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChD,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,OAAO,GAAG,OAAO,GAAG,mCAAmC,CAAA;AAC/D,KAAA;AACH;;ACjHA;;AAEG;AACH,SAAS,YAAY,CAAC,GAAW,EAAA;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAA;AAC3D,CAAC;AAED;;AAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAA;IAChC,OAAO,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAA;AAC1D,CAAC;AAED;;AAEG;AACW,SAAU,OAAO,CAAC,GAAW,EAAE,EAAkB,EAAA;IAC7D,IAAI,EAAE,KAAK,KAAK,EAAE;AAChB,QAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;AACzB,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;AAC1B,KAAA;AACH;;;;"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index 471fd45..e75f578 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -303,27 +303,15 @@ } } - /** - * Converts yarn to npm command - */ - function convertToNpm(str) { - return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); - } - /** - * Converts npm to yarn command - */ - function convertToYarn(str) { - return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); - } /** * Converts between npm and yarn command */ function convert(str, to) { if (to === 'npm') { - return convertToNpm(str); + return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); } else { - return convertToYarn(str); + return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); } } diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index f26503e..b33381f 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts yarn to npm command\n */\nfunction convertToNpm(str: string) {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n}\n\n/**\n * Converts npm to yarn command\n */\nfunction convertToYarn(str: string) {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n}\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return convertToNpm(str)\n } else {\n return convertToYarn(str)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 349f636..d6f38ec 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,27 +1,13 @@ import { yarnToNPM } from './yarnToNpm' import { npmToYarn } from './npmToYarn' -/** - * Converts yarn to npm command - */ -function convertToNpm(str: string) { - return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM) -} - -/** - * Converts npm to yarn command - */ -function convertToYarn(str: string) { - return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn) -} - /** * Converts between npm and yarn command */ export default function convert(str: string, to: 'npm' | 'yarn'): string { if (to === 'npm') { - return convertToNpm(str) + return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM) } else { - return convertToYarn(str) + return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn) } } From 9c3b3603f3cdc8aedbdf1ea130ac015239a90b9d Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 11:32:13 +0100 Subject: [PATCH 10/12] fix: add support for global list and correct handling of global add/remove --- dist/npm-to-yarn.mjs | 34 +++++++++++++++++-------- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 34 +++++++++++++++++-------- dist/npm-to-yarn.umd.js.map | 2 +- src/command.ts | 2 +- src/index.ts | 2 +- src/npmToYarn.ts | 34 ++++++++++++------------- src/utils.ts | 4 +-- src/yarnToNpm.ts | 50 ++++++++++++++++++++++++------------- test/index.spec.ts | 14 +++++++---- 10 files changed, 112 insertions(+), 66 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 9cdf5f7..253aad7 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -36,7 +36,7 @@ var yarnCLICommands = [ 'versions', 'why', 'workspace', - 'workspaces', + 'workspaces' ]; function parse(command) { @@ -139,15 +139,29 @@ var yarnToNpmTable = { stop: 'stop', test: 'test', global: function (args) { - if (args[1] === 'add' || args[1] === 'remove') { - args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall'); - args.push('--global'); - return convertAddRemoveArgs(args); + switch (args[1]) { + case 'add': + args.shift(); + args = yarnToNpmTable.add(args); + args.push('--global'); + return args; + case 'remove': + args.shift(); + args = yarnToNpmTable.remove(args); + args.push('--global'); + return args; + case 'list': + args.shift(); + args = yarnToNpmTable.list(args); + args.push('--global'); + return args; + // case 'bin': + // case 'upgrade': + default: + args.push("\n# couldn't auto-convert command"); + return args; } - // TODO: find better way - args.push("\n# couldn't auto-convert command"); - return args; - }, + } }; function yarnToNPM(_m, command) { command = (command || '').trim(); @@ -271,7 +285,7 @@ var npmToYarnTable = { }, start: 'start', stop: 'stop', - test: 'test', + test: 'test' }; function npmToYarn(_m, command) { var args = parse((command || '').trim()); diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index 928c463..9e24d4e 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i (args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version (args: string[]) {\n return args.map(item => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild (args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index e75f578..ec32326 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -42,7 +42,7 @@ 'versions', 'why', 'workspace', - 'workspaces', + 'workspaces' ]; function parse(command) { @@ -145,15 +145,29 @@ stop: 'stop', test: 'test', global: function (args) { - if (args[1] === 'add' || args[1] === 'remove') { - args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall'); - args.push('--global'); - return convertAddRemoveArgs(args); + switch (args[1]) { + case 'add': + args.shift(); + args = yarnToNpmTable.add(args); + args.push('--global'); + return args; + case 'remove': + args.shift(); + args = yarnToNpmTable.remove(args); + args.push('--global'); + return args; + case 'list': + args.shift(); + args = yarnToNpmTable.list(args); + args.push('--global'); + return args; + // case 'bin': + // case 'upgrade': + default: + args.push("\n# couldn't auto-convert command"); + return args; } - // TODO: find better way - args.push("\n# couldn't auto-convert command"); - return args; - }, + } }; function yarnToNPM(_m, command) { command = (command || '').trim(); @@ -277,7 +291,7 @@ }, start: 'start', stop: 'stop', - test: 'test', + test: 'test' }; function npmToYarn(_m, command) { var args = parse((command || '').trim()); diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index b33381f..afb9a04 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces',\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami',\n]\n","export function parse(command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add(args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove(args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version(args: string[]) {\n return args.map((item) => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list(args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex((item) => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global(args: string[]) {\n if (args[1] === 'add' || args[1] === 'remove') {\n args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall')\n args.push('--global')\n return convertAddRemoveArgs(args)\n }\n // TODO: find better way\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n },\n}\n\nexport function yarnToNPM(_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install(args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i(args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall(args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map((item) => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version(args: string[]) {\n return args.map((item) => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild(args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run(args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec(args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls(args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list(args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init(args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter((item) => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test',\n}\n\nexport function npmToYarn(_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex((a) => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert(str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i (args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version (args: string[]) {\n return args.map(item => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild (args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/command.ts b/src/command.ts index d84854a..934707d 100644 --- a/src/command.ts +++ b/src/command.ts @@ -1,4 +1,4 @@ -export function parse(command: string) { +export function parse (command: string) { const args: string[] = [] let lastQuote: string | false = false let escaped = false diff --git a/src/index.ts b/src/index.ts index d6f38ec..b91a093 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,7 @@ import { npmToYarn } from './npmToYarn' /** * Converts between npm and yarn command */ -export default function convert(str: string, to: 'npm' | 'yarn'): string { +export default function convert (str: string, to: 'npm' | 'yarn'): string { if (to === 'npm') { return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM) } else { diff --git a/src/npmToYarn.ts b/src/npmToYarn.ts index fe1319e..94d6d1f 100644 --- a/src/npmToYarn.ts +++ b/src/npmToYarn.ts @@ -2,7 +2,7 @@ import { unchangedCLICommands, yarnCLICommands } from './utils' import { parse } from './command' const npmToYarnTable = { - install(args: string[]) { + install (args: string[]) { if (args.length === 1) { return args } @@ -12,7 +12,7 @@ const npmToYarnTable = { args.unshift('global') } - return args.map((item) => { + return args.map(item => { if (item === '--save-dev' || item === '-D') return '--dev' else if (item === '--save' || item === '-S') return '' else if (item === '--no-package-lock') return '--no-lockfile' @@ -22,18 +22,18 @@ const npmToYarnTable = { return item }) }, - i(args: string[]) { + i (args: string[]) { args[0] = 'install' return npmToYarnTable.install(args) }, - uninstall(args: string[]) { + uninstall (args: string[]) { args[0] = 'remove' if (args.includes('--global') || args.includes('-g')) { args.unshift('global') } - return args.map((item) => { + return args.map(item => { if (item === '--save-dev') return '--dev' else if (item === '--save') return '' else if (item === '--no-package-lock') return '--no-lockfile' @@ -41,27 +41,27 @@ const npmToYarnTable = { return item }) }, - version(args: string[]) { - return args.map((item) => { + version (args: string[]) { + return args.map(item => { if (['major', 'minor', 'patch'].includes(item)) return `--${item}` return item }) }, - rebuild(args: string[]) { + rebuild (args: string[]) { args[0] = 'add --force' return args }, - run(args: string[]) { + run (args: string[]) { if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { args.splice(0, 1) } return args }, - exec(args: string[]) { + exec (args: string[]) { args[0] = 'run' return npmToYarnTable.run(args) }, - ls(args: string[]) { + ls (args: string[]) { args[0] = 'list' let ended = false @@ -77,24 +77,24 @@ const npmToYarnTable = { } return args }, - list(args: string[]) { + list (args: string[]) { return npmToYarnTable.ls(args) }, - init(args: string[]) { + init (args: string[]) { if (args[1] && !args[1].startsWith('-')) { args[0] = 'create' } - return args.filter((item) => item !== '--scope') + return args.filter(item => item !== '--scope') }, start: 'start', stop: 'stop', - test: 'test', + test: 'test' } -export function npmToYarn(_m: string, command: string): string { +export function npmToYarn (_m: string, command: string): string { let args = parse((command || '').trim()) - const index = args.findIndex((a) => a === '--') + const index = args.findIndex(a => a === '--') if (index >= 0) { args.splice(index, 1) } diff --git a/src/utils.ts b/src/utils.ts index 1ad177b..18d4d1a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -37,7 +37,7 @@ export const yarnCLICommands = [ 'versions', 'why', 'workspace', - 'workspaces', + 'workspaces' ] export const npmCLICommands = [ @@ -97,5 +97,5 @@ export const npmCLICommands = [ 'update', 'version', 'view', - 'whoami', + 'whoami' ] diff --git a/src/yarnToNpm.ts b/src/yarnToNpm.ts index 2db4b2e..639f90e 100644 --- a/src/yarnToNpm.ts +++ b/src/yarnToNpm.ts @@ -1,8 +1,8 @@ import { unchangedCLICommands, yarnCLICommands } from './utils' import { parse } from './command' -function convertAddRemoveArgs(args: string[]) { - return args.map((item) => { +function convertAddRemoveArgs (args: string[]) { + return args.map(item => { switch (item) { case '--no-lockfile': return '--no-package-lock' @@ -19,7 +19,7 @@ function convertAddRemoveArgs(args: string[]) { } const yarnToNpmTable = { - add(args: string[]) { + add (args: string[]) { if (args[1] === '--force') { return ['rebuild'] } @@ -29,15 +29,15 @@ const yarnToNpmTable = { } return convertAddRemoveArgs(args) }, - remove(args: string[]) { + remove (args: string[]) { args[0] = 'uninstall' if (!args.includes('--dev')) { args.push('--save') } return convertAddRemoveArgs(args) }, - version(args: string[]) { - return args.map((item) => { + version (args: string[]) { + return args.map(item => { switch (item) { case '--major': return 'major' @@ -51,9 +51,9 @@ const yarnToNpmTable = { }) }, install: 'install', - list(args: string[]) { + list (args: string[]) { args[0] = 'ls' - const patternIndex = args.findIndex((item) => item === '--pattern') + const patternIndex = args.findIndex(item => item === '--pattern') if (patternIndex >= 0 && args[patternIndex + 1]) { const packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|') args.splice(patternIndex, 2, packages.join(' ')) @@ -66,19 +66,33 @@ const yarnToNpmTable = { start: 'start', stop: 'stop', test: 'test', - global(args: string[]) { - if (args[1] === 'add' || args[1] === 'remove') { - args.splice(0, 2, args[1] === 'add' ? 'install' : 'uninstall') - args.push('--global') - return convertAddRemoveArgs(args) + global (args: string[]) { + switch (args[1]) { + case 'add': + args.shift() + args = yarnToNpmTable.add(args) + args.push('--global') + return args + case 'remove': + args.shift() + args = yarnToNpmTable.remove(args) + args.push('--global') + return args + case 'list': + args.shift() + args = yarnToNpmTable.list(args) + args.push('--global') + return args + // case 'bin': + // case 'upgrade': + default: + args.push("\n# couldn't auto-convert command") + return args } - // TODO: find better way - args.push("\n# couldn't auto-convert command") - return args - }, + } } -export function yarnToNPM(_m: string, command: string): string { +export function yarnToNPM (_m: string, command: string): string { command = (command || '').trim() if (command === '') { return 'npm install' diff --git a/test/index.spec.ts b/test/index.spec.ts index 720900f..ca506b6 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -35,6 +35,10 @@ describe('NPM to Yarn tests', () => { ) }) + it('Global list', () => { + expect(convert('npm list --global', 'yarn')).toEqual('yarn list --global') + }) + it('Unchanged command', () => { expect(convert('npm cache clean', 'yarn')).toEqual('yarn cache clean') }) @@ -196,16 +200,16 @@ describe('Yarn to NPM tests', () => { }) it('Yarn global', () => { - expect(convert('yarn global add squirrelly', 'npm')).toEqual('npm install squirrelly --global') - }) - - it('Yarn global remove', () => { + expect(convert('yarn global add squirrelly', 'npm')).toEqual( + 'npm install squirrelly --save --global' + ) expect(convert('yarn global remove squirrelly', 'npm')).toEqual( - 'npm uninstall squirrelly --global' + 'npm uninstall squirrelly --save --global' ) expect(convert('yarn global squirrelly', 'npm')).toEqual( 'npm global squirrelly \n' + "# couldn't auto-convert command" ) + expect(convert('yarn global list', 'npm')).toEqual('npm ls --global') }) it('Plain `yarn`', () => { From 08c746a881a6dc05200e6569849e0f61efbd0261 Mon Sep 17 00:00:00 2001 From: Armano Date: Sun, 12 Feb 2023 15:32:58 +0100 Subject: [PATCH 11/12] fix: add missing aliases and correct rebuild logic --- dist/npm-to-yarn.mjs | 111 +++++++++++++++++++++++------------- dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 111 +++++++++++++++++++++++------------- dist/npm-to-yarn.umd.js.map | 2 +- src/npmToYarn.ts | 94 ++++++++++++++++++++---------- src/yarnToNpm.ts | 14 ++++- test/index.spec.ts | 12 ++++ 7 files changed, 232 insertions(+), 114 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index 253aad7..dd10517 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -79,6 +79,8 @@ function convertAddRemoveArgs(args) { switch (item) { case '--no-lockfile': return '--no-package-lock'; + case '--production': + return '--save-prod'; case '--dev': return '--save-dev'; case '--optional': @@ -92,11 +94,15 @@ function convertAddRemoveArgs(args) { } var yarnToNpmTable = { add: function (args) { - if (args[1] === '--force') { + if (args.length === 2 && args[1] === '--force') { return ['rebuild']; } args[0] = 'install'; - if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) { + if (!args.includes('--dev') && + !args.includes('--force') && + !args.includes('--exact') && + !args.includes('--optional') && + !args.includes('--production')) { args.push('--save'); } return convertAddRemoveArgs(args); @@ -192,61 +198,86 @@ function yarnToNPM(_m, command) { } } -var npmToYarnTable = { - install: function (args) { - if (args.length === 1) { - return args; - } - args[0] = 'add'; - if (args.includes('--global') || args.includes('-g')) { - args.unshift('global'); - } - return args.map(function (item) { - if (item === '--save-dev' || item === '-D') +function convertInstallArgs(args) { + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global'); + } + return args.map(function (item) { + switch (item) { + case '--save-dev': + case '-D': return '--dev'; - else if (item === '--save' || item === '-S') - return ''; - else if (item === '--no-package-lock') + case '--save-prod': + case '-P': + return '--production'; + case '--no-package-lock': return '--no-lockfile'; - else if (item === '--save-optional') + case '--save-optional': + case '-O': return '--optional'; - else if (item === '--save-exact' || item === '-E') + case '--save-exact': + case '-E': return '--exact'; - else if (item === '--global' || item === '-g') + case '--save': + case '-S': + case '--global': + case '-g': return ''; - return item; - }); + default: + return item; + } + }); +} +var npmToYarnTable = { + install: function (args) { + if (args.length === 1) { + return ['install']; + } + args[0] = 'add'; + return convertInstallArgs(args); }, i: function (args) { - args[0] = 'install'; return npmToYarnTable.install(args); }, uninstall: function (args) { args[0] = 'remove'; - if (args.includes('--global') || args.includes('-g')) { - args.unshift('global'); - } - return args.map(function (item) { - if (item === '--save-dev') - return '--dev'; - else if (item === '--save') - return ''; - else if (item === '--no-package-lock') - return '--no-lockfile'; - else if (item === '--global' || item === '-g') - return ''; - return item; - }); + return convertInstallArgs(args); + }, + remove: function (args) { + return npmToYarnTable.uninstall(args); + }, + un: function (args) { + return npmToYarnTable.uninstall(args); + }, + unlink: function (args) { + return npmToYarnTable.uninstall(args); + }, + r: function (args) { + return npmToYarnTable.uninstall(args); + }, + rm: function (args) { + return npmToYarnTable.uninstall(args); }, version: function (args) { return args.map(function (item) { - if (['major', 'minor', 'patch'].includes(item)) - return "--".concat(item); - return item; + switch (item) { + case 'major': + return '--major'; + case 'minor': + return '--minor'; + case 'patch': + return '--patch'; + default: + return item; + } }); }, + rb: function (args) { + return npmToYarnTable.rebuild(args); + }, rebuild: function (args) { - args[0] = 'add --force'; + args[0] = 'add'; + args.push('--force'); return args; }, run: function (args) { diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index 9e24d4e..7cc73d6 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i (args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version (args: string[]) {\n return args.map(item => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild (args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--production':\n return '--save-prod'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args.length === 2 && args[1] === '--force') {\n return ['rebuild'];\n }\n args[0] = 'install'\n if (\n !args.includes('--dev') &&\n !args.includes('--force') &&\n !args.includes('--exact') &&\n !args.includes('--optional') &&\n !args.includes('--production')\n ) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertInstallArgs (args: string[]) {\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n switch (item) {\n case '--save-dev':\n case '-D':\n return '--dev'\n case '--save-prod':\n case '-P':\n return '--production'\n case '--no-package-lock':\n return '--no-lockfile'\n case '--save-optional':\n case '-O':\n return '--optional'\n case '--save-exact':\n case '-E':\n return '--exact'\n case '--save':\n case '-S':\n case '--global':\n case '-g':\n return ''\n default:\n return item\n }\n })\n}\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return ['install']\n }\n args[0] = 'add'\n\n return convertInstallArgs(args)\n },\n i (args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n return convertInstallArgs(args)\n },\n remove (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n un (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n unlink (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n r (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n rm (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case 'major':\n return '--major'\n case 'minor':\n return '--minor'\n case 'patch':\n return '--patch'\n default:\n return item\n }\n })\n },\n rb (args: string[]) {\n return npmToYarnTable.rebuild(args)\n },\n rebuild (args: string[]) {\n args[0] = 'add'\n args.push('--force')\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index ec32326..a00ecd5 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -85,6 +85,8 @@ switch (item) { case '--no-lockfile': return '--no-package-lock'; + case '--production': + return '--save-prod'; case '--dev': return '--save-dev'; case '--optional': @@ -98,11 +100,15 @@ } var yarnToNpmTable = { add: function (args) { - if (args[1] === '--force') { + if (args.length === 2 && args[1] === '--force') { return ['rebuild']; } args[0] = 'install'; - if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) { + if (!args.includes('--dev') && + !args.includes('--force') && + !args.includes('--exact') && + !args.includes('--optional') && + !args.includes('--production')) { args.push('--save'); } return convertAddRemoveArgs(args); @@ -198,61 +204,86 @@ } } - var npmToYarnTable = { - install: function (args) { - if (args.length === 1) { - return args; - } - args[0] = 'add'; - if (args.includes('--global') || args.includes('-g')) { - args.unshift('global'); - } - return args.map(function (item) { - if (item === '--save-dev' || item === '-D') + function convertInstallArgs(args) { + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global'); + } + return args.map(function (item) { + switch (item) { + case '--save-dev': + case '-D': return '--dev'; - else if (item === '--save' || item === '-S') - return ''; - else if (item === '--no-package-lock') + case '--save-prod': + case '-P': + return '--production'; + case '--no-package-lock': return '--no-lockfile'; - else if (item === '--save-optional') + case '--save-optional': + case '-O': return '--optional'; - else if (item === '--save-exact' || item === '-E') + case '--save-exact': + case '-E': return '--exact'; - else if (item === '--global' || item === '-g') + case '--save': + case '-S': + case '--global': + case '-g': return ''; - return item; - }); + default: + return item; + } + }); + } + var npmToYarnTable = { + install: function (args) { + if (args.length === 1) { + return ['install']; + } + args[0] = 'add'; + return convertInstallArgs(args); }, i: function (args) { - args[0] = 'install'; return npmToYarnTable.install(args); }, uninstall: function (args) { args[0] = 'remove'; - if (args.includes('--global') || args.includes('-g')) { - args.unshift('global'); - } - return args.map(function (item) { - if (item === '--save-dev') - return '--dev'; - else if (item === '--save') - return ''; - else if (item === '--no-package-lock') - return '--no-lockfile'; - else if (item === '--global' || item === '-g') - return ''; - return item; - }); + return convertInstallArgs(args); + }, + remove: function (args) { + return npmToYarnTable.uninstall(args); + }, + un: function (args) { + return npmToYarnTable.uninstall(args); + }, + unlink: function (args) { + return npmToYarnTable.uninstall(args); + }, + r: function (args) { + return npmToYarnTable.uninstall(args); + }, + rm: function (args) { + return npmToYarnTable.uninstall(args); }, version: function (args) { return args.map(function (item) { - if (['major', 'minor', 'patch'].includes(item)) - return "--".concat(item); - return item; + switch (item) { + case 'major': + return '--major'; + case 'minor': + return '--minor'; + case 'patch': + return '--patch'; + default: + return item; + } }); }, + rb: function (args) { + return npmToYarnTable.rebuild(args); + }, rebuild: function (args) { - args[0] = 'add --force'; + args[0] = 'add'; + args.push('--force'); return args; }, run: function (args) { diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index afb9a04..2d4177f 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return args\n }\n args[0] = 'add'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev' || item === '-D') return '--dev'\n else if (item === '--save' || item === '-S') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--save-optional') return '--optional'\n else if (item === '--save-exact' || item === '-E') return '--exact'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n i (args: string[]) {\n args[0] = 'install'\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n if (item === '--save-dev') return '--dev'\n else if (item === '--save') return ''\n else if (item === '--no-package-lock') return '--no-lockfile'\n else if (item === '--global' || item === '-g') return ''\n return item\n })\n },\n version (args: string[]) {\n return args.map(item => {\n if (['major', 'minor', 'patch'].includes(item)) return `--${item}`\n return item\n })\n },\n rebuild (args: string[]) {\n args[0] = 'add --force'\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--production':\n return '--save-prod'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args.length === 2 && args[1] === '--force') {\n return ['rebuild'];\n }\n args[0] = 'install'\n if (\n !args.includes('--dev') &&\n !args.includes('--force') &&\n !args.includes('--exact') &&\n !args.includes('--optional') &&\n !args.includes('--production')\n ) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertInstallArgs (args: string[]) {\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n switch (item) {\n case '--save-dev':\n case '-D':\n return '--dev'\n case '--save-prod':\n case '-P':\n return '--production'\n case '--no-package-lock':\n return '--no-lockfile'\n case '--save-optional':\n case '-O':\n return '--optional'\n case '--save-exact':\n case '-E':\n return '--exact'\n case '--save':\n case '-S':\n case '--global':\n case '-g':\n return ''\n default:\n return item\n }\n })\n}\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return ['install']\n }\n args[0] = 'add'\n\n return convertInstallArgs(args)\n },\n i (args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n return convertInstallArgs(args)\n },\n remove (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n un (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n unlink (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n r (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n rm (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case 'major':\n return '--major'\n case 'minor':\n return '--minor'\n case 'patch':\n return '--patch'\n default:\n return item\n }\n })\n },\n rb (args: string[]) {\n return npmToYarnTable.rebuild(args)\n },\n rebuild (args: string[]) {\n args[0] = 'add'\n args.push('--force')\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/npmToYarn.ts b/src/npmToYarn.ts index 94d6d1f..1210889 100644 --- a/src/npmToYarn.ts +++ b/src/npmToYarn.ts @@ -1,54 +1,90 @@ import { unchangedCLICommands, yarnCLICommands } from './utils' import { parse } from './command' +function convertInstallArgs (args: string[]) { + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global') + } + + return args.map(item => { + switch (item) { + case '--save-dev': + case '-D': + return '--dev' + case '--save-prod': + case '-P': + return '--production' + case '--no-package-lock': + return '--no-lockfile' + case '--save-optional': + case '-O': + return '--optional' + case '--save-exact': + case '-E': + return '--exact' + case '--save': + case '-S': + case '--global': + case '-g': + return '' + default: + return item + } + }) +} + const npmToYarnTable = { install (args: string[]) { if (args.length === 1) { - return args + return ['install'] } args[0] = 'add' - if (args.includes('--global') || args.includes('-g')) { - args.unshift('global') - } - - return args.map(item => { - if (item === '--save-dev' || item === '-D') return '--dev' - else if (item === '--save' || item === '-S') return '' - else if (item === '--no-package-lock') return '--no-lockfile' - else if (item === '--save-optional') return '--optional' - else if (item === '--save-exact' || item === '-E') return '--exact' - else if (item === '--global' || item === '-g') return '' - return item - }) + return convertInstallArgs(args) }, i (args: string[]) { - args[0] = 'install' return npmToYarnTable.install(args) }, uninstall (args: string[]) { args[0] = 'remove' - if (args.includes('--global') || args.includes('-g')) { - args.unshift('global') - } - - return args.map(item => { - if (item === '--save-dev') return '--dev' - else if (item === '--save') return '' - else if (item === '--no-package-lock') return '--no-lockfile' - else if (item === '--global' || item === '-g') return '' - return item - }) + return convertInstallArgs(args) + }, + remove (args: string[]) { + return npmToYarnTable.uninstall(args) + }, + un (args: string[]) { + return npmToYarnTable.uninstall(args) + }, + unlink (args: string[]) { + return npmToYarnTable.uninstall(args) + }, + r (args: string[]) { + return npmToYarnTable.uninstall(args) + }, + rm (args: string[]) { + return npmToYarnTable.uninstall(args) }, version (args: string[]) { return args.map(item => { - if (['major', 'minor', 'patch'].includes(item)) return `--${item}` - return item + switch (item) { + case 'major': + return '--major' + case 'minor': + return '--minor' + case 'patch': + return '--patch' + default: + return item + } }) }, + rb (args: string[]) { + return npmToYarnTable.rebuild(args) + }, rebuild (args: string[]) { - args[0] = 'add --force' + args[0] = 'add' + args.push('--force') return args }, run (args: string[]) { diff --git a/src/yarnToNpm.ts b/src/yarnToNpm.ts index 639f90e..3499642 100644 --- a/src/yarnToNpm.ts +++ b/src/yarnToNpm.ts @@ -6,6 +6,8 @@ function convertAddRemoveArgs (args: string[]) { switch (item) { case '--no-lockfile': return '--no-package-lock' + case '--production': + return '--save-prod' case '--dev': return '--save-dev' case '--optional': @@ -20,11 +22,17 @@ function convertAddRemoveArgs (args: string[]) { const yarnToNpmTable = { add (args: string[]) { - if (args[1] === '--force') { - return ['rebuild'] + if (args.length === 2 && args[1] === '--force') { + return ['rebuild']; } args[0] = 'install' - if (!args.includes('--dev') && !args.includes('--exact') && !args.includes('--optional')) { + if ( + !args.includes('--dev') && + !args.includes('--force') && + !args.includes('--exact') && + !args.includes('--optional') && + !args.includes('--production') + ) { args.push('--save') } return convertAddRemoveArgs(args) diff --git a/test/index.spec.ts b/test/index.spec.ts index ca506b6..265af84 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -70,8 +70,11 @@ describe('NPM to Yarn tests', () => { }) it('npm install --save-optional', () => { expect(convert('npm install --save-optional', 'yarn')).toEqual('yarn add --optional') + expect(convert('npm i -O', 'yarn')).toEqual('yarn add --optional') expect(convert('npm i --save-optional', 'yarn')).toEqual('yarn add --optional') expect(convert('npm i --save-optional test', 'yarn')).toEqual('yarn add --optional test') + expect(convert('npm i -O', 'yarn')).toEqual('yarn add --optional') + expect(convert('npm i -O test', 'yarn')).toEqual('yarn add --optional test') }) it('npm install --save-dev', () => { expect(convert('npm install --save-dev', 'yarn')).toEqual('yarn add --dev') @@ -79,9 +82,16 @@ describe('NPM to Yarn tests', () => { expect(convert('npm i --save-dev', 'yarn')).toEqual('yarn add --dev') expect(convert('npm i -D', 'yarn')).toEqual('yarn add --dev') }) + it('npm install --save-prod', () => { + expect(convert('npm install --save-prod', 'yarn')).toEqual('yarn add --production') + expect(convert('npm i --save-prod', 'yarn')).toEqual('yarn add --production') + }) it('npm rebuild', () => { expect(convert('npm rebuild', 'yarn')).toEqual('yarn add --force') + expect(convert('npm rb', 'yarn')).toEqual('yarn add --force') + expect(convert('npm rebuild package', 'yarn')).toEqual('yarn add package --force') + expect(convert('npm rb package', 'yarn')).toEqual('yarn add package --force') }) it("npm whoami can't auto-convert to yarn", () => { @@ -175,6 +185,7 @@ describe('Yarn to NPM tests', () => { expect(convert('yarn add squirrelly --exact', 'npm')).toEqual( 'npm install squirrelly --save-exact' ) + expect(convert('yarn add test --production', 'npm')).toEqual('npm install test --save-prod') }) it('Convert with dev works', () => { @@ -218,6 +229,7 @@ describe('Yarn to NPM tests', () => { it('yarn add --force', () => { expect(convert('yarn add --force', 'npm')).toEqual('npm rebuild') + expect(convert('yarn add package --force', 'npm')).toEqual('npm install package --force') }) it('Version works', () => { From 043cf08551fed70ec306c7247e2e56ddb1c14951 Mon Sep 17 00:00:00 2001 From: Armano Date: Wed, 15 Feb 2023 18:31:15 +0100 Subject: [PATCH 12/12] fix: add missing conversion for link/ln/unlink --- dist/npm-to-yarn.mjs | 691 ++++++++++++++++++------------------ dist/npm-to-yarn.mjs.map | 2 +- dist/npm-to-yarn.umd.js | 31 +- dist/npm-to-yarn.umd.js.map | 2 +- src/npmToYarn.ts | 13 +- src/utils.ts | 15 +- src/yarnToNpm.ts | 5 +- test/index.spec.ts | 14 + 8 files changed, 392 insertions(+), 381 deletions(-) diff --git a/dist/npm-to-yarn.mjs b/dist/npm-to-yarn.mjs index dd10517..c545dbb 100644 --- a/dist/npm-to-yarn.mjs +++ b/dist/npm-to-yarn.mjs @@ -1,357 +1,356 @@ -var unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']; -var yarnCLICommands = [ - 'init', - 'run', - 'add', - 'audit', - 'autoclean', - 'bin', - 'check', - 'config', - 'create', - 'dedupe', - 'generate-lock-entry', - 'global', - 'help', - 'import', - 'info', - 'install', - 'licenses', - 'list', - 'lockfile', - 'outdated', - 'owner', - 'pack', - 'policies', - 'prune', - 'remove', - 'self-update', - 'tag', - 'team', - 'link', - 'unlink', - 'upgrade', - 'upgrade-interactive', - 'version', - 'versions', - 'why', - 'workspace', - 'workspaces' +var unchangedCLICommands = [ + 'test', + 'login', + 'logout', + 'link', + 'unlink', + 'publish', + 'cache', + 'start', + 'stop', + 'test' +]; +var yarnCLICommands = [ + 'init', + 'run', + 'add', + 'audit', + 'autoclean', + 'bin', + 'check', + 'config', + 'create', + 'dedupe', + 'generate-lock-entry', + 'global', + 'help', + 'import', + 'info', + 'install', + 'licenses', + 'list', + 'lockfile', + 'outdated', + 'owner', + 'pack', + 'policies', + 'prune', + 'remove', + 'self-update', + 'tag', + 'team', + 'upgrade', + 'upgrade-interactive', + 'version', + 'versions', + 'why', + 'workspace', + 'workspaces' ]; -function parse(command) { - var args = []; - var lastQuote = false; - var escaped = false; - var part = ''; - for (var i = 0; i < command.length; ++i) { - var char = command.charAt(i); - if (char === '\\') { - part += char; - escaped = true; - } - else { - if (char === ' ' && !lastQuote) { - args.push(part); - part = ''; - } - else if (!escaped && (char === '"' || char === "'")) { - part += char; - if (char === lastQuote) { - lastQuote = false; - } - else if (!lastQuote) { - lastQuote = char; - } - } - else { - part += char; - } - escaped = false; - } - } - args.push(part); - return args; +function parse(command) { + var args = []; + var lastQuote = false; + var escaped = false; + var part = ''; + for (var i = 0; i < command.length; ++i) { + var char = command.charAt(i); + if (char === '\\') { + part += char; + escaped = true; + } + else { + if (char === ' ' && !lastQuote) { + args.push(part); + part = ''; + } + else if (!escaped && (char === '"' || char === "'")) { + part += char; + if (char === lastQuote) { + lastQuote = false; + } + else if (!lastQuote) { + lastQuote = char; + } + } + else { + part += char; + } + escaped = false; + } + } + args.push(part); + return args; } -function convertAddRemoveArgs(args) { - return args.map(function (item) { - switch (item) { - case '--no-lockfile': - return '--no-package-lock'; - case '--production': - return '--save-prod'; - case '--dev': - return '--save-dev'; - case '--optional': - return '--save-optional'; - case '--exact': - return '--save-exact'; - default: - return item; - } - }); -} -var yarnToNpmTable = { - add: function (args) { - if (args.length === 2 && args[1] === '--force') { - return ['rebuild']; - } - args[0] = 'install'; - if (!args.includes('--dev') && - !args.includes('--force') && - !args.includes('--exact') && - !args.includes('--optional') && - !args.includes('--production')) { - args.push('--save'); - } - return convertAddRemoveArgs(args); - }, - remove: function (args) { - args[0] = 'uninstall'; - if (!args.includes('--dev')) { - args.push('--save'); - } - return convertAddRemoveArgs(args); - }, - version: function (args) { - return args.map(function (item) { - switch (item) { - case '--major': - return 'major'; - case '--minor': - return 'minor'; - case '--patch': - return 'patch'; - default: - return item; - } - }); - }, - install: 'install', - list: function (args) { - args[0] = 'ls'; - var patternIndex = args.findIndex(function (item) { return item === '--pattern'; }); - if (patternIndex >= 0 && args[patternIndex + 1]) { - var packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|'); - args.splice(patternIndex, 2, packages.join(' ')); - } - return args; - }, - init: 'init', - create: 'init', - run: 'run', - start: 'start', - stop: 'stop', - test: 'test', - global: function (args) { - switch (args[1]) { - case 'add': - args.shift(); - args = yarnToNpmTable.add(args); - args.push('--global'); - return args; - case 'remove': - args.shift(); - args = yarnToNpmTable.remove(args); - args.push('--global'); - return args; - case 'list': - args.shift(); - args = yarnToNpmTable.list(args); - args.push('--global'); - return args; - // case 'bin': - // case 'upgrade': - default: - args.push("\n# couldn't auto-convert command"); - return args; - } - } -}; -function yarnToNPM(_m, command) { - command = (command || '').trim(); - if (command === '') { - return 'npm install'; - } - var args = parse(command); - var firstCommand = (/\w+/.exec(command) || [''])[0]; - if (unchangedCLICommands.includes(args[0])) { - return 'npm ' + command; - } - else if (args[0] in yarnToNpmTable) { - var converter = yarnToNpmTable[args[0]]; - if (typeof converter === 'function') { - args = converter(args); - } - else { - args[0] = converter; - } - return 'npm ' + args.filter(Boolean).join(' '); - } - else if (!yarnCLICommands.includes(firstCommand)) { - // i.e., yarn grunt -> npm run grunt - return 'npm run ' + command; - } - else { - return 'npm ' + command + "\n# couldn't auto-convert command"; - } +function convertAddRemoveArgs(args) { + return args.map(function (item) { + switch (item) { + case '--no-lockfile': + return '--no-package-lock'; + case '--production': + return '--save-prod'; + case '--dev': + return '--save-dev'; + case '--optional': + return '--save-optional'; + case '--exact': + return '--save-exact'; + default: + return item; + } + }); +} +var yarnToNpmTable = { + add: function (args) { + if (args.length === 2 && args[1] === '--force') { + return ['rebuild']; + } + args[0] = 'install'; + if (!args.includes('--dev') && + !args.includes('--force') && + !args.includes('--exact') && + !args.includes('--optional') && + !args.includes('--production')) { + args.push('--save'); + } + return convertAddRemoveArgs(args); + }, + remove: function (args) { + args[0] = 'uninstall'; + if (!args.includes('--dev')) { + args.push('--save'); + } + return convertAddRemoveArgs(args); + }, + version: function (args) { + return args.map(function (item) { + switch (item) { + case '--major': + return 'major'; + case '--minor': + return 'minor'; + case '--patch': + return 'patch'; + default: + return item; + } + }); + }, + install: 'install', + list: function (args) { + args[0] = 'ls'; + var patternIndex = args.findIndex(function (item) { return item === '--pattern'; }); + if (patternIndex >= 0 && args[patternIndex + 1]) { + var packages = args[patternIndex + 1].replace(/["']([^"']+)["']/, '$1').split('|'); + args.splice(patternIndex, 2, packages.join(' ')); + } + return args; + }, + init: 'init', + create: 'init', + run: 'run', + global: function (args) { + switch (args[1]) { + case 'add': + args.shift(); + args = yarnToNpmTable.add(args); + args.push('--global'); + return args; + case 'remove': + args.shift(); + args = yarnToNpmTable.remove(args); + args.push('--global'); + return args; + case 'list': + args.shift(); + args = yarnToNpmTable.list(args); + args.push('--global'); + return args; + // case 'bin': + // case 'upgrade': + default: + args.push("\n# couldn't auto-convert command"); + return args; + } + } +}; +function yarnToNPM(_m, command) { + command = (command || '').trim(); + if (command === '') { + return 'npm install'; + } + var args = parse(command); + var firstCommand = (/\w+/.exec(command) || [''])[0]; + if (unchangedCLICommands.includes(args[0])) { + return 'npm ' + command; + } + else if (args[0] in yarnToNpmTable) { + var converter = yarnToNpmTable[args[0]]; + if (typeof converter === 'function') { + args = converter(args); + } + else { + args[0] = converter; + } + return 'npm ' + args.filter(Boolean).join(' '); + } + else if (!yarnCLICommands.includes(firstCommand)) { + // i.e., yarn grunt -> npm run grunt + return 'npm run ' + command; + } + else { + return 'npm ' + command + "\n# couldn't auto-convert command"; + } } -function convertInstallArgs(args) { - if (args.includes('--global') || args.includes('-g')) { - args.unshift('global'); - } - return args.map(function (item) { - switch (item) { - case '--save-dev': - case '-D': - return '--dev'; - case '--save-prod': - case '-P': - return '--production'; - case '--no-package-lock': - return '--no-lockfile'; - case '--save-optional': - case '-O': - return '--optional'; - case '--save-exact': - case '-E': - return '--exact'; - case '--save': - case '-S': - case '--global': - case '-g': - return ''; - default: - return item; - } - }); -} -var npmToYarnTable = { - install: function (args) { - if (args.length === 1) { - return ['install']; - } - args[0] = 'add'; - return convertInstallArgs(args); - }, - i: function (args) { - return npmToYarnTable.install(args); - }, - uninstall: function (args) { - args[0] = 'remove'; - return convertInstallArgs(args); - }, - remove: function (args) { - return npmToYarnTable.uninstall(args); - }, - un: function (args) { - return npmToYarnTable.uninstall(args); - }, - unlink: function (args) { - return npmToYarnTable.uninstall(args); - }, - r: function (args) { - return npmToYarnTable.uninstall(args); - }, - rm: function (args) { - return npmToYarnTable.uninstall(args); - }, - version: function (args) { - return args.map(function (item) { - switch (item) { - case 'major': - return '--major'; - case 'minor': - return '--minor'; - case 'patch': - return '--patch'; - default: - return item; - } - }); - }, - rb: function (args) { - return npmToYarnTable.rebuild(args); - }, - rebuild: function (args) { - args[0] = 'add'; - args.push('--force'); - return args; - }, - run: function (args) { - if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { - args.splice(0, 1); - } - return args; - }, - exec: function (args) { - args[0] = 'run'; - return npmToYarnTable.run(args); - }, - ls: function (args) { - args[0] = 'list'; - var ended = false; - var packages = args.filter(function (item, id) { - if (id > 0 && !ended) { - ended = item.startsWith('-'); - return !ended; - } - return false; - }); - if (packages.length > 0) { - args.splice(1, packages.length, '--pattern', '"' + packages.join('|') + '"'); - } - return args; - }, - list: function (args) { - return npmToYarnTable.ls(args); - }, - init: function (args) { - if (args[1] && !args[1].startsWith('-')) { - args[0] = 'create'; - } - return args.filter(function (item) { return item !== '--scope'; }); - }, - start: 'start', - stop: 'stop', - test: 'test' -}; -function npmToYarn(_m, command) { - var args = parse((command || '').trim()); - var index = args.findIndex(function (a) { return a === '--'; }); - if (index >= 0) { - args.splice(index, 1); - } - if (unchangedCLICommands.includes(args[0])) { - return 'yarn ' + args.join(' '); - } - else if (args[0] in npmToYarnTable) { - var converter = npmToYarnTable[args[0]]; - if (typeof converter === 'function') { - args = converter(args); - } - else { - args[0] = converter; - } - return 'yarn ' + args.filter(Boolean).join(' '); - } - else { - return 'yarn ' + command + "\n# couldn't auto-convert command"; - } +function convertInstallArgs(args) { + if (args.includes('--global') || args.includes('-g')) { + args.unshift('global'); + } + return args.map(function (item) { + switch (item) { + case '--save-dev': + case '-D': + return '--dev'; + case '--save-prod': + case '-P': + return '--production'; + case '--no-package-lock': + return '--no-lockfile'; + case '--save-optional': + case '-O': + return '--optional'; + case '--save-exact': + case '-E': + return '--exact'; + case '--save': + case '-S': + case '--global': + case '-g': + return ''; + default: + return item; + } + }); +} +var npmToYarnTable = { + install: function (args) { + if (args.length === 1) { + return ['install']; + } + args[0] = 'add'; + return convertInstallArgs(args); + }, + i: function (args) { + return npmToYarnTable.install(args); + }, + uninstall: function (args) { + args[0] = 'remove'; + return convertInstallArgs(args); + }, + remove: function (args) { + return npmToYarnTable.uninstall(args); + }, + r: function (args) { + return npmToYarnTable.uninstall(args); + }, + rm: function (args) { + return npmToYarnTable.uninstall(args); + }, + version: function (args) { + return args.map(function (item) { + switch (item) { + case 'major': + return '--major'; + case 'minor': + return '--minor'; + case 'patch': + return '--patch'; + default: + return item; + } + }); + }, + rb: function (args) { + return npmToYarnTable.rebuild(args); + }, + rebuild: function (args) { + args[0] = 'add'; + args.push('--force'); + return args; + }, + run: function (args) { + if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) { + args.splice(0, 1); + } + return args; + }, + exec: function (args) { + args[0] = 'run'; + return npmToYarnTable.run(args); + }, + ls: function (args) { + args[0] = 'list'; + var ended = false; + var packages = args.filter(function (item, id) { + if (id > 0 && !ended) { + ended = item.startsWith('-'); + return !ended; + } + return false; + }); + if (packages.length > 0) { + args.splice(1, packages.length, '--pattern', '"' + packages.join('|') + '"'); + } + return args; + }, + list: function (args) { + return npmToYarnTable.ls(args); + }, + init: function (args) { + if (args[1] && !args[1].startsWith('-')) { + args[0] = 'create'; + } + return args.filter(function (item) { return item !== '--scope'; }); + }, + ln: 'link', + un: 'unlink' +}; +function npmToYarn(_m, command) { + var args = parse((command || '').trim()); + var index = args.findIndex(function (a) { return a === '--'; }); + if (index >= 0) { + args.splice(index, 1); + } + if (unchangedCLICommands.includes(args[0])) { + return 'yarn ' + args.join(' '); + } + else if (args[0] in npmToYarnTable) { + var converter = npmToYarnTable[args[0]]; + if (typeof converter === 'function') { + args = converter(args); + } + else { + args[0] = converter; + } + return 'yarn ' + args.filter(Boolean).join(' '); + } + else { + return 'yarn ' + command + "\n# couldn't auto-convert command"; + } } -/** - * Converts between npm and yarn command - */ -function convert(str, to) { - if (to === 'npm') { - return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); - } - else { - return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); - } +/** + * Converts between npm and yarn command + */ +function convert(str, to) { + if (to === 'npm') { + return str.replace(/yarn(?: +([^&\n\r]*))?/gm, yarnToNPM); + } + else { + return str.replace(/npm(?: +([^&\n\r]*))?/gm, npmToYarn); + } } export { convert as default }; diff --git a/dist/npm-to-yarn.mjs.map b/dist/npm-to-yarn.mjs.map index 7cc73d6..3ad4f13 100644 --- a/dist/npm-to-yarn.mjs.map +++ b/dist/npm-to-yarn.mjs.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--production':\n return '--save-prod'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args.length === 2 && args[1] === '--force') {\n return ['rebuild'];\n }\n args[0] = 'install'\n if (\n !args.includes('--dev') &&\n !args.includes('--force') &&\n !args.includes('--exact') &&\n !args.includes('--optional') &&\n !args.includes('--production')\n ) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertInstallArgs (args: string[]) {\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n switch (item) {\n case '--save-dev':\n case '-D':\n return '--dev'\n case '--save-prod':\n case '-P':\n return '--production'\n case '--no-package-lock':\n return '--no-lockfile'\n case '--save-optional':\n case '-O':\n return '--optional'\n case '--save-exact':\n case '-E':\n return '--exact'\n case '--save':\n case '-S':\n case '--global':\n case '-g':\n return ''\n default:\n return item\n }\n })\n}\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return ['install']\n }\n args[0] = 'add'\n\n return convertInstallArgs(args)\n },\n i (args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n return convertInstallArgs(args)\n },\n remove (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n un (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n unlink (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n r (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n rm (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case 'major':\n return '--major'\n case 'minor':\n return '--minor'\n case 'patch':\n return '--patch'\n default:\n return item\n }\n })\n },\n rb (args: string[]) {\n return npmToYarnTable.rebuild(args)\n },\n rebuild (args: string[]) {\n args[0] = 'add'\n args.push('--force')\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.mjs","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = [\n 'test',\n 'login',\n 'logout',\n 'link',\n 'unlink',\n 'publish',\n 'cache',\n 'start',\n 'stop',\n 'test'\n]\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--production':\n return '--save-prod'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args.length === 2 && args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (\n !args.includes('--dev') &&\n !args.includes('--force') &&\n !args.includes('--exact') &&\n !args.includes('--optional') &&\n !args.includes('--production')\n ) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertInstallArgs (args: string[]) {\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n switch (item) {\n case '--save-dev':\n case '-D':\n return '--dev'\n case '--save-prod':\n case '-P':\n return '--production'\n case '--no-package-lock':\n return '--no-lockfile'\n case '--save-optional':\n case '-O':\n return '--optional'\n case '--save-exact':\n case '-E':\n return '--exact'\n case '--save':\n case '-S':\n case '--global':\n case '-g':\n return ''\n default:\n return item\n }\n })\n}\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return ['install']\n }\n args[0] = 'add'\n\n return convertInstallArgs(args)\n },\n i (args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n return convertInstallArgs(args)\n },\n remove (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n r (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n rm (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case 'major':\n return '--major'\n case 'minor':\n return '--minor'\n case 'patch':\n return '--patch'\n default:\n return item\n }\n })\n },\n rb (args: string[]) {\n return npmToYarnTable.rebuild(args)\n },\n rebuild (args: string[]) {\n args[0] = 'add'\n args.push('--force')\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n ln: 'link',\n un: 'unlink'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/npm-to-yarn.umd.js b/dist/npm-to-yarn.umd.js index a00ecd5..f973c53 100644 --- a/dist/npm-to-yarn.umd.js +++ b/dist/npm-to-yarn.umd.js @@ -4,7 +4,18 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.n2y = factory()); })(this, (function () { 'use strict'; - var unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']; + var unchangedCLICommands = [ + 'test', + 'login', + 'logout', + 'link', + 'unlink', + 'publish', + 'cache', + 'start', + 'stop', + 'test' + ]; var yarnCLICommands = [ 'init', 'run', @@ -34,8 +45,6 @@ 'self-update', 'tag', 'team', - 'link', - 'unlink', 'upgrade', 'upgrade-interactive', 'version', @@ -147,9 +156,6 @@ init: 'init', create: 'init', run: 'run', - start: 'start', - stop: 'stop', - test: 'test', global: function (args) { switch (args[1]) { case 'add': @@ -252,12 +258,6 @@ remove: function (args) { return npmToYarnTable.uninstall(args); }, - un: function (args) { - return npmToYarnTable.uninstall(args); - }, - unlink: function (args) { - return npmToYarnTable.uninstall(args); - }, r: function (args) { return npmToYarnTable.uninstall(args); }, @@ -320,9 +320,8 @@ } return args.filter(function (item) { return item !== '--scope'; }); }, - start: 'start', - stop: 'stop', - test: 'test' + ln: 'link', + un: 'unlink' }; function npmToYarn(_m, command) { var args = parse((command || '').trim()); @@ -331,7 +330,7 @@ args.splice(index, 1); } if (unchangedCLICommands.includes(args[0])) { - return 'yarn ' + args.join(' '); + return 'yarn ' + args.filter(Boolean).join(' '); } else if (args[0] in npmToYarnTable) { var converter = npmToYarnTable[args[0]]; diff --git a/dist/npm-to-yarn.umd.js.map b/dist/npm-to-yarn.umd.js.map index 2d4177f..787b845 100644 --- a/dist/npm-to-yarn.umd.js.map +++ b/dist/npm-to-yarn.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache']\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'link',\n 'unlink',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--production':\n return '--save-prod'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args.length === 2 && args[1] === '--force') {\n return ['rebuild'];\n }\n args[0] = 'install'\n if (\n !args.includes('--dev') &&\n !args.includes('--force') &&\n !args.includes('--exact') &&\n !args.includes('--optional') &&\n !args.includes('--production')\n ) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n start: 'start',\n stop: 'stop',\n test: 'test',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertInstallArgs (args: string[]) {\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n switch (item) {\n case '--save-dev':\n case '-D':\n return '--dev'\n case '--save-prod':\n case '-P':\n return '--production'\n case '--no-package-lock':\n return '--no-lockfile'\n case '--save-optional':\n case '-O':\n return '--optional'\n case '--save-exact':\n case '-E':\n return '--exact'\n case '--save':\n case '-S':\n case '--global':\n case '-g':\n return ''\n default:\n return item\n }\n })\n}\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return ['install']\n }\n args[0] = 'add'\n\n return convertInstallArgs(args)\n },\n i (args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n return convertInstallArgs(args)\n },\n remove (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n un (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n unlink (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n r (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n rm (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case 'major':\n return '--major'\n case 'minor':\n return '--minor'\n case 'patch':\n return '--patch'\n default:\n return item\n }\n })\n },\n rb (args: string[]) {\n return npmToYarnTable.rebuild(args)\n },\n rebuild (args: string[]) {\n args[0] = 'add'\n args.push('--force')\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n start: 'start',\n stop: 'stop',\n test: 'test'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"npm-to-yarn.umd.js","sources":["../src/utils.ts","../src/command.ts","../src/yarnToNpm.ts","../src/npmToYarn.ts","../src/index.ts"],"sourcesContent":["export const unchangedCLICommands = [\n 'test',\n 'login',\n 'logout',\n 'link',\n 'unlink',\n 'publish',\n 'cache',\n 'start',\n 'stop',\n 'test'\n]\n\nexport const yarnCLICommands = [\n 'init',\n 'run',\n 'add',\n 'audit',\n 'autoclean',\n 'bin',\n 'check',\n 'config',\n 'create',\n 'dedupe',\n 'generate-lock-entry',\n 'global',\n 'help',\n 'import',\n 'info',\n 'install',\n 'licenses',\n 'list',\n 'lockfile',\n 'outdated',\n 'owner',\n 'pack',\n 'policies',\n 'prune',\n 'remove',\n 'self-update',\n 'tag',\n 'team',\n 'upgrade',\n 'upgrade-interactive',\n 'version',\n 'versions',\n 'why',\n 'workspace',\n 'workspaces'\n]\n\nexport const npmCLICommands = [\n 'init',\n 'run',\n 'access',\n 'adduser',\n 'audit',\n 'bin',\n 'bugs',\n 'build',\n 'bundle',\n 'ci',\n 'completion',\n 'config',\n 'dedupe',\n 'deprecate',\n 'dist-tag',\n 'docs',\n 'doctor',\n 'edit',\n 'explore',\n 'exec',\n 'fund',\n 'help-search',\n 'help',\n 'hook',\n 'install-ci-test',\n 'install-test',\n 'install',\n 'ls',\n 'list',\n 'npm',\n 'org',\n 'outdated',\n 'owner',\n 'pack',\n 'ping',\n 'prefix',\n 'profile',\n 'prune',\n 'rebuild',\n 'repo',\n 'restart',\n 'root',\n 'run-script',\n 'search',\n 'shrinkwrap',\n 'star',\n 'stars',\n 'start',\n 'stop',\n 'team',\n 'token',\n 'uninstall',\n 'unpublish',\n 'update',\n 'version',\n 'view',\n 'whoami'\n]\n","export function parse (command: string) {\n const args: string[] = []\n let lastQuote: string | false = false\n let escaped = false\n let part = ''\n for (let i = 0; i < command.length; ++i) {\n const char = command.charAt(i)\n if (char === '\\\\') {\n part += char\n escaped = true\n } else {\n if (char === ' ' && !lastQuote) {\n args.push(part)\n part = ''\n } else if (!escaped && (char === '\"' || char === \"'\")) {\n part += char\n if (char === lastQuote) {\n lastQuote = false\n } else if (!lastQuote) {\n lastQuote = char\n }\n } else {\n part += char\n }\n escaped = false\n }\n }\n args.push(part)\n return args\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertAddRemoveArgs (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--no-lockfile':\n return '--no-package-lock'\n case '--production':\n return '--save-prod'\n case '--dev':\n return '--save-dev'\n case '--optional':\n return '--save-optional'\n case '--exact':\n return '--save-exact'\n default:\n return item\n }\n })\n}\n\nconst yarnToNpmTable = {\n add (args: string[]) {\n if (args.length === 2 && args[1] === '--force') {\n return ['rebuild']\n }\n args[0] = 'install'\n if (\n !args.includes('--dev') &&\n !args.includes('--force') &&\n !args.includes('--exact') &&\n !args.includes('--optional') &&\n !args.includes('--production')\n ) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n remove (args: string[]) {\n args[0] = 'uninstall'\n if (!args.includes('--dev')) {\n args.push('--save')\n }\n return convertAddRemoveArgs(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case '--major':\n return 'major'\n case '--minor':\n return 'minor'\n case '--patch':\n return 'patch'\n default:\n return item\n }\n })\n },\n install: 'install',\n list (args: string[]) {\n args[0] = 'ls'\n const patternIndex = args.findIndex(item => item === '--pattern')\n if (patternIndex >= 0 && args[patternIndex + 1]) {\n const packages = args[patternIndex + 1].replace(/[\"']([^\"']+)[\"']/, '$1').split('|')\n args.splice(patternIndex, 2, packages.join(' '))\n }\n return args\n },\n init: 'init',\n create: 'init',\n run: 'run',\n global (args: string[]) {\n switch (args[1]) {\n case 'add':\n args.shift()\n args = yarnToNpmTable.add(args)\n args.push('--global')\n return args\n case 'remove':\n args.shift()\n args = yarnToNpmTable.remove(args)\n args.push('--global')\n return args\n case 'list':\n args.shift()\n args = yarnToNpmTable.list(args)\n args.push('--global')\n return args\n // case 'bin':\n // case 'upgrade':\n default:\n args.push(\"\\n# couldn't auto-convert command\")\n return args\n }\n }\n}\n\nexport function yarnToNPM (_m: string, command: string): string {\n command = (command || '').trim()\n if (command === '') {\n return 'npm install'\n }\n let args = parse(command)\n const firstCommand = (/\\w+/.exec(command) || [''])[0]\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'npm ' + command\n } else if (args[0] in yarnToNpmTable) {\n const converter = yarnToNpmTable[args[0] as keyof typeof yarnToNpmTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'npm ' + args.filter(Boolean).join(' ')\n } else if (!yarnCLICommands.includes(firstCommand)) {\n // i.e., yarn grunt -> npm run grunt\n return 'npm run ' + command\n } else {\n return 'npm ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { unchangedCLICommands, yarnCLICommands } from './utils'\nimport { parse } from './command'\n\nfunction convertInstallArgs (args: string[]) {\n if (args.includes('--global') || args.includes('-g')) {\n args.unshift('global')\n }\n\n return args.map(item => {\n switch (item) {\n case '--save-dev':\n case '-D':\n return '--dev'\n case '--save-prod':\n case '-P':\n return '--production'\n case '--no-package-lock':\n return '--no-lockfile'\n case '--save-optional':\n case '-O':\n return '--optional'\n case '--save-exact':\n case '-E':\n return '--exact'\n case '--save':\n case '-S':\n case '--global':\n case '-g':\n return ''\n default:\n return item\n }\n })\n}\n\nconst npmToYarnTable = {\n install (args: string[]) {\n if (args.length === 1) {\n return ['install']\n }\n args[0] = 'add'\n\n return convertInstallArgs(args)\n },\n i (args: string[]) {\n return npmToYarnTable.install(args)\n },\n uninstall (args: string[]) {\n args[0] = 'remove'\n\n return convertInstallArgs(args)\n },\n remove (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n r (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n rm (args: string[]) {\n return npmToYarnTable.uninstall(args)\n },\n version (args: string[]) {\n return args.map(item => {\n switch (item) {\n case 'major':\n return '--major'\n case 'minor':\n return '--minor'\n case 'patch':\n return '--patch'\n default:\n return item\n }\n })\n },\n rb (args: string[]) {\n return npmToYarnTable.rebuild(args)\n },\n rebuild (args: string[]) {\n args[0] = 'add'\n args.push('--force')\n return args\n },\n run (args: string[]) {\n if (args[1] && !unchangedCLICommands.includes(args[1]) && !yarnCLICommands.includes(args[1])) {\n args.splice(0, 1)\n }\n return args\n },\n exec (args: string[]) {\n args[0] = 'run'\n return npmToYarnTable.run(args)\n },\n ls (args: string[]) {\n args[0] = 'list'\n\n let ended = false\n const packages = args.filter((item, id) => {\n if (id > 0 && !ended) {\n ended = item.startsWith('-')\n return !ended\n }\n return false\n })\n if (packages.length > 0) {\n args.splice(1, packages.length, '--pattern', '\"' + packages.join('|') + '\"')\n }\n return args\n },\n list (args: string[]) {\n return npmToYarnTable.ls(args)\n },\n init (args: string[]) {\n if (args[1] && !args[1].startsWith('-')) {\n args[0] = 'create'\n }\n return args.filter(item => item !== '--scope')\n },\n ln: 'link',\n un: 'unlink'\n}\n\nexport function npmToYarn (_m: string, command: string): string {\n let args = parse((command || '').trim())\n\n const index = args.findIndex(a => a === '--')\n if (index >= 0) {\n args.splice(index, 1)\n }\n\n if (unchangedCLICommands.includes(args[0])) {\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else if (args[0] in npmToYarnTable) {\n const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable]\n\n if (typeof converter === 'function') {\n args = converter(args)\n } else {\n args[0] = converter\n }\n\n return 'yarn ' + args.filter(Boolean).join(' ')\n } else {\n return 'yarn ' + command + \"\\n# couldn't auto-convert command\"\n }\n}\n","import { yarnToNPM } from './yarnToNpm'\nimport { npmToYarn } from './npmToYarn'\n\n/**\n * Converts between npm and yarn command\n */\nexport default function convert (str: string, to: 'npm' | 'yarn'): string {\n if (to === 'npm') {\n return str.replace(/yarn(?: +([^&\\n\\r]*))?/gm, yarnToNPM)\n } else {\n return str.replace(/npm(?: +([^&\\n\\r]*))?/gm, npmToYarn)\n }\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/npmToYarn.ts b/src/npmToYarn.ts index 1210889..7d32091 100644 --- a/src/npmToYarn.ts +++ b/src/npmToYarn.ts @@ -53,12 +53,6 @@ const npmToYarnTable = { remove (args: string[]) { return npmToYarnTable.uninstall(args) }, - un (args: string[]) { - return npmToYarnTable.uninstall(args) - }, - unlink (args: string[]) { - return npmToYarnTable.uninstall(args) - }, r (args: string[]) { return npmToYarnTable.uninstall(args) }, @@ -122,9 +116,8 @@ const npmToYarnTable = { } return args.filter(item => item !== '--scope') }, - start: 'start', - stop: 'stop', - test: 'test' + ln: 'link', + un: 'unlink' } export function npmToYarn (_m: string, command: string): string { @@ -136,7 +129,7 @@ export function npmToYarn (_m: string, command: string): string { } if (unchangedCLICommands.includes(args[0])) { - return 'yarn ' + args.join(' ') + return 'yarn ' + args.filter(Boolean).join(' ') } else if (args[0] in npmToYarnTable) { const converter = npmToYarnTable[args[0] as keyof typeof npmToYarnTable] diff --git a/src/utils.ts b/src/utils.ts index 18d4d1a..095d590 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,15 @@ -export const unchangedCLICommands = ['test', 'login', 'logout', 'link', 'publish', 'cache'] +export const unchangedCLICommands = [ + 'test', + 'login', + 'logout', + 'link', + 'unlink', + 'publish', + 'cache', + 'start', + 'stop', + 'test' +] export const yarnCLICommands = [ 'init', @@ -29,8 +40,6 @@ export const yarnCLICommands = [ 'self-update', 'tag', 'team', - 'link', - 'unlink', 'upgrade', 'upgrade-interactive', 'version', diff --git a/src/yarnToNpm.ts b/src/yarnToNpm.ts index 3499642..2f9204c 100644 --- a/src/yarnToNpm.ts +++ b/src/yarnToNpm.ts @@ -23,7 +23,7 @@ function convertAddRemoveArgs (args: string[]) { const yarnToNpmTable = { add (args: string[]) { if (args.length === 2 && args[1] === '--force') { - return ['rebuild']; + return ['rebuild'] } args[0] = 'install' if ( @@ -71,9 +71,6 @@ const yarnToNpmTable = { init: 'init', create: 'init', run: 'run', - start: 'start', - stop: 'stop', - test: 'test', global (args: string[]) { switch (args[1]) { case 'add': diff --git a/test/index.spec.ts b/test/index.spec.ts index 265af84..1adfd87 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -19,6 +19,8 @@ describe('NPM to Yarn tests', () => { }) it('Simple convert works w/ remove', () => { + expect(convert('npm r squirrelly', 'yarn')).toEqual('yarn remove squirrelly') + expect(convert('npm remove squirrelly', 'yarn')).toEqual('yarn remove squirrelly') expect(convert('npm uninstall squirrelly', 'yarn')).toEqual('yarn remove squirrelly') }) @@ -171,6 +173,13 @@ describe('NPM to Yarn tests', () => { expect(convert('npm ls --production', 'yarn')).toEqual('yarn list --production') expect(convert('npm ls --development', 'yarn')).toEqual('yarn list --development') }) + + it('npm link/unlink', () => { + expect(convert('npm ln custom', 'yarn')).toEqual('yarn link custom') + expect(convert('npm link custom', 'yarn')).toEqual('yarn link custom') + expect(convert('npm unlink custom', 'yarn')).toEqual('yarn unlink custom') + expect(convert('npm un custom', 'yarn')).toEqual('yarn unlink custom') + }) }) describe('Yarn to NPM tests', () => { @@ -295,4 +304,9 @@ describe('Yarn to NPM tests', () => { expect(convert('yarn list --production', 'npm')).toEqual('npm ls --production') expect(convert('yarn list --development', 'npm')).toEqual('npm ls --development') }) + + it('npm link/unlink', () => { + expect(convert('yarn link custom', 'npm')).toEqual('npm link custom') + expect(convert('yarn unlink custom', 'npm')).toEqual('npm unlink custom') + }) })