File tree 2 files changed +23
-1
lines changed
2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -211,6 +211,15 @@ module.exports = class Application extends Emitter {
211
211
const msg = err . stack || err . toString ( ) ;
212
212
console . error ( `\n${ msg . replace ( / ^ / gm, ' ' ) } \n` ) ;
213
213
}
214
+
215
+ /**
216
+ * Help TS users comply to CommonJS, ESM, bundler mismatch.
217
+ * @see https://github.com/koajs/koa/issues/1513
218
+ */
219
+
220
+ static get default ( ) {
221
+ return Application ;
222
+ }
214
223
} ;
215
224
216
225
/**
Original file line number Diff line number Diff line change @@ -28,9 +28,22 @@ describe('Load with esm', () => {
28
28
for ( const k of [ 'prototype' , 'length' , 'name' ] ) {
29
29
required . delete ( k ) ;
30
30
}
31
- exported . delete ( 'default' ) ;
31
+
32
+ // Commented out to "fix" CommonJS, ESM, bundling issue.
33
+ // @see https://github.com/koajs/koa/issues/1513
34
+ // exported.delete('default');
32
35
33
36
assert . strictEqual ( exported . size , required . size ) ;
34
37
assert . strictEqual ( [ ...exported ] . every ( property => required . has ( property ) ) , true ) ;
35
38
} ) ;
39
+
40
+ it ( 'CommonJS exports default property' , async ( ) => {
41
+ const required = require ( '../' ) ;
42
+ assert . strictEqual ( required . hasOwnProperty ( 'default' ) , true ) ;
43
+ } ) ;
44
+
45
+ it ( 'CommonJS exports default property referencing self' , async ( ) => {
46
+ const required = require ( '../' ) ;
47
+ assert . strictEqual ( required . default , required ) ;
48
+ } ) ;
36
49
} ) ;
You can’t perform that action at this time.
0 commit comments