From f564cbf20be3b7eb7eed61b2fc95a2afa0b5936e Mon Sep 17 00:00:00 2001 From: "mansonchor.github.com" Date: Fri, 15 Jul 2022 15:44:10 +0800 Subject: [PATCH] feat: support set eggTsHelper (#183) * feat: support set eggTsHelper * fix: console * fix: case adapt windows * feat: default is undefined * fix: testcase --- .gitignore | 1 + lib/command.js | 18 ++++++++++++++++-- test/fixtures/my-egg-bin/lib/cmd/echo.js | 13 +++++++++++++ .../custom-egg-ts-helper/package.json | 3 +++ .../custom-egg-ts-helper/register.js | 3 +++ test/my-egg-bin.test.js | 16 +++++++++++++++- 6 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 test/fixtures/test-files/node_modules/custom-egg-ts-helper/package.json create mode 100644 test/fixtures/test-files/node_modules/custom-egg-ts-helper/register.js diff --git a/.gitignore b/.gitignore index d5e2673a..f25a1d80 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ test/fixtures/ts/node_modules/aliyun-egg/ test/fixtures/example-ts-ets/typings/ !test/fixtures/example-ts-ets/node_modules/ !test/fixtures/example-ts-simple/node_modules/ +!test/fixtures/test-files/node_modules/ **/run/*.json .tmp diff --git a/lib/command.js b/lib/command.js index 93606a09..e44c9479 100644 --- a/lib/command.js +++ b/lib/command.js @@ -23,7 +23,7 @@ class Command extends BaseCommand { }, declarations: { - description: 'whether create dts, will load `egg-ts-helper/register`', + description: 'whether create dts, will load options.eggTsHelper', type: 'boolean', alias: 'dts', default: undefined, @@ -35,6 +35,13 @@ class Command extends BaseCommand { alias: 'tsc', default: undefined, }, + + eggTsHelper: { + description: 'egg-ts-helper register, default use `egg-ts-helper/register`', + type: 'string', + alias: 'ets', + default: undefined, + }, }; } @@ -105,9 +112,16 @@ class Command extends BaseCommand { env.TS_NODE_FILES = process.env.TS_NODE_FILES || 'true'; } + // read egg-ts-helper + if (argv.eggTsHelper === undefined) { + argv.eggTsHelper = require.resolve('egg-ts-helper/register'); + } else { + argv.eggTsHelper = require.resolve(argv.eggTsHelper, { paths: [ cwd ] }); + } + // load egg-ts-helper if (argv.declarations) { - execArgvObj.require.push(require.resolve('egg-ts-helper/register')); + execArgvObj.require.push(argv.eggTsHelper); } return context; diff --git a/test/fixtures/my-egg-bin/lib/cmd/echo.js b/test/fixtures/my-egg-bin/lib/cmd/echo.js index f55f5c82..7eba4942 100644 --- a/test/fixtures/my-egg-bin/lib/cmd/echo.js +++ b/test/fixtures/my-egg-bin/lib/cmd/echo.js @@ -3,6 +3,19 @@ const Command = require('../../../../../'); class EchoCommand extends Command { + constructor(rawArgv) { + super(rawArgv); + + this.options = { + eggTsHelper: { + description: 'egg-ts-helper register, default use `egg-ts-helper/register`', + type: 'string', + alias: 'ets', + default: 'custom-egg-ts-helper/register', + }, + }; + } + get description() { return 'echo test'; } diff --git a/test/fixtures/test-files/node_modules/custom-egg-ts-helper/package.json b/test/fixtures/test-files/node_modules/custom-egg-ts-helper/package.json new file mode 100644 index 00000000..099b0e2b --- /dev/null +++ b/test/fixtures/test-files/node_modules/custom-egg-ts-helper/package.json @@ -0,0 +1,3 @@ +{ + "name": "custom-egg-ts-helper" +} diff --git a/test/fixtures/test-files/node_modules/custom-egg-ts-helper/register.js b/test/fixtures/test-files/node_modules/custom-egg-ts-helper/register.js new file mode 100644 index 00000000..26070d3f --- /dev/null +++ b/test/fixtures/test-files/node_modules/custom-egg-ts-helper/register.js @@ -0,0 +1,3 @@ +'use strict'; + +console.log('custom egg-ts-helper'); diff --git a/test/my-egg-bin.test.js b/test/my-egg-bin.test.js index 294d953d..42985e7c 100644 --- a/test/my-egg-bin.test.js +++ b/test/my-egg-bin.test.js @@ -65,7 +65,7 @@ describe('test/my-egg-bin.test.js', () => { '--es_staging', '--harmony', '--harmony_default_parameters', ]; coffee.fork(eggBin, args, { cwd }) - // .debug() + .debug() .expect('stdout', /"baseDir":".\/dist"/) .expect('stdout', /debugPort: 6666/) .notExpect('stdout', /"argv: {.*debugBrk":true/) @@ -99,4 +99,18 @@ describe('test/my-egg-bin.test.js', () => { .expect('code', 1) .end(done); }); + + it('should custom eggTsHelper success', done => { + const args = [ + 'echo', + '--typescript', + '--declarations', + ]; + coffee.fork(eggBin, args, { cwd }) + // .debug() + .expect('stdout', /custom-egg-ts-helper/) + .expect('stdout', /register\.js/) + .expect('code', 0) + .end(done); + }); });