@@ -14,14 +14,22 @@ import { satisfy } from './semver';
14
14
import { SyncWaterfallHook } from './hooks' ;
15
15
import { arrayOptions } from './tool' ;
16
16
17
- export function formatShare ( shareArgs : ShareArgs , from : string ) : Shared {
17
+ export function formatShare (
18
+ shareArgs : ShareArgs ,
19
+ from : string ,
20
+ name : string ,
21
+ ) : Shared {
18
22
let get : Shared [ 'get' ] ;
19
23
if ( 'get' in shareArgs ) {
20
24
// eslint-disable-next-line prefer-destructuring
21
25
get = shareArgs . get ;
22
- } else {
23
- // @ts -ignore ignore
26
+ } else if ( 'lib' in shareArgs ) {
24
27
get = ( ) => Promise . resolve ( shareArgs . lib ) ;
28
+ } else {
29
+ get = ( ) =>
30
+ Promise . resolve ( ( ) => {
31
+ throw new Error ( `Can not get shared '${ name } '!` ) ;
32
+ } ) ;
25
33
}
26
34
return {
27
35
deps : [ ] ,
@@ -38,6 +46,7 @@ export function formatShare(shareArgs: ShareArgs, from: string): Shared {
38
46
} ,
39
47
get,
40
48
loaded : 'lib' in shareArgs ? true : undefined ,
49
+ version : shareArgs . version ?? '0' ,
41
50
scope : Array . isArray ( shareArgs . scope ) ? shareArgs . scope : [ 'default' ] ,
42
51
strategy : shareArgs . strategy || 'version-first' ,
43
52
} ;
@@ -54,7 +63,7 @@ export function formatShareConfigs(
54
63
const arrayShareArgs = arrayOptions ( shareArgs [ pkgName ] ) ;
55
64
res [ pkgName ] = res [ pkgName ] || [ ] ;
56
65
arrayShareArgs . forEach ( ( shareConfig ) => {
57
- res [ pkgName ] . push ( formatShare ( shareConfig , from ) ) ;
66
+ res [ pkgName ] . push ( formatShare ( shareConfig , from , pkgName ) ) ;
58
67
} ) ;
59
68
return res ;
60
69
} , { } as ShareInfos ) ;
0 commit comments