1
+ import type { LibraryFormats , LibraryOptions } from '../build'
1
2
import { resolveLibFilename } from '../build'
2
3
import { resolve } from 'path'
3
4
5
+ type FormatsToFileNames = [ LibraryFormats , string ] [ ]
6
+ const baseLibOptions : LibraryOptions = {
7
+ fileName : 'my-lib' ,
8
+ entry : 'mylib.js'
9
+ }
10
+
4
11
describe ( 'resolveLibFilename' , ( ) => {
5
12
test ( 'custom filename function' , ( ) => {
6
13
const filename = resolveLibFilename (
@@ -25,7 +32,7 @@ describe('resolveLibFilename', () => {
25
32
resolve ( __dirname , 'packages/name' )
26
33
)
27
34
28
- expect ( filename ) . toBe ( 'custom-filename.es.js ' )
35
+ expect ( filename ) . toBe ( 'custom-filename.es.mjs ' )
29
36
} )
30
37
31
38
test ( 'package name as filename' , ( ) => {
@@ -37,7 +44,7 @@ describe('resolveLibFilename', () => {
37
44
resolve ( __dirname , 'packages/name' )
38
45
)
39
46
40
- expect ( filename ) . toBe ( 'mylib.es.js ' )
47
+ expect ( filename ) . toBe ( 'mylib.es.mjs ' )
41
48
} )
42
49
43
50
test ( 'custom filename and no package name' , ( ) => {
@@ -50,7 +57,7 @@ describe('resolveLibFilename', () => {
50
57
resolve ( __dirname , 'packages/noname' )
51
58
)
52
59
53
- expect ( filename ) . toBe ( 'custom-filename.es.js ' )
60
+ expect ( filename ) . toBe ( 'custom-filename.es.mjs ' )
54
61
} )
55
62
56
63
test ( 'missing filename' , ( ) => {
@@ -64,4 +71,42 @@ describe('resolveLibFilename', () => {
64
71
)
65
72
} ) . toThrow ( )
66
73
} )
74
+
75
+ test ( 'commonjs package extensions' , ( ) => {
76
+ const formatsToFilenames : FormatsToFileNames = [
77
+ [ 'es' , 'my-lib.es.mjs' ] ,
78
+ [ 'umd' , 'my-lib.umd.js' ] ,
79
+ [ 'cjs' , 'my-lib.cjs.js' ] ,
80
+ [ 'iife' , 'my-lib.iife.js' ]
81
+ ]
82
+
83
+ for ( const [ format , expectedFilename ] of formatsToFilenames ) {
84
+ const filename = resolveLibFilename (
85
+ baseLibOptions ,
86
+ format ,
87
+ resolve ( __dirname , 'packages/noname' )
88
+ )
89
+
90
+ expect ( filename ) . toBe ( expectedFilename )
91
+ }
92
+ } )
93
+
94
+ test ( 'module package extensions' , ( ) => {
95
+ const formatsToFilenames : FormatsToFileNames = [
96
+ [ 'es' , 'my-lib.es.js' ] ,
97
+ [ 'umd' , 'my-lib.umd.cjs' ] ,
98
+ [ 'cjs' , 'my-lib.cjs.cjs' ] ,
99
+ [ 'iife' , 'my-lib.iife.js' ]
100
+ ]
101
+
102
+ for ( const [ format , expectedFilename ] of formatsToFilenames ) {
103
+ const filename = resolveLibFilename (
104
+ baseLibOptions ,
105
+ format ,
106
+ resolve ( __dirname , 'packages/module' )
107
+ )
108
+
109
+ expect ( filename ) . toBe ( expectedFilename )
110
+ }
111
+ } )
67
112
} )
0 commit comments