1
1
import type { CLI } from '@stacksjs/types'
2
2
import { bold , dim , green , intro } from '@stacksjs/cli'
3
- import { filesystem } from '@stacksjs/storage'
4
3
import { log } from '@stacksjs/logging'
5
- import { frameworkPath } from '@stacksjs/path '
4
+ import { storage } from '@stacksjs/storage '
6
5
7
6
async function version ( buddy : CLI ) {
8
- // maybe use type-fest?
9
- interface PackageJson {
10
- engines : {
11
- node : string
12
- pnpm : string
13
- }
14
- version : string
15
- }
16
-
17
- const { fs } = filesystem
18
-
19
7
const descriptions = {
20
8
version : 'Retrieving Stacks build version' ,
21
9
}
@@ -25,15 +13,15 @@ async function version(buddy: CLI) {
25
13
. action ( async ( ) => {
26
14
await intro ( 'buddy version' )
27
15
28
- const depVersions = JSON . parse ( fs . readFileSync ( './package.json' , 'utf8' ) ) as PackageJson
29
- const nodeVersion = depVersions . engines . node . replace ( '>=v' , '' )
30
- const pnpmVersion = depVersions . engines . pnpm . replace ( '>=' , '' )
31
- const stacksVersion = JSON . parse ( fs . readFileSync ( frameworkPath ( '/package.json' ) , 'utf8' ) ) as PackageJson
16
+ const pkg = await storage . readPackageJson ( './package.json' )
17
+ const nodeVersion = pkg . engines . node . replace ( '>=v' , '' )
18
+ const pnpmVersion = pkg . engines . pnpm . replace ( '>=' , '' )
19
+ const stacksVersion = pkg . version
32
20
33
- log . info ( green ( bold ( 'Stacks: ' ) ) + dim ( ` ${ stacksVersion . version } ` ) )
21
+ log . info ( green ( bold ( 'Stacks: ' ) ) + dim ( ` ${ stacksVersion } ` ) )
34
22
log . info ( green ( bold ( 'node: ' ) ) + dim ( ` ${ nodeVersion } ` ) )
35
23
log . info ( green ( bold ( 'pnpm: ' ) ) + dim ( ` ${ pnpmVersion } ` ) )
36
- // redis (or other cache/s), mysql (or other database/s),
24
+ // redis (or other cache/s), mysql (or other database/s),
37
25
} )
38
26
}
39
27
0 commit comments