@@ -14,10 +14,12 @@ const parseArgs = () => {
14
14
} ;
15
15
16
16
const shimContent = ( target , pkg ) => {
17
- const suffix = target . split ( "." ) . slice ( - 2 ) . join ( "." ) ;
17
+ const deprecated = target . deprecated ?? true ;
18
+ const file = target . file ;
19
+ const suffix = file . split ( "." ) . slice ( - 2 ) . join ( "." ) ;
18
20
const deprecationMessage = ( original , replacement ) => {
19
21
return (
20
- `DEPRECATED(${ pkg } ): "${ target } " will be moved to "@ruby/wasm-wasi" in the next major release.\n` +
22
+ `DEPRECATED(${ pkg } ): "${ file } " will be moved to "@ruby/wasm-wasi" in the next major release.\n` +
21
23
`Please replace your \\\`${ original } \\\` with \\\`${ replacement } \\\``
22
24
) ;
23
25
} ;
@@ -26,28 +28,28 @@ const shimContent = (target, pkg) => {
26
28
let newImport = "" ;
27
29
switch ( suffix ) {
28
30
case "cjs.js" :
29
- originalImport = `require('${ pkg } /dist/${ target } ');` ;
30
- newImport = `require('@ruby/wasm-wasi/dist/${ target } ');` ;
31
+ originalImport = `require('${ pkg } /dist/${ file } ');` ;
32
+ newImport = `require('@ruby/wasm-wasi/dist/${ file } ');` ;
31
33
break ;
32
34
case "umd.js" :
33
- originalImport = `require('${ pkg } /dist/${ target } ');` ;
34
- newImport = `require('@ruby/wasm-wasi/dist/${ target } ');` ;
35
+ originalImport = `require('${ pkg } /dist/${ file } ');` ;
36
+ newImport = `require('@ruby/wasm-wasi/dist/${ file } ');` ;
35
37
break ;
36
38
case "d.ts" :
37
39
case "esm.js" :
38
- originalImport = `import * from '${ pkg } /dist/${ target } ';` ;
39
- newImport = `import * from '@ruby/wasm-wasi/dist/${ target } ';` ;
40
+ originalImport = `import * from '${ pkg } /dist/${ file } ';` ;
41
+ newImport = `import * from '@ruby/wasm-wasi/dist/${ file } ';` ;
40
42
break ;
41
43
default :
42
- throw new Error ( `Unknown suffix: ${ suffix } for target ${ target } ` ) ;
44
+ throw new Error ( `Unknown suffix: ${ suffix } for target ${ file } ` ) ;
43
45
}
44
46
45
47
const dirname = path . dirname ( new URL ( import . meta. url ) . pathname ) ;
46
48
const content = fs . readFileSync (
47
- path . join ( dirname , ".." , "dist" , target ) ,
49
+ path . join ( dirname , ".." , "dist" , file ) ,
48
50
"utf-8" ,
49
51
) ;
50
- if ( suffix === "d.ts" ) {
52
+ if ( suffix === "d.ts" || ! deprecated ) {
51
53
return content ;
52
54
}
53
55
const deprecation =
@@ -57,23 +59,27 @@ const shimContent = (target, pkg) => {
57
59
58
60
const main = ( ) => {
59
61
const targets = [
60
- "bindgen/rb-abi-guest.d.ts" ,
61
- "bindgen/rb-js-abi-host.d.ts" ,
62
- "browser.cjs.js" ,
63
- "browser.d.ts" ,
64
- "browser.esm.js" ,
65
- "browser.script.cjs.js" ,
66
- "browser.script.d.ts" ,
67
- "browser.script.esm.js" ,
68
- "browser.script.umd.js" ,
69
- "browser.umd.js" ,
70
- "index.cjs.js" ,
71
- "index.d.ts" ,
72
- "index.esm.js" ,
73
- "index.umd.js" ,
74
- "node.cjs.js" ,
75
- "node.d.ts" ,
76
- "node.esm.js" ,
62
+ { file : "bindgen/rb-abi-guest.d.ts" } ,
63
+ { file : "bindgen/rb-js-abi-host.d.ts" } ,
64
+ { file : "browser.cjs.js" } ,
65
+ { file : "browser.d.ts" } ,
66
+ // They can be used by dynamic-import or <script> tag in browser
67
+ // and there is no easy way to replace them with `@ruby/wasm-wasi`
68
+ // so we don't deprecate them at this moment.
69
+ { file : "browser.esm.js" , deprecated : false } ,
70
+ { file : "browser.umd.js" , deprecated : false } ,
71
+
72
+ { file : "browser.script.cjs.js" } ,
73
+ { file : "browser.script.d.ts" } ,
74
+ { file : "browser.script.esm.js" } ,
75
+ { file : "browser.script.umd.js" } ,
76
+ { file : "index.cjs.js" } ,
77
+ { file : "index.d.ts" } ,
78
+ { file : "index.esm.js" } ,
79
+ { file : "index.umd.js" } ,
80
+ { file : "node.cjs.js" } ,
81
+ { file : "node.d.ts" } ,
82
+ { file : "node.esm.js" }
77
83
] ;
78
84
79
85
const options = parseArgs ( ) ;
@@ -84,7 +90,7 @@ const main = () => {
84
90
85
91
for ( const target of targets ) {
86
92
const shimmed = shimContent ( target , pkg ) ;
87
- const distPath = path . join ( dist , target ) ;
93
+ const distPath = path . join ( dist , target . file ) ;
88
94
fs . mkdirSync ( path . dirname ( distPath ) , { recursive : true } ) ;
89
95
fs . writeFileSync ( distPath , shimmed ) ;
90
96
}
0 commit comments