From 0128d1f5abde0dd98b2d265518e5f43e04bf43b4 Mon Sep 17 00:00:00 2001 From: Garrett Stevens Date: Thu, 14 Sep 2023 08:01:32 -0600 Subject: [PATCH] Upgrade oclif to v3 (#3896) * Update create command * Update remaining commands * Don't use fileTransform in Jest * Use data URL for PNGs * Remove unneeded mocks from tests * Add exit code cleanup to CLI tests * Add comment to exitCode cleanup --- config/jest/fileTransform.js | 32 - jest.config.js | 2 - package.json | 4 +- products/jbrowse-cli/README.md | 460 +++-- products/jbrowse-cli/bin/dev | 17 + products/jbrowse-cli/bin/dev.cmd | 3 + products/jbrowse-cli/bin/run | 9 +- products/jbrowse-cli/package.json | 17 +- products/jbrowse-cli/src/base.ts | 2 +- .../src/commands/add-assembly.test.ts | 6 +- .../jbrowse-cli/src/commands/add-assembly.ts | 47 +- .../src/commands/add-connection.test.ts | 3 + .../src/commands/add-connection.ts | 35 +- .../src/commands/add-track-json.ts | 19 +- .../src/commands/add-track.test.ts | 3 + .../jbrowse-cli/src/commands/add-track.ts | 51 +- .../src/commands/admin-server.test.ts | 100 +- .../jbrowse-cli/src/commands/admin-server.ts | 12 +- .../jbrowse-cli/src/commands/create.test.ts | 7 +- products/jbrowse-cli/src/commands/create.ts | 27 +- .../src/commands/remove-track.test.ts | 3 + .../jbrowse-cli/src/commands/remove-track.ts | 17 +- .../src/commands/set-default-session.test.ts | 3 + .../src/commands/set-default-session.ts | 26 +- .../src/commands/text-index.test.ts | 5 +- .../jbrowse-cli/src/commands/text-index.ts | 41 +- .../jbrowse-cli/src/commands/upgrade.test.ts | 3 + products/jbrowse-cli/src/commands/upgrade.ts | 27 +- products/jbrowse-cli/src/index.ts | 2 +- products/jbrowse-cli/src/testUtil.test.ts | 44 - products/jbrowse-cli/src/testUtil.ts | 67 +- products/jbrowse-cli/tsconfig.json | 4 +- .../jbrowse-desktop/src/react-app-env.d.ts | 4 - .../src/components/NewSessionCards.tsx | 4 +- .../src/components/img/emptyIcon.png | Bin 919 -> 0 bytes .../jbrowse-web/src/components/img/index.ts | 8 + .../components/img/linearGenomeViewIcon.png | Bin 5765 -> 0 bytes .../src/components/img/svInspectorIcon.png | Bin 19278 -> 0 bytes products/jbrowse-web/src/react-app-env.d.ts | 4 - yarn.lock | 1594 +++++++++++++---- 40 files changed, 1750 insertions(+), 962 deletions(-) delete mode 100644 config/jest/fileTransform.js create mode 100755 products/jbrowse-cli/bin/dev create mode 100644 products/jbrowse-cli/bin/dev.cmd delete mode 100644 products/jbrowse-cli/src/testUtil.test.ts delete mode 100644 products/jbrowse-desktop/src/react-app-env.d.ts delete mode 100644 products/jbrowse-web/src/components/img/emptyIcon.png create mode 100644 products/jbrowse-web/src/components/img/index.ts delete mode 100644 products/jbrowse-web/src/components/img/linearGenomeViewIcon.png delete mode 100644 products/jbrowse-web/src/components/img/svInspectorIcon.png delete mode 100644 products/jbrowse-web/src/react-app-env.d.ts diff --git a/config/jest/fileTransform.js b/config/jest/fileTransform.js deleted file mode 100644 index d3b0edb1e0..0000000000 --- a/config/jest/fileTransform.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict' - -const path = require('path') - -// This is a custom Jest transformer turning file imports into filenames. -// http://facebook.github.io/jest/docs/en/webpack.html - -module.exports = { - process(src, filename) { - const assetFilename = JSON.stringify(path.basename(filename)) - - if (filename.match(/\.svg$/)) { - return { - code: `module.exports = { - __esModule: true, - default: ${assetFilename}, - ReactComponent: (props) => ({ - $$typeof: Symbol.for('react.element'), - type: 'svg', - ref: null, - key: null, - props: Object.assign({}, props, { - children: ${assetFilename} - }) - }), - };`, - } - } - - return { code: `module.exports = ${assetFilename};` } - }, -} diff --git a/jest.config.js b/jest.config.js index e931377354..1466ea4ae0 100644 --- a/jest.config.js +++ b/jest.config.js @@ -6,8 +6,6 @@ module.exports = { transform: { '^.+\\.(ts|tsx|js|jsx)$': '/config/jest/babelTransform.js', '^.+\\.css$': '/config/jest/cssTransform.js', - '^(?!.*\\.(ts|js|tsx|jsx|css|json)$)': - '/config/jest/fileTransform.js', }, transformIgnorePatterns: [ '[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$', diff --git a/package.json b/package.json index c3cfafefa1..97504d3fb0 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,7 @@ "@mui/system": "^5.14.4", "@mui/x-data-grid": "^6.0.1", "@node-oauth/express-oauth-server": "^3.0.0", - "@oclif/dev-cli": "^1.26.9", - "@oclif/test": "^1.2.7", + "@oclif/test": "^2.4.8", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", "@storybook/addon-essentials": "^7.0.0", "@storybook/node-logger": "^7.0.0", @@ -138,6 +137,7 @@ "nock": "^13.2.1", "node-polyfill-webpack-plugin": "^2.0.1", "npm-run-all": "^4.1.5", + "oclif": "^3.15.0", "postcss": "^8.4.4", "postcss-flexbugs-fixes": "^5.0.2", "postcss-loader": "^7.3.3", diff --git a/products/jbrowse-cli/README.md b/products/jbrowse-cli/README.md index b859544c04..3a65e3416c 100644 --- a/products/jbrowse-cli/README.md +++ b/products/jbrowse-cli/README.md @@ -53,7 +53,7 @@ It is likely preferable in most cases to install the tools globally with - [`jbrowse add-track-json TRACK`](#jbrowse-add-track-json-track) - [`jbrowse admin-server`](#jbrowse-admin-server) - [`jbrowse create LOCALPATH`](#jbrowse-create-localpath) -- [`jbrowse help [COMMAND]`](#jbrowse-help-command) +- [`jbrowse help [COMMANDS]`](#jbrowse-help-commands) - [`jbrowse remove-track TRACK`](#jbrowse-remove-track-track) - [`jbrowse set-default-session`](#jbrowse-set-default-session) - [`jbrowse text-index`](#jbrowse-text-index) @@ -65,7 +65,10 @@ Add an assembly to a JBrowse 2 configuration ``` USAGE - $ jbrowse add-assembly SEQUENCE + $ jbrowse add-assembly SEQUENCE [-t indexedFasta|bgzipFasta|twoBit|chromSizes|custom] [-n ] [-a ] + [--displayName ] [--faiLocation ] [--gziLocation ] [--refNameAliasesType aliases|custom + --refNameAliases ] [--refNameColors ] [--target ] [--out ] [-h] [-l + copy|symlink|move|inPlace] [--skipCheck] [--overwrite] [-f] ARGUMENTS SEQUENCE @@ -76,8 +79,8 @@ ARGUMENTS If TYPE is bgzipFasta, the gzip index file defaults to .gzi and can be optionally specified with --gziLocation -OPTIONS - -a, --alias=alias +FLAGS + -a, --alias=... An alias for the assembly name (e.g. "hg38" if the name of the assembly is "GRCh38"); can be specified multiple times @@ -85,16 +88,17 @@ OPTIONS Equivalent to `--skipCheck --overwrite` -h, --help - show CLI help + Show CLI help. - -l, --load=copy|symlink|move|inPlace + -l, --load=