@@ -8,57 +8,59 @@ import path from 'node:path';
8
8
* cwd: string;
9
9
* }} opts
10
10
*/
11
- export function generate_package_json ( { build_data, cwd} ) {
11
+ export function generate_package_json ( { build_data, cwd } ) {
12
+ const package_json_text = fs . readFileSync ( path . resolve ( cwd , 'package.json' ) , 'utf8' ) ;
13
+ const package_json = JSON . parse ( package_json_text ) ;
14
+ const dependences_with_versions = Object . assign (
15
+ { } ,
16
+ package_json . devDependencies || { } ,
17
+ package_json . dependencies || { }
18
+ ) ;
12
19
13
- const package_json_text = fs . readFileSync ( path . resolve ( cwd , 'package.json' ) , 'utf8' ) ;
14
- const package_json = JSON . parse ( package_json_text ) ;
15
- const dependences_with_versions = Object . assign (
16
- { } ,
17
- package_json . devDependencies || { } ,
18
- package_json . dependencies || { }
19
- ) ;
20
+ const dependencies = Object . keys ( dependences_with_versions ) ;
20
21
21
- const dependencies = Object . keys ( dependences_with_versions ) ;
22
+ /** @type {Set<string> } */
23
+ const dependencies_set = new Set ( dependencies ) ;
22
24
23
- /** @type {Set<string> } */
24
- const dependencies_set = new Set ( dependencies ) ;
25
+ const prod_package_json = Object . assign ( { } , package_json ) ;
26
+ delete prod_package_json . devDependencies ;
27
+ delete prod_package_json . scripts ;
28
+ prod_package_json . dependencies = { } ;
25
29
26
- const prod_package_json = Object . assign ( { } , package_json ) ;
27
- delete prod_package_json . devDependencies ;
28
- delete prod_package_json . scripts ;
29
- prod_package_json . dependencies = { } ;
30
+ const chunks = [ build_data . client . chunks , build_data . server . chunks ] . flat ( ) ;
31
+ if ( chunks . length > 0 ) {
32
+ /** @type {string[] } */
33
+ const dependency_names = filter_import_packages ( chunks , dependencies_set ) ;
34
+ dependency_names . sort ( ) ;
35
+ prod_package_json . dependencies = create_dependency_object (
36
+ dependency_names ,
37
+ dependences_with_versions
38
+ ) ;
39
+ }
30
40
31
- const chunks = [ build_data . client . chunks , build_data . server . chunks ] . flat ( ) ;
32
- if ( chunks . length > 0 ) {
33
- /** @type {string[] } */
34
- const dependency_names = filter_import_packages ( chunks , dependencies_set ) ;
35
- dependency_names . sort ( ) ;
36
- prod_package_json . dependencies = create_dependency_object ( dependency_names , dependences_with_versions ) ;
37
- }
38
-
39
- return JSON . stringify ( prod_package_json , null , 2 ) ;
41
+ return JSON . stringify ( prod_package_json , null , 2 ) ;
40
42
}
41
43
/**
42
44
*
43
45
* @param {import('rollup').OutputChunk[] } chunks
44
46
* @param {Set<string> } dependencies_set
45
47
*/
46
48
function filter_import_packages ( chunks , dependencies_set ) {
47
- /** @type {string[] } */
48
- const import_names = chunks . reduce ( ( /** @type {string[] } */ deps , chunk ) => {
49
- if ( chunk . imports . length > 0 ) {
50
- for ( let i = 0 ; i < chunk . imports . length ; i ++ ) {
51
- const importName = chunk . imports [ i ] ;
52
- if ( dependencies_set . has ( importName ) ) {
53
- deps . push ( importName ) ;
54
- }
55
- }
56
- }
49
+ /** @type {string[] } */
50
+ const import_names = chunks . reduce ( ( /** @type {string[] } */ deps , chunk ) => {
51
+ if ( chunk . imports . length > 0 ) {
52
+ for ( let i = 0 ; i < chunk . imports . length ; i ++ ) {
53
+ const importName = chunk . imports [ i ] ;
54
+ if ( dependencies_set . has ( importName ) ) {
55
+ deps . push ( importName ) ;
56
+ }
57
+ }
58
+ }
57
59
58
- return deps ;
59
- } , [ ] ) ;
60
+ return deps ;
61
+ } , [ ] ) ;
60
62
61
- return import_names ;
63
+ return import_names ;
62
64
}
63
65
64
66
/**
@@ -67,11 +69,11 @@ function filter_import_packages(chunks, dependencies_set) {
67
69
* @param {{[key: string]: string} } dependences_with_versions
68
70
*/
69
71
function create_dependency_object ( dependency_names , dependences_with_versions ) {
70
- /** @type {{[key: string]: string} } */
71
- const dependencies = { } ;
72
- for ( let i = 0 ; i < dependency_names . length ; i ++ ) {
73
- dependencies [ dependency_names [ i ] ] = dependences_with_versions [ dependency_names [ i ] ] ;
74
- }
72
+ /** @type {{[key: string]: string} } */
73
+ const dependencies = { } ;
74
+ for ( let i = 0 ; i < dependency_names . length ; i ++ ) {
75
+ dependencies [ dependency_names [ i ] ] = dependences_with_versions [ dependency_names [ i ] ] ;
76
+ }
75
77
76
- return dependencies ;
78
+ return dependencies ;
77
79
}
0 commit comments