@@ -5,12 +5,13 @@ import process from 'node:process'
5
5
6
6
import { globby } from 'globby'
7
7
import { JSONFile , Low } from 'lowdb'
8
- import ora from 'ora'
8
+ import ora , { oraPromise } from 'ora'
9
9
import sade from 'sade'
10
10
import sharp from 'sharp'
11
11
import { PackageJson } from 'type-fest'
12
12
13
13
import { loadConfig } from './lib/context.js'
14
+ import { getDominantPalette } from './lib/dominant.js'
14
15
import { generateFingerprint } from './lib/fingerprint.js'
15
16
import { matchThumbnail , writeThumbnail } from './lib/thumbnail.js'
16
17
import type { ImageRecord , ImageThumbnails } from './types.js'
@@ -73,6 +74,10 @@ prog.command('add <src>')
73
74
let sharpImage = sharp ( source )
74
75
let { width, height } = await sharpImage . metadata ( )
75
76
let fingerprint = await generateFingerprint ( sharpImage )
77
+ let dominantPalette = await oraPromise (
78
+ getDominantPalette ( sharpImage ) ,
79
+ { successText : 'Extracted dominant colours' }
80
+ )
76
81
77
82
let { dir, name : imageName , ext } = parse ( source )
78
83
let filename = useFilenameDirectory
@@ -148,6 +153,7 @@ prog.command('add <src>')
148
153
let entry : ImageRecord = {
149
154
path : filename ,
150
155
dimensions : { width, height } ,
156
+ colors : dominantPalette ,
151
157
thumbnails : entryThumbnails ,
152
158
}
153
159
@@ -171,7 +177,11 @@ prog.command('add <src>')
171
177
}
172
178
}
173
179
174
- spinner . succeed ( `Processed ${ processed } images ...DONE!` )
180
+ spinner . succeed (
181
+ `Processed ${ processed } ${
182
+ processed === 1 ? 'image' : 'images'
183
+ } ...DONE!`
184
+ )
175
185
} )
176
186
177
187
prog . command ( 'jpg <src>' )
0 commit comments