@eggjs/mock 6.0.6 → 6.1.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -56
- package/README.zh_CN.md +30 -50
- package/dist/_virtual/rolldown_runtime.js +30 -0
- package/dist/app/extend/agent.d.ts +39 -0
- package/dist/app/extend/agent.js +48 -0
- package/dist/app/extend/application.d.ts +175 -0
- package/dist/app/extend/application.js +385 -0
- package/dist/app/middleware/cluster_app_mock.d.ts +6 -0
- package/dist/app/middleware/cluster_app_mock.js +97 -0
- package/dist/app.d.ts +10 -0
- package/dist/app.js +17 -0
- package/dist/bootstrap.d.ts +9 -0
- package/dist/bootstrap.js +14 -0
- package/dist/index.d.ts +81 -0
- package/dist/index.js +47 -0
- package/dist/inject_mocha.d.ts +1 -0
- package/dist/inject_mocha.js +35 -0
- package/dist/lib/agent_handler.d.ts +7 -0
- package/dist/lib/agent_handler.js +26 -0
- package/dist/lib/app.d.ts +7 -0
- package/dist/lib/app.js +251 -0
- package/dist/lib/app_handler.d.ts +9 -0
- package/dist/lib/app_handler.js +56 -0
- package/dist/lib/cluster.d.ts +126 -0
- package/dist/lib/cluster.js +283 -0
- package/dist/lib/context.d.ts +4 -0
- package/dist/lib/context.js +12 -0
- package/dist/lib/format_options.d.ts +10 -0
- package/dist/lib/format_options.js +65 -0
- package/dist/lib/inject_context.d.ts +9 -0
- package/dist/lib/inject_context.js +106 -0
- package/dist/lib/mock_agent.d.ts +9 -0
- package/dist/lib/mock_agent.js +45 -0
- package/dist/lib/mock_custom_loader.d.ts +4 -0
- package/dist/lib/mock_custom_loader.js +35 -0
- package/dist/lib/mock_http_server.d.ts +6 -0
- package/dist/lib/mock_http_server.js +17 -0
- package/dist/lib/mock_httpclient.d.ts +40 -0
- package/dist/lib/mock_httpclient.js +110 -0
- package/dist/lib/parallel/agent.d.ts +24 -0
- package/dist/lib/parallel/agent.js +111 -0
- package/dist/lib/parallel/app.d.ts +24 -0
- package/dist/lib/parallel/app.js +99 -0
- package/dist/lib/parallel/util.d.ts +6 -0
- package/dist/lib/parallel/util.js +59 -0
- package/dist/lib/prerequire.d.ts +1 -0
- package/dist/lib/prerequire.js +1 -0
- package/dist/lib/request_call_function.d.ts +1 -0
- package/dist/lib/request_call_function.js +37 -0
- package/dist/lib/restore.d.ts +4 -0
- package/dist/lib/restore.js +16 -0
- package/dist/lib/start-cluster.d.ts +1 -0
- package/dist/lib/start-cluster.js +19 -0
- package/dist/lib/supertest.d.ts +16 -0
- package/dist/lib/supertest.js +39 -0
- package/dist/lib/tmp/empty.d.ts +1 -0
- package/dist/lib/tmp/empty.js +1 -0
- package/{src/lib/types.ts → dist/lib/types.d.ts} +12 -29
- package/dist/lib/types.js +1 -0
- package/dist/lib/utils.d.ts +12 -0
- package/dist/lib/utils.js +40 -0
- package/dist/node_modules/.pnpm/ansi-styles@4.3.0/node_modules/ansi-styles/index.js +142 -0
- package/dist/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/index.js +157 -0
- package/dist/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/templates.js +97 -0
- package/dist/node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/source/util.js +40 -0
- package/dist/node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/conversions.js +814 -0
- package/dist/node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/index.js +50 -0
- package/dist/node_modules/.pnpm/color-convert@2.0.1/node_modules/color-convert/route.js +68 -0
- package/dist/node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js +752 -0
- package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/browser.js +203 -0
- package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/common.js +209 -0
- package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/index.js +18 -0
- package/dist/node_modules/.pnpm/debug@4.4.3_supports-color@8.1.1/node_modules/debug/src/node.js +215 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/convert/dmp.js +24 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/convert/xml.js +33 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/array.js +29 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/base.js +185 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/character.js +23 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/css.js +26 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/json.js +83 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/line.js +51 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/sentence.js +26 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/diff/word.js +151 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/index.js +178 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/apply.js +168 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/create.js +301 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/line-endings.js +137 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/merge.js +367 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/parse.js +91 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/patch/reverse.js +99 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/array.js +23 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/distance-iterator.js +30 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/params.js +22 -0
- package/dist/node_modules/.pnpm/diff@7.0.0/node_modules/diff/lib/util/string.js +97 -0
- package/dist/node_modules/.pnpm/escape-string-regexp@4.0.0/node_modules/escape-string-regexp/index.js +14 -0
- package/dist/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js +16 -0
- package/dist/node_modules/.pnpm/he@1.2.0/node_modules/he/he.js +4093 -0
- package/dist/node_modules/.pnpm/is-unicode-supported@0.1.0/node_modules/is-unicode-supported/index.js +14 -0
- package/dist/node_modules/.pnpm/log-symbols@4.1.0/node_modules/log-symbols/index.js +27 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/index.js +12 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/context.js +83 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/error-constants.js +35 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/errors.js +392 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/hook.js +86 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/bdd.js +104 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/common.js +99 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/exports.js +65 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/index.js +18 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/qunit.js +95 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/interfaces/tdd.js +105 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/mocha.js +1037 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/mocharc.js +24 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/buffered-worker-pool.js +152 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/esm-utils.js +74 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/file-unloader.js +22 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/parallel-buffered-runner.js +329 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/nodejs/serializer.js +314 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/pending.js +22 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/base.js +417 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/doc.js +79 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/dot.js +75 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/html.js +283 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/index.js +40 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/json-stream.js +90 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/json.js +145 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/landing.js +107 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/list.js +77 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/markdown.js +106 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/min.js +57 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/nyan.js +233 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/progress.js +92 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/spec.js +91 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/tap.js +261 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/reporters/xunit.js +166 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/runnable.js +346 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/runner.js +922 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/stats-collector.js +72 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/suite.js +517 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/test.js +105 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/lib/utils.js +505 -0
- package/dist/node_modules/.pnpm/mocha@11.7.2/node_modules/mocha/package.js +225 -0
- package/dist/node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js +124 -0
- package/dist/node_modules/.pnpm/randombytes@2.1.0/node_modules/randombytes/index.js +11 -0
- package/dist/node_modules/.pnpm/serialize-javascript@6.0.2/node_modules/serialize-javascript/index.js +114 -0
- package/dist/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js +76 -0
- package/dist/node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js +89 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/Pool.js +366 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/Promise.js +248 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/WorkerHandler.js +419 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/debug-port-allocator.js +27 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/environment.js +18 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/generated/embeddedWorker.js +16 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/index.js +63 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/transfer.js +21 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/validateOptions.js +9 -0
- package/dist/node_modules/.pnpm/workerpool@9.3.4/node_modules/workerpool/src/worker.js +277 -0
- package/dist/register.d.ts +10 -0
- package/dist/register.js +40 -0
- package/dist/typings/index.d.ts +1 -0
- package/package.json +71 -98
- package/dist/commonjs/app/extend/agent.d.ts +0 -34
- package/dist/commonjs/app/extend/agent.js +0 -49
- package/dist/commonjs/app/extend/application.d.ts +0 -171
- package/dist/commonjs/app/extend/application.js +0 -450
- package/dist/commonjs/app/middleware/cluster_app_mock.d.ts +0 -3
- package/dist/commonjs/app/middleware/cluster_app_mock.js +0 -101
- package/dist/commonjs/app.d.ts +0 -6
- package/dist/commonjs/app.js +0 -20
- package/dist/commonjs/bootstrap.d.ts +0 -5
- package/dist/commonjs/bootstrap.js +0 -59
- package/dist/commonjs/index.d.ts +0 -77
- package/dist/commonjs/index.js +0 -114
- package/dist/commonjs/lib/agent_handler.d.ts +0 -3
- package/dist/commonjs/lib/agent_handler.js +0 -28
- package/dist/commonjs/lib/app.d.ts +0 -3
- package/dist/commonjs/lib/app.js +0 -301
- package/dist/commonjs/lib/app_handler.d.ts +0 -5
- package/dist/commonjs/lib/app_handler.js +0 -71
- package/dist/commonjs/lib/cluster.d.ts +0 -114
- package/dist/commonjs/lib/cluster.js +0 -337
- package/dist/commonjs/lib/context.d.ts +0 -1
- package/dist/commonjs/lib/context.js +0 -16
- package/dist/commonjs/lib/format_options.d.ts +0 -5
- package/dist/commonjs/lib/format_options.js +0 -100
- package/dist/commonjs/lib/inject_context.d.ts +0 -6
- package/dist/commonjs/lib/inject_context.js +0 -132
- package/dist/commonjs/lib/mock_agent.d.ts +0 -5
- package/dist/commonjs/lib/mock_agent.js +0 -49
- package/dist/commonjs/lib/mock_custom_loader.d.ts +0 -1
- package/dist/commonjs/lib/mock_custom_loader.js +0 -37
- package/dist/commonjs/lib/mock_http_server.d.ts +0 -2
- package/dist/commonjs/lib/mock_http_server.js +0 -24
- package/dist/commonjs/lib/mock_httpclient.d.ts +0 -36
- package/dist/commonjs/lib/mock_httpclient.js +0 -147
- package/dist/commonjs/lib/parallel/agent.d.ts +0 -20
- package/dist/commonjs/lib/parallel/agent.js +0 -125
- package/dist/commonjs/lib/parallel/app.d.ts +0 -20
- package/dist/commonjs/lib/parallel/app.js +0 -115
- package/dist/commonjs/lib/parallel/util.d.ts +0 -3
- package/dist/commonjs/lib/parallel/util.js +0 -77
- package/dist/commonjs/lib/prerequire.d.ts +0 -1
- package/dist/commonjs/lib/prerequire.js +0 -26
- package/dist/commonjs/lib/request_call_function.d.ts +0 -1
- package/dist/commonjs/lib/request_call_function.js +0 -52
- package/dist/commonjs/lib/restore.d.ts +0 -1
- package/dist/commonjs/lib/restore.js +0 -16
- package/dist/commonjs/lib/start-cluster.d.ts +0 -2
- package/dist/commonjs/lib/start-cluster.js +0 -23
- package/dist/commonjs/lib/supertest.d.ts +0 -11
- package/dist/commonjs/lib/supertest.js +0 -48
- package/dist/commonjs/lib/tmp/empty.d.ts +0 -1
- package/dist/commonjs/lib/tmp/empty.js +0 -3
- package/dist/commonjs/lib/types.d.ts +0 -68
- package/dist/commonjs/lib/types.js +0 -3
- package/dist/commonjs/lib/utils.d.ts +0 -9
- package/dist/commonjs/lib/utils.js +0 -80
- package/dist/commonjs/package.json +0 -3
- package/dist/commonjs/register.d.ts +0 -8
- package/dist/commonjs/register.js +0 -80
- package/dist/esm/app/extend/agent.d.ts +0 -34
- package/dist/esm/app/extend/agent.js +0 -46
- package/dist/esm/app/extend/application.d.ts +0 -171
- package/dist/esm/app/extend/application.js +0 -444
- package/dist/esm/app/middleware/cluster_app_mock.d.ts +0 -3
- package/dist/esm/app/middleware/cluster_app_mock.js +0 -99
- package/dist/esm/app.d.ts +0 -6
- package/dist/esm/app.js +0 -17
- package/dist/esm/bootstrap.d.ts +0 -5
- package/dist/esm/bootstrap.js +0 -15
- package/dist/esm/index.d.ts +0 -77
- package/dist/esm/index.js +0 -91
- package/dist/esm/lib/agent_handler.d.ts +0 -3
- package/dist/esm/lib/agent_handler.js +0 -24
- package/dist/esm/lib/app.d.ts +0 -3
- package/dist/esm/lib/app.js +0 -295
- package/dist/esm/lib/app_handler.d.ts +0 -5
- package/dist/esm/lib/app_handler.js +0 -65
- package/dist/esm/lib/cluster.d.ts +0 -114
- package/dist/esm/lib/cluster.js +0 -328
- package/dist/esm/lib/context.d.ts +0 -1
- package/dist/esm/lib/context.js +0 -13
- package/dist/esm/lib/format_options.d.ts +0 -5
- package/dist/esm/lib/format_options.js +0 -94
- package/dist/esm/lib/inject_context.d.ts +0 -6
- package/dist/esm/lib/inject_context.js +0 -126
- package/dist/esm/lib/mock_agent.d.ts +0 -5
- package/dist/esm/lib/mock_agent.js +0 -45
- package/dist/esm/lib/mock_custom_loader.d.ts +0 -1
- package/dist/esm/lib/mock_custom_loader.js +0 -34
- package/dist/esm/lib/mock_http_server.d.ts +0 -2
- package/dist/esm/lib/mock_http_server.js +0 -18
- package/dist/esm/lib/mock_httpclient.d.ts +0 -36
- package/dist/esm/lib/mock_httpclient.js +0 -144
- package/dist/esm/lib/parallel/agent.d.ts +0 -20
- package/dist/esm/lib/parallel/agent.js +0 -117
- package/dist/esm/lib/parallel/app.d.ts +0 -20
- package/dist/esm/lib/parallel/app.js +0 -110
- package/dist/esm/lib/parallel/util.d.ts +0 -3
- package/dist/esm/lib/parallel/util.js +0 -73
- package/dist/esm/lib/prerequire.d.ts +0 -1
- package/dist/esm/lib/prerequire.js +0 -25
- package/dist/esm/lib/request_call_function.d.ts +0 -1
- package/dist/esm/lib/request_call_function.js +0 -47
- package/dist/esm/lib/restore.d.ts +0 -1
- package/dist/esm/lib/restore.js +0 -13
- package/dist/esm/lib/start-cluster.d.ts +0 -2
- package/dist/esm/lib/start-cluster.js +0 -18
- package/dist/esm/lib/supertest.d.ts +0 -11
- package/dist/esm/lib/supertest.js +0 -40
- package/dist/esm/lib/tmp/empty.d.ts +0 -1
- package/dist/esm/lib/tmp/empty.js +0 -2
- package/dist/esm/lib/types.d.ts +0 -68
- package/dist/esm/lib/types.js +0 -2
- package/dist/esm/lib/utils.d.ts +0 -9
- package/dist/esm/lib/utils.js +0 -69
- package/dist/esm/package.json +0 -3
- package/dist/esm/register.d.ts +0 -8
- package/dist/esm/register.js +0 -75
- package/dist/package.json +0 -4
- package/src/app/extend/agent.ts +0 -57
- package/src/app/extend/application.ts +0 -510
- package/src/app/middleware/cluster_app_mock.ts +0 -102
- package/src/app.ts +0 -18
- package/src/bootstrap.ts +0 -25
- package/src/index.ts +0 -112
- package/src/lib/agent_handler.ts +0 -28
- package/src/lib/app.ts +0 -314
- package/src/lib/app_handler.ts +0 -77
- package/src/lib/cluster.ts +0 -363
- package/src/lib/context.ts +0 -14
- package/src/lib/format_options.ts +0 -103
- package/src/lib/inject_context.ts +0 -134
- package/src/lib/mock_agent.ts +0 -57
- package/src/lib/mock_custom_loader.ts +0 -36
- package/src/lib/mock_http_server.ts +0 -19
- package/src/lib/mock_httpclient.ts +0 -183
- package/src/lib/parallel/agent.ts +0 -128
- package/src/lib/parallel/app.ts +0 -123
- package/src/lib/parallel/util.ts +0 -66
- package/src/lib/prerequire.ts +0 -25
- package/src/lib/request_call_function.ts +0 -49
- package/src/lib/restore.ts +0 -14
- package/src/lib/start-cluster.ts +0 -23
- package/src/lib/supertest.ts +0 -45
- package/src/lib/tmp/.gitkeep +0 -0
- package/src/lib/tmp/empty.ts +0 -0
- package/src/lib/utils.ts +0 -82
- package/src/register.ts +0 -80
- package/src/typings/index.d.ts +0 -4
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
const debug = debuglog('@eggjs/mock/lib/mock_custom_loader');
|
|
3
|
-
export function setCustomLoader(app) {
|
|
4
|
-
const customLoader = app.config.customLoader;
|
|
5
|
-
if (!customLoader)
|
|
6
|
-
return;
|
|
7
|
-
for (const field of Object.keys(customLoader)) {
|
|
8
|
-
const loaderConfig = Object.assign({}, customLoader[field]);
|
|
9
|
-
loaderConfig.field = field;
|
|
10
|
-
addMethod(loaderConfig);
|
|
11
|
-
}
|
|
12
|
-
function addMethod(loaderConfig) {
|
|
13
|
-
const field = loaderConfig.field;
|
|
14
|
-
const appMethodName = 'mock' + field.replace(/^[a-z]/i, s => s.toUpperCase());
|
|
15
|
-
if (app[appMethodName]) {
|
|
16
|
-
app.coreLogger.warn('Can\'t override app.%s', appMethodName);
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
debug('[addMethod] %s => %j', appMethodName, loaderConfig);
|
|
20
|
-
app[appMethodName] = function (service, methodName, fn) {
|
|
21
|
-
if (typeof service === 'string') {
|
|
22
|
-
const arr = service.split('.');
|
|
23
|
-
service = loaderConfig.inject === 'ctx' ? this[field + 'Classes'] : this[field];
|
|
24
|
-
for (const key of arr) {
|
|
25
|
-
service = service[key];
|
|
26
|
-
}
|
|
27
|
-
service = service.prototype || service;
|
|
28
|
-
}
|
|
29
|
-
this._mockFn(service, methodName, fn);
|
|
30
|
-
return this;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19jdXN0b21fbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tb2NrX2N1c3RvbV9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUU3RCxNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQVE7SUFDdEMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDN0MsSUFBSSxDQUFDLFlBQVk7UUFBRSxPQUFPO0lBRTFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVELFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzNCLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsU0FBUyxTQUFTLENBQUMsWUFBaUI7UUFDbEMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQWUsQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5RSxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzdELE9BQU87UUFDVCxDQUFDO1FBQ0QsS0FBSyxDQUFDLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMzRCxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsVUFBUyxPQUFZLEVBQUUsVUFBa0IsRUFBRSxFQUFPO1lBQ3JFLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLE9BQU8sR0FBRyxZQUFZLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoRixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDO2dCQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQztZQUN6QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import http from 'node:http';
|
|
2
|
-
const SERVER = Symbol('http_server');
|
|
3
|
-
export function createServer(app) {
|
|
4
|
-
let server = app[SERVER] || app.callback();
|
|
5
|
-
if (typeof server === 'function') {
|
|
6
|
-
server = http.createServer(server);
|
|
7
|
-
// cache server, avoid create many times
|
|
8
|
-
app[SERVER] = server;
|
|
9
|
-
if (!app.server) {
|
|
10
|
-
app.server = server;
|
|
11
|
-
}
|
|
12
|
-
// emit server event just like egg-cluster does
|
|
13
|
-
// https://github.com/eggjs/egg-cluster/blob/master/lib/app_worker.js#L52
|
|
14
|
-
app.emit('server', server);
|
|
15
|
-
}
|
|
16
|
-
return server;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19odHRwX3NlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9ja19odHRwX3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQWdCLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUVyQyxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVE7SUFDbkMsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQyxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLHdDQUF3QztRQUN4QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdEIsQ0FBQztRQUNELCtDQUErQztRQUMvQyx5RUFBeUU7UUFDekUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { Dispatcher, Headers, BodyInit } from 'urllib';
|
|
2
|
-
export interface MockResultOptions {
|
|
3
|
-
data: string | Buffer | Record<string, any>;
|
|
4
|
-
/**
|
|
5
|
-
* http status
|
|
6
|
-
*/
|
|
7
|
-
status?: number;
|
|
8
|
-
/**
|
|
9
|
-
* response header
|
|
10
|
-
*/
|
|
11
|
-
headers?: Record<string, string>;
|
|
12
|
-
/**
|
|
13
|
-
* delay the associated reply by a set amount in ms
|
|
14
|
-
*/
|
|
15
|
-
delay?: number;
|
|
16
|
-
/**
|
|
17
|
-
* any matching request will always reply with the defined response indefinitely
|
|
18
|
-
*/
|
|
19
|
-
persist?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* any matching request will reply with the defined response a fixed amount of times
|
|
22
|
-
*/
|
|
23
|
-
repeats?: number;
|
|
24
|
-
}
|
|
25
|
-
export type ResultObject = MockResultOptions;
|
|
26
|
-
export interface MockResponseCallbackOptions {
|
|
27
|
-
path: string;
|
|
28
|
-
method: string;
|
|
29
|
-
headers?: Headers | Record<string, string>;
|
|
30
|
-
origin?: string;
|
|
31
|
-
body?: BodyInit | Dispatcher.DispatchOptions['body'] | null;
|
|
32
|
-
maxRedirections?: number;
|
|
33
|
-
}
|
|
34
|
-
export type MockResultFunction = (url: string, options: MockResponseCallbackOptions) => MockResultOptions | string;
|
|
35
|
-
export declare function createMockHttpClient(app: any): (mockUrl: string | RegExp, mockMethod: string | string[] | MockResultOptions | MockResultFunction, mockResult?: MockResultOptions | MockResultFunction | string) => void;
|
|
36
|
-
export type MockHttpClientMethod = ReturnType<typeof createMockHttpClient>;
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { mm } from 'mm';
|
|
2
|
-
import { extend } from 'extend2';
|
|
3
|
-
import { getMockAgent } from './mock_agent.js';
|
|
4
|
-
function normalizeResult(result) {
|
|
5
|
-
if (typeof result === 'string') {
|
|
6
|
-
result = { data: result };
|
|
7
|
-
}
|
|
8
|
-
if (!result.status) {
|
|
9
|
-
result.status = 200;
|
|
10
|
-
}
|
|
11
|
-
result.data = result.data || '';
|
|
12
|
-
if (Buffer.isBuffer(result.data)) {
|
|
13
|
-
// do nothing
|
|
14
|
-
}
|
|
15
|
-
else if (typeof result.data === 'object') {
|
|
16
|
-
// json
|
|
17
|
-
result.data = Buffer.from(JSON.stringify(result.data));
|
|
18
|
-
}
|
|
19
|
-
else if (typeof result.data === 'string') {
|
|
20
|
-
// string
|
|
21
|
-
result.data = Buffer.from(result.data);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
throw new Error('`mockResult.data` must be buffer, string or json');
|
|
25
|
-
}
|
|
26
|
-
result.headers = result.headers ?? {};
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
const MOCK_CONFIGS = Symbol('MOCK_CONFIGS');
|
|
30
|
-
const MOCK_CONFIG_INDEX = Symbol('MOCK_CONFIG_INDEX');
|
|
31
|
-
export function createMockHttpClient(app) {
|
|
32
|
-
/**
|
|
33
|
-
* mock httpclient
|
|
34
|
-
* @function mockHttpclient
|
|
35
|
-
* @param {String} mockUrl - url
|
|
36
|
-
* @param {String|Array} mockMethod - http method, default is '*'
|
|
37
|
-
* @param {Object|Function} mockResult - you data
|
|
38
|
-
* - data - buffer / string / json
|
|
39
|
-
* - status - http status
|
|
40
|
-
* - headers - response header
|
|
41
|
-
* - delay - delay the associated reply by a set amount in ms.
|
|
42
|
-
* - persist - any matching request will always reply with the defined response indefinitely, default is true
|
|
43
|
-
* - repeats - number, any matching request will reply with the defined response a fixed amount of times
|
|
44
|
-
*/
|
|
45
|
-
return function mockHttpClient(mockUrl, mockMethod, mockResult) {
|
|
46
|
-
let mockMethods = mockMethod;
|
|
47
|
-
if (!mockResult) {
|
|
48
|
-
// app.mockHttpclient(mockUrl, mockResult)
|
|
49
|
-
mockResult = mockMethod;
|
|
50
|
-
mockMethods = ['*'];
|
|
51
|
-
}
|
|
52
|
-
if (!Array.isArray(mockMethods)) {
|
|
53
|
-
mockMethods = [mockMethods];
|
|
54
|
-
}
|
|
55
|
-
mockMethods = mockMethods.map(method => (method || 'GET').toUpperCase());
|
|
56
|
-
// use MockAgent on undici
|
|
57
|
-
let mockConfigs = app[MOCK_CONFIGS];
|
|
58
|
-
if (!mockConfigs) {
|
|
59
|
-
mockConfigs = [];
|
|
60
|
-
mm(app, MOCK_CONFIGS, mockConfigs);
|
|
61
|
-
}
|
|
62
|
-
let mockConfigIndex = -1;
|
|
63
|
-
let origin = mockUrl;
|
|
64
|
-
let originMethod;
|
|
65
|
-
const pathname = mockUrl;
|
|
66
|
-
let pathMethod;
|
|
67
|
-
if (typeof mockUrl === 'string') {
|
|
68
|
-
const urlObject = new URL(mockUrl);
|
|
69
|
-
origin = urlObject.origin;
|
|
70
|
-
const originalPathname = urlObject.pathname;
|
|
71
|
-
pathMethod = path => {
|
|
72
|
-
if (path === originalPathname)
|
|
73
|
-
return true;
|
|
74
|
-
// should match /foo?a=1 including query
|
|
75
|
-
if (path.includes('?'))
|
|
76
|
-
return path.startsWith(originalPathname);
|
|
77
|
-
return false;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
else if (mockUrl instanceof RegExp) {
|
|
81
|
-
let requestOrigin = '';
|
|
82
|
-
originMethod = value => {
|
|
83
|
-
requestOrigin = value;
|
|
84
|
-
return true;
|
|
85
|
-
};
|
|
86
|
-
pathMethod = path => {
|
|
87
|
-
for (const config of mockConfigs) {
|
|
88
|
-
if (config.mockUrl.test(`${requestOrigin}${path}`)) {
|
|
89
|
-
mm(app, MOCK_CONFIG_INDEX, config.mockConfigIndex);
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return false;
|
|
94
|
-
};
|
|
95
|
-
mockConfigIndex = mockConfigs.length;
|
|
96
|
-
mockConfigs.push({ mockUrl, mockResult, mockConfigIndex });
|
|
97
|
-
}
|
|
98
|
-
const mockPool = originMethod
|
|
99
|
-
? getMockAgent(app).get(originMethod)
|
|
100
|
-
: getMockAgent(app).get(originMethod ?? origin);
|
|
101
|
-
// persist default is true
|
|
102
|
-
let persist = true;
|
|
103
|
-
if (typeof mockResult === 'object' && typeof mockResult.persist === 'boolean') {
|
|
104
|
-
persist = mockResult.persist;
|
|
105
|
-
}
|
|
106
|
-
mockMethods.forEach(function (method) {
|
|
107
|
-
const mockScope = mockPool.intercept({
|
|
108
|
-
path: pathMethod ?? pathname,
|
|
109
|
-
method: method === '*' ? () => true : method,
|
|
110
|
-
}).reply(options => {
|
|
111
|
-
// not support mockResult as an async function
|
|
112
|
-
const requestUrl = `${options.origin}${options.path}`;
|
|
113
|
-
let mockRequestResult;
|
|
114
|
-
if (mockConfigIndex >= 0) {
|
|
115
|
-
mockResult = mockConfigs[app[MOCK_CONFIG_INDEX]].mockResult;
|
|
116
|
-
mockRequestResult = typeof mockResult === 'function' ? mockResult(requestUrl, options) : mockResult;
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
mockRequestResult = typeof mockResult === 'function' ? mockResult(requestUrl, options) : mockResult;
|
|
120
|
-
}
|
|
121
|
-
const result = extend(true, {}, normalizeResult(mockRequestResult));
|
|
122
|
-
return {
|
|
123
|
-
statusCode: result.status,
|
|
124
|
-
data: result.data,
|
|
125
|
-
responseOptions: {
|
|
126
|
-
headers: result.headers,
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
});
|
|
130
|
-
if (typeof mockResult === 'object') {
|
|
131
|
-
if (mockResult.delay && mockResult.delay > 0) {
|
|
132
|
-
mockScope.delay(mockResult.delay);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (persist) {
|
|
136
|
-
mockScope.persist();
|
|
137
|
-
}
|
|
138
|
-
else if (typeof mockResult === 'object' && mockResult.repeats && mockResult.repeats > 0) {
|
|
139
|
-
mockScope.times(mockResult.repeats);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja19odHRwY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9tb2NrX2h0dHBjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUN4QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXdDL0MsU0FBUyxlQUFlLENBQUMsTUFBa0M7SUFDekQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMvQixNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDaEMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2pDLGFBQWE7SUFDZixDQUFDO1NBQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0MsT0FBTztRQUNQLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7U0FBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxTQUFTO1FBQ1QsTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FB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
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Base } from 'sdk-base';
|
|
2
|
-
import type { EggCore } from '@eggjs/core';
|
|
3
|
-
import { MockOptions, MockApplicationOptions } from '../types.js';
|
|
4
|
-
import { APP_INIT } from './util.js';
|
|
5
|
-
export declare class MockAgent extends Base {
|
|
6
|
-
#private;
|
|
7
|
-
options: MockApplicationOptions;
|
|
8
|
-
baseDir: string;
|
|
9
|
-
[APP_INIT]: boolean;
|
|
10
|
-
_instance: EggCore;
|
|
11
|
-
constructor(options: MockApplicationOptions);
|
|
12
|
-
_init(): Promise<void>;
|
|
13
|
-
on(...args: any[]): this;
|
|
14
|
-
once(...args: any[]): this;
|
|
15
|
-
/**
|
|
16
|
-
* close agent
|
|
17
|
-
*/
|
|
18
|
-
_close(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
export declare function createAgent(options: MockOptions): MockAgent;
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { Base } from 'sdk-base';
|
|
4
|
-
import { detectPort } from 'detect-port';
|
|
5
|
-
import { importModule } from '@eggjs/utils';
|
|
6
|
-
import { context } from '../context.js';
|
|
7
|
-
import { formatOptions } from '../format_options.js';
|
|
8
|
-
import { sleep, rimraf } from '../utils.js';
|
|
9
|
-
import { setCustomLoader } from '../mock_custom_loader.js';
|
|
10
|
-
import { APP_INIT } from './util.js';
|
|
11
|
-
const debug = debuglog('@eggjs/mock/lib/parallel/agent');
|
|
12
|
-
export class MockAgent extends Base {
|
|
13
|
-
baseDir;
|
|
14
|
-
[APP_INIT] = false;
|
|
15
|
-
#initOnListeners = new Set();
|
|
16
|
-
#initOnceListeners = new Set();
|
|
17
|
-
_instance;
|
|
18
|
-
constructor(options) {
|
|
19
|
-
super({ initMethod: '_init' });
|
|
20
|
-
this.options = options;
|
|
21
|
-
this.baseDir = this.options.baseDir;
|
|
22
|
-
}
|
|
23
|
-
async _init() {
|
|
24
|
-
if (this.options.beforeInit) {
|
|
25
|
-
await this.options.beforeInit(this);
|
|
26
|
-
delete this.options.beforeInit;
|
|
27
|
-
}
|
|
28
|
-
if (this.options.clean !== false) {
|
|
29
|
-
const logDir = path.join(this.options.baseDir, 'logs');
|
|
30
|
-
try {
|
|
31
|
-
await rimraf(logDir);
|
|
32
|
-
}
|
|
33
|
-
catch (err) {
|
|
34
|
-
console.error(`remove log dir ${logDir} failed: ${err.stack}`);
|
|
35
|
-
}
|
|
36
|
-
const runDir = path.join(this.options.baseDir, 'run');
|
|
37
|
-
try {
|
|
38
|
-
await rimraf(runDir);
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
console.error(`remove run dir ${runDir} failed: ${err.stack}`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
this.options.clusterPort = await detectPort();
|
|
45
|
-
process.env.CLUSTER_PORT = String(this.options.clusterPort);
|
|
46
|
-
debug('get clusterPort %s', this.options.clusterPort);
|
|
47
|
-
const { Agent } = await importModule(this.options.framework);
|
|
48
|
-
const agent = this._instance = new Agent({ ...this.options });
|
|
49
|
-
// egg-mock plugin need to override egg context
|
|
50
|
-
Object.assign(agent.context, context);
|
|
51
|
-
setCustomLoader(agent);
|
|
52
|
-
debug('agent instantiate');
|
|
53
|
-
this[APP_INIT] = true;
|
|
54
|
-
debug('this[APP_INIT] = true');
|
|
55
|
-
this.#bindEvents();
|
|
56
|
-
await agent.ready();
|
|
57
|
-
const msg = {
|
|
58
|
-
action: 'egg-ready',
|
|
59
|
-
data: this.options,
|
|
60
|
-
};
|
|
61
|
-
agent.messenger.onMessage(msg);
|
|
62
|
-
debug('agent ready');
|
|
63
|
-
}
|
|
64
|
-
#bindEvents() {
|
|
65
|
-
debug('bind cache events to agent');
|
|
66
|
-
for (const args of this.#initOnListeners) {
|
|
67
|
-
debug('on(%s), use cache and pass to agent', args);
|
|
68
|
-
this._instance.on(args[0], args[1]);
|
|
69
|
-
this.removeListener(args[0], args[1]);
|
|
70
|
-
}
|
|
71
|
-
for (const args of this.#initOnceListeners) {
|
|
72
|
-
debug('once(%s), use cache and pass to agent', args);
|
|
73
|
-
this._instance.once(args[0], args[1]);
|
|
74
|
-
this.removeListener(args[0], args[1]);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
on(...args) {
|
|
78
|
-
if (this[APP_INIT]) {
|
|
79
|
-
debug('on(%s), pass to agent', args);
|
|
80
|
-
this._instance.on(args[0], args[1]);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
debug('on(%s), cache it because agent has not init', args);
|
|
84
|
-
this.#initOnListeners.add(args);
|
|
85
|
-
super.on(args[0], args[1]);
|
|
86
|
-
}
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
once(...args) {
|
|
90
|
-
if (this[APP_INIT]) {
|
|
91
|
-
debug('once(%s), pass to agent', args);
|
|
92
|
-
this._instance.once(args[0], args[1]);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
debug('once(%s), cache it because agent has not init', args);
|
|
96
|
-
this.#initOnceListeners.add(args);
|
|
97
|
-
super.on(args[0], args[1]);
|
|
98
|
-
}
|
|
99
|
-
return this;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* close agent
|
|
103
|
-
*/
|
|
104
|
-
async _close() {
|
|
105
|
-
if (this._instance) {
|
|
106
|
-
await this._instance.close();
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
// when agent init throws an exception, must wait for agent quit gracefully
|
|
110
|
-
await sleep(200);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
export function createAgent(options) {
|
|
115
|
-
return new MockAgent(formatOptions(options));
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BhcmFsbGVsL2FnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBRXpELE1BQU0sT0FBTyxTQUFVLFNBQVEsSUFBSTtJQUVqQyxPQUFPLENBQVM7SUFDaEIsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQztJQUNwQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3RDLFNBQVMsQ0FBVTtJQUVuQixZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9B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
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Base } from 'sdk-base';
|
|
2
|
-
import type { EggCore } from '@eggjs/core';
|
|
3
|
-
import { MockOptions, MockApplicationOptions } from '../types.js';
|
|
4
|
-
import { APP_INIT } from './util.js';
|
|
5
|
-
export declare class MockParallelApplication extends Base {
|
|
6
|
-
#private;
|
|
7
|
-
options: MockApplicationOptions;
|
|
8
|
-
baseDir: string;
|
|
9
|
-
[APP_INIT]: boolean;
|
|
10
|
-
_instance: EggCore;
|
|
11
|
-
constructor(options: MockApplicationOptions);
|
|
12
|
-
_init(): Promise<void>;
|
|
13
|
-
on(...args: any[]): this;
|
|
14
|
-
once(...args: any[]): this;
|
|
15
|
-
/**
|
|
16
|
-
* close app
|
|
17
|
-
*/
|
|
18
|
-
_close(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
export declare function createApp(initOptions: MockOptions): any;
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import { Base } from 'sdk-base';
|
|
3
|
-
import { importModule } from '@eggjs/utils';
|
|
4
|
-
import { context } from '../context.js';
|
|
5
|
-
import { formatOptions } from '../format_options.js';
|
|
6
|
-
import { sleep } from '../utils.js';
|
|
7
|
-
import { setCustomLoader } from '../mock_custom_loader.js';
|
|
8
|
-
import { createServer } from '../mock_http_server.js';
|
|
9
|
-
import { proxyApp, APP_INIT } from './util.js';
|
|
10
|
-
const debug = debuglog('@eggjs/mock/lib/parallel/app');
|
|
11
|
-
export class MockParallelApplication extends Base {
|
|
12
|
-
baseDir;
|
|
13
|
-
[APP_INIT] = false;
|
|
14
|
-
#initOnListeners = new Set();
|
|
15
|
-
#initOnceListeners = new Set();
|
|
16
|
-
_instance;
|
|
17
|
-
constructor(options) {
|
|
18
|
-
super({ initMethod: '_init' });
|
|
19
|
-
this.options = options;
|
|
20
|
-
this.baseDir = options.baseDir;
|
|
21
|
-
}
|
|
22
|
-
async _init() {
|
|
23
|
-
if (this.options.beforeInit) {
|
|
24
|
-
await this.options.beforeInit(this);
|
|
25
|
-
delete this.options.beforeInit;
|
|
26
|
-
}
|
|
27
|
-
if (!this.options.clusterPort) {
|
|
28
|
-
this.options.clusterPort = parseInt(process.env.CLUSTER_PORT);
|
|
29
|
-
}
|
|
30
|
-
if (!this.options.clusterPort) {
|
|
31
|
-
throw new Error('cannot get env.CLUSTER_PORT, parallel run fail');
|
|
32
|
-
}
|
|
33
|
-
debug('get clusterPort %s', this.options.clusterPort);
|
|
34
|
-
const { Application } = await importModule(this.options.framework);
|
|
35
|
-
const app = this._instance = new Application({ ...this.options });
|
|
36
|
-
// egg-mock plugin need to override egg context
|
|
37
|
-
Object.assign(app.context, context);
|
|
38
|
-
setCustomLoader(app);
|
|
39
|
-
debug('app instantiate');
|
|
40
|
-
this[APP_INIT] = true;
|
|
41
|
-
debug('this[APP_INIT] = true');
|
|
42
|
-
this.#bindEvents();
|
|
43
|
-
debug('http server instantiate');
|
|
44
|
-
createServer(app);
|
|
45
|
-
await app.ready();
|
|
46
|
-
const msg = {
|
|
47
|
-
action: 'egg-ready',
|
|
48
|
-
data: this.options,
|
|
49
|
-
};
|
|
50
|
-
app.messenger.onMessage(msg);
|
|
51
|
-
debug('app ready');
|
|
52
|
-
}
|
|
53
|
-
#bindEvents() {
|
|
54
|
-
for (const args of this.#initOnListeners) {
|
|
55
|
-
debug('on(%s), use cache and pass to app', args);
|
|
56
|
-
this._instance.on(args[0], args[1]);
|
|
57
|
-
this.removeListener(args[0], args[1]);
|
|
58
|
-
}
|
|
59
|
-
for (const args of this.#initOnceListeners) {
|
|
60
|
-
debug('once(%s), use cache and pass to app', args);
|
|
61
|
-
this._instance.once(args[0], args[1]);
|
|
62
|
-
this.removeListener(args[0], args[1]);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
on(...args) {
|
|
66
|
-
if (this[APP_INIT]) {
|
|
67
|
-
debug('on(%s), pass to app', args);
|
|
68
|
-
this._instance.on(args[0], args[1]);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
debug('on(%s), cache it because app has not init', args);
|
|
72
|
-
if (this.#initOnListeners) {
|
|
73
|
-
this.#initOnListeners.add(args);
|
|
74
|
-
}
|
|
75
|
-
super.on(args[0], args[1]);
|
|
76
|
-
}
|
|
77
|
-
return this;
|
|
78
|
-
}
|
|
79
|
-
once(...args) {
|
|
80
|
-
if (this[APP_INIT]) {
|
|
81
|
-
debug('once(%s), pass to app', args);
|
|
82
|
-
this._instance.once(args[0], args[1]);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
debug('once(%s), cache it because app has not init', args);
|
|
86
|
-
if (this.#initOnceListeners) {
|
|
87
|
-
this.#initOnceListeners.add(args);
|
|
88
|
-
}
|
|
89
|
-
super.on(args[0], args[1]);
|
|
90
|
-
}
|
|
91
|
-
return this;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* close app
|
|
95
|
-
*/
|
|
96
|
-
async _close() {
|
|
97
|
-
if (this._instance) {
|
|
98
|
-
await this._instance.close();
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
// when app init throws an exception, must wait for app quit gracefully
|
|
102
|
-
await sleep(200);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
export function createApp(initOptions) {
|
|
107
|
-
const app = new MockParallelApplication(formatOptions(initOptions));
|
|
108
|
-
return proxyApp(app);
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wYXJhbGxlbC9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRS9DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRXZELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxJQUFJO0lBRS9DLE9BQU8sQ0FBUztJQUNoQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuQixnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDO0lBQ3BDLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFTLENBQUM7SUFDdEMsU0FBUyxDQUFVO0lBRW5CLFlBQVksT0FBK0I7UUFDekMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENB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
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import { getProperty } from '../utils.js';
|
|
3
|
-
const debug = debuglog('@eggjs/mock/lib/parallel/util');
|
|
4
|
-
export const MOCK_APP_METHOD = [
|
|
5
|
-
'ready',
|
|
6
|
-
'isClosed',
|
|
7
|
-
'closed',
|
|
8
|
-
'close',
|
|
9
|
-
'on',
|
|
10
|
-
'once',
|
|
11
|
-
];
|
|
12
|
-
export const APP_INIT = Symbol('appInit');
|
|
13
|
-
export function proxyApp(app) {
|
|
14
|
-
const proxyApp = new Proxy(app, {
|
|
15
|
-
get(target, prop) {
|
|
16
|
-
// don't delegate properties on MockAgent
|
|
17
|
-
if (MOCK_APP_METHOD.includes(prop)) {
|
|
18
|
-
return getProperty(target, prop);
|
|
19
|
-
}
|
|
20
|
-
if (!target[APP_INIT])
|
|
21
|
-
throw new Error(`can't get ${prop} before ready`);
|
|
22
|
-
// it's asynchronous when agent and app are loading,
|
|
23
|
-
// so should get the properties after loader ready
|
|
24
|
-
debug('proxy handler.get %s', prop);
|
|
25
|
-
return target._instance[prop];
|
|
26
|
-
},
|
|
27
|
-
set(target, prop, value) {
|
|
28
|
-
if (MOCK_APP_METHOD.includes(prop))
|
|
29
|
-
return true;
|
|
30
|
-
if (!target[APP_INIT])
|
|
31
|
-
throw new Error(`can't set ${prop} before ready`);
|
|
32
|
-
debug('proxy handler.set %s', prop);
|
|
33
|
-
target._instance[prop] = value;
|
|
34
|
-
return true;
|
|
35
|
-
},
|
|
36
|
-
defineProperty(target, prop, descriptor) {
|
|
37
|
-
// can't define properties on MockAgent
|
|
38
|
-
if (MOCK_APP_METHOD.includes(prop))
|
|
39
|
-
return true;
|
|
40
|
-
if (!target[APP_INIT])
|
|
41
|
-
throw new Error(`can't defineProperty ${prop} before ready`);
|
|
42
|
-
debug('proxy handler.defineProperty %s', prop);
|
|
43
|
-
Object.defineProperty(target._instance, prop, descriptor);
|
|
44
|
-
return true;
|
|
45
|
-
},
|
|
46
|
-
deleteProperty(target, prop) {
|
|
47
|
-
// can't delete properties on MockAgent
|
|
48
|
-
if (MOCK_APP_METHOD.includes(prop))
|
|
49
|
-
return true;
|
|
50
|
-
if (!target[APP_INIT])
|
|
51
|
-
throw new Error(`can't delete ${prop} before ready`);
|
|
52
|
-
debug('proxy handler.deleteProperty %s', prop);
|
|
53
|
-
delete target._instance[prop];
|
|
54
|
-
return true;
|
|
55
|
-
},
|
|
56
|
-
getOwnPropertyDescriptor(target, prop) {
|
|
57
|
-
if (MOCK_APP_METHOD.includes(prop))
|
|
58
|
-
return Object.getOwnPropertyDescriptor(target, prop);
|
|
59
|
-
if (!target[APP_INIT])
|
|
60
|
-
throw new Error(`can't getOwnPropertyDescriptor ${prop} before ready`);
|
|
61
|
-
debug('proxy handler.getOwnPropertyDescriptor %s', prop);
|
|
62
|
-
return Object.getOwnPropertyDescriptor(target._instance, prop);
|
|
63
|
-
},
|
|
64
|
-
getPrototypeOf(target) {
|
|
65
|
-
if (!target[APP_INIT])
|
|
66
|
-
throw new Error('can\'t getPrototypeOf before ready');
|
|
67
|
-
debug('proxy handler.getPrototypeOf %s');
|
|
68
|
-
return Object.getPrototypeOf(target._instance);
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
return proxyApp;
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcGFyYWxsZWwvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE9BQU87SUFDUCxVQUFVO0lBQ1YsUUFBUTtJQUNSLE9BQU87SUFDUCxJQUFJO0lBQ0osTUFBTTtDQUNQLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDOUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFZO1lBQ3RCLHlDQUF5QztZQUN6QyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxlQUFlLENBQUMsQ0FBQztZQUN6RSxvREFBb0Q7WUFDcEQsa0RBQWtEO1lBQ2xELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBWSxFQUFFLEtBQUs7WUFDN0IsSUFBSSxl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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// const debug = require('util').debuglog('egg-mock/prerequire');
|
|
2
|
-
// const path = require('path');
|
|
3
|
-
// const { existsSync } = require('fs');
|
|
4
|
-
// const globby = require('globby');
|
|
5
|
-
export {};
|
|
6
|
-
// const cwd = process.cwd();
|
|
7
|
-
// const dirs = [];
|
|
8
|
-
// if (existsSync(path.join(cwd, 'app'))) {
|
|
9
|
-
// dirs.push('app/**/*.js');
|
|
10
|
-
// }
|
|
11
|
-
// // avoid Error: ENOENT: no such file or directory, scandir
|
|
12
|
-
// if (existsSync(path.join(cwd, 'config'))) {
|
|
13
|
-
// dirs.push('config/**/*.js');
|
|
14
|
-
// }
|
|
15
|
-
// const files = globby.sync(dirs, { cwd });
|
|
16
|
-
// for (const file of files) {
|
|
17
|
-
// const filepath = path.join(cwd, file);
|
|
18
|
-
// try {
|
|
19
|
-
// debug('%s prerequire %s', process.pid, filepath);
|
|
20
|
-
// require(filepath);
|
|
21
|
-
// } catch (err) {
|
|
22
|
-
// debug('prerequire error %s', err.message);
|
|
23
|
-
// }
|
|
24
|
-
// }
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVxdWlyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcHJlcmVxdWlyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpRUFBaUU7QUFDakUsZ0NBQWdDO0FBQ2hDLHdDQUF3QztBQUN4QyxvQ0FBb0M7O0FBRXBDLDZCQUE2QjtBQUM3QixtQkFBbUI7QUFDbkIsMkNBQTJDO0FBQzNDLDhCQUE4QjtBQUM5QixJQUFJO0FBQ0osNkRBQTZEO0FBQzdELDhDQUE4QztBQUM5QyxpQ0FBaUM7QUFDakMsSUFBSTtBQUNKLDRDQUE0QztBQUU1Qyw4QkFBOEI7QUFDOUIsMkNBQTJDO0FBQzNDLFVBQVU7QUFDVix3REFBd0Q7QUFDeEQseUJBQXlCO0FBQ3pCLG9CQUFvQjtBQUNwQixpREFBaUQ7QUFDakQsTUFBTTtBQUNOLElBQUkifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|