Skip to content

Commit 829ec1a

Browse files
authored
feat: metadataSync (#137)
1 parent 2e8fcc3 commit 829ec1a

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

packages/binding/__test__/transformer.spec.mjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ test('should be able to get exif from jpg', async (t) => {
3737
t.is(metadata.format, 'jpeg')
3838
})
3939

40+
test('should be able to get metadata from jpg - sync', (t) => {
41+
const decoder = new Transformer(JPEG)
42+
const metadata = decoder.metadataSync()
43+
t.is(metadata.width, 1024)
44+
t.is(metadata.height, 678)
45+
})
46+
4047
test('should be able to encode into webp', async (t) => {
4148
const decoder = new Transformer(PNG)
4249
await t.notThrowsAsync(() => decoder.webp(75))

packages/binding/src/transformer.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,16 @@ impl Transformer {
781781
)
782782
}
783783

784+
#[napi]
785+
pub fn metadata_sync(&mut self, env: Env, with_exif: Option<bool>) -> Result<Metadata> {
786+
let mut task = MetadataTask {
787+
dynamic_image: self.dynamic_image.clone(),
788+
with_exif: with_exif.unwrap_or(false),
789+
};
790+
let output = task.compute()?;
791+
task.resolve(env, output)
792+
}
793+
784794
#[napi]
785795
/// Rotate with exif orientation
786796
/// If the orientation param is not null,

website/pages/docs/index.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ writeFileSync(
7979

8080
```ts
8181
metadata(withExif?: boolean | undefined | null, signal?: AbortSignal | undefined | null): Promise<Metadata>
82+
metadataSync(withExif?: boolean | undefined | null): Metadata
8283

8384
export interface Metadata {
8485
width: number

0 commit comments

Comments
 (0)