@@ -14,10 +14,12 @@ const parseArgs = () => {
1414} ;
1515
1616const 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 ( "." ) ;
1820 const deprecationMessage = ( original , replacement ) => {
1921 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` +
2123 `Please replace your \\\`${ original } \\\` with \\\`${ replacement } \\\``
2224 ) ;
2325 } ;
@@ -26,28 +28,28 @@ const shimContent = (target, pkg) => {
2628 let newImport = "" ;
2729 switch ( suffix ) {
2830 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 } ');` ;
3133 break ;
3234 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 } ');` ;
3537 break ;
3638 case "d.ts" :
3739 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 } ';` ;
4042 break ;
4143 default :
42- throw new Error ( `Unknown suffix: ${ suffix } for target ${ target } ` ) ;
44+ throw new Error ( `Unknown suffix: ${ suffix } for target ${ file } ` ) ;
4345 }
4446
4547 const dirname = path . dirname ( new URL ( import . meta. url ) . pathname ) ;
4648 const content = fs . readFileSync (
47- path . join ( dirname , ".." , "dist" , target ) ,
49+ path . join ( dirname , ".." , "dist" , file ) ,
4850 "utf-8" ,
4951 ) ;
50- if ( suffix === "d.ts" ) {
52+ if ( suffix === "d.ts" || ! deprecated ) {
5153 return content ;
5254 }
5355 const deprecation =
@@ -57,23 +59,27 @@ const shimContent = (target, pkg) => {
5759
5860const main = ( ) => {
5961 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" }
7783 ] ;
7884
7985 const options = parseArgs ( ) ;
@@ -84,7 +90,7 @@ const main = () => {
8490
8591 for ( const target of targets ) {
8692 const shimmed = shimContent ( target , pkg ) ;
87- const distPath = path . join ( dist , target ) ;
93+ const distPath = path . join ( dist , target . file ) ;
8894 fs . mkdirSync ( path . dirname ( distPath ) , { recursive : true } ) ;
8995 fs . writeFileSync ( distPath , shimmed ) ;
9096 }
0 commit comments