Skip to content

Commit 32939b2

Browse files
committed
chore: prefer import type
1 parent 50b087c commit 32939b2

39 files changed

+129
-94
lines changed

Diff for: eslint.config.mjs

+7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ const baseConfig = await generateEslintConfig({
77
const customConfig = [
88
...baseConfig,
99

10+
{
11+
files: ['**/*.ts', '**/*.tsx'],
12+
rules: {
13+
'@typescript-eslint/consistent-type-imports': 'error',
14+
},
15+
},
16+
1017
{
1118
files: ['**/examples/*.js', '**/*.cjs'],
1219
rules: {

Diff for: packages/core/src/__tests__/hid.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as EventEmitter from 'eventemitter3'
2-
import { EncodeJPEGHelper } from '../models/base.js'
3-
import { HIDDevice, HIDDeviceEvents, HIDDeviceInfo } from '../hid-device.js'
2+
import type { EncodeJPEGHelper } from '../models/base.js'
3+
import type { HIDDevice, HIDDeviceEvents, HIDDeviceInfo } from '../hid-device.js'
44
export class DummyHID extends EventEmitter<HIDDeviceEvents> implements HIDDevice {
55
constructor(
66
public readonly path: string,

Diff for: packages/core/src/__tests__/test.spec.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
/* eslint-disable @typescript-eslint/unbound-method */
22

33
import { readFixtureJSON } from './helpers.js'
4-
import { DeviceModelId, DEVICE_MODELS, StreamDeck } from '../index.js'
5-
import { OpenStreamDeckOptions, EncodeJPEGHelper } from '../models/base.js'
4+
import type { StreamDeck } from '../index.js'
5+
import { DeviceModelId, DEVICE_MODELS } from '../index.js'
6+
import type { OpenStreamDeckOptions, EncodeJPEGHelper } from '../models/base.js'
67
import { DummyHID } from './hid.js'
78

89
function openStreamDeck(path: string, deviceModel: DeviceModelId, userOptions?: OpenStreamDeckOptions): StreamDeck {

Diff for: packages/core/src/controlsGenerator.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { StreamDeckButtonControlDefinition, StreamDeckControlDefinition } from './controlDefinition.js'
1+
import type { StreamDeckButtonControlDefinition, StreamDeckControlDefinition } from './controlDefinition.js'
22

33
export function generateButtonsGrid(width: number, height: number, rtl = false): StreamDeckButtonControlDefinition[] {
44
const controls: StreamDeckButtonControlDefinition[] = []

Diff for: packages/core/src/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { HIDDevice } from './hid-device.js'
1+
import type { HIDDevice } from './hid-device.js'
22
import { DeviceModelId } from './id.js'
3-
import { StreamDeck } from './types.js'
4-
import { OpenStreamDeckOptions } from './models/base.js'
3+
import type { StreamDeck } from './types.js'
4+
import type { OpenStreamDeckOptions } from './models/base.js'
55
import { StreamDeckOriginalFactory } from './models/original.js'
66
import { StreamDeckMiniFactory } from './models/mini.js'
77
import { StreamDeckXLFactory } from './models/xl.js'

Diff for: packages/core/src/models/base.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as EventEmitter from 'eventemitter3'
2-
import { HIDDevice, HIDDeviceInfo } from '../hid-device.js'
3-
import { DeviceModelId, Dimension, KeyIndex } from '../id.js'
2+
import type { HIDDevice, HIDDeviceInfo } from '../hid-device.js'
3+
import type { DeviceModelId, Dimension, KeyIndex } from '../id.js'
44
import type {
55
FillImageOptions,
66
FillPanelDimensionsOptions,

Diff for: packages/core/src/models/generic-gen1.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase, StreamDeckProperties } from './base.js'
3-
import { StreamdeckImageWriter } from '../services/imageWriter/types.js'
4-
import { FillImageTargetOptions } from '../util.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions, StreamDeckProperties } from './base.js'
3+
import { StreamDeckBase } from './base.js'
4+
import type { StreamdeckImageWriter } from '../services/imageWriter/types.js'
5+
import type { FillImageTargetOptions } from '../util.js'
56
import { Gen1PropertiesService } from '../services/properties/gen1.js'
67
import { DefaultButtonsLcdService } from '../services/buttonsLcdDisplay/default.js'
78
import { BitmapButtonLcdImagePacker } from '../services/imagePacker/bitmap.js'

Diff for: packages/core/src/models/generic-gen2.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckProperties, StreamDeckServicesDefinition } from './base.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions, StreamDeckProperties, StreamDeckServicesDefinition } from './base.js'
33
import { StreamdeckDefaultImageWriter } from '../services/imageWriter/imageWriter.js'
44
import { StreamdeckGen2ImageHeaderGenerator } from '../services/imageWriter/headerGenerator.js'
55
import { EncoderInputService } from '../services/encoderInput.js'

Diff for: packages/core/src/models/mini.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3-
import { StreamDeckGen1Factory, StreamDeckGen1Properties } from './generic-gen1.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3+
import type { StreamDeckGen1Properties } from './generic-gen1.js'
4+
import { StreamDeckGen1Factory } from './generic-gen1.js'
45
import { DeviceModelId } from '../id.js'
56
import { freezeDefinitions, generateButtonsGrid } from '../controlsGenerator.js'
67
import { StreamdeckDefaultImageWriter } from '../services/imageWriter/imageWriter.js'

Diff for: packages/core/src/models/neo.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions } from './base.js'
3+
import { StreamDeckBase } from './base.js'
34
import { DeviceModelId } from '../id.js'
4-
import { createBaseGen2Properties, StreamDeckGen2Properties } from './generic-gen2.js'
5+
import type { StreamDeckGen2Properties } from './generic-gen2.js'
6+
import { createBaseGen2Properties } from './generic-gen2.js'
57
import { freezeDefinitions, generateButtonsGrid } from '../controlsGenerator.js'
6-
import { StreamDeckControlDefinition, StreamDeckLcdStripControlDefinition } from '../controlDefinition.js'
8+
import type { StreamDeckControlDefinition, StreamDeckLcdStripControlDefinition } from '../controlDefinition.js'
79
import { StreamDeckNeoLcdService } from '../services/lcdStripDisplay/neo.js'
810

911
const neoControls: StreamDeckControlDefinition[] = generateButtonsGrid(4, 2)

Diff for: packages/core/src/models/original-mk2.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3-
import { createBaseGen2Properties, StreamDeckGen2Properties } from './generic-gen2.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions } from './base.js'
3+
import { StreamDeckBase } from './base.js'
4+
import type { StreamDeckGen2Properties } from './generic-gen2.js'
5+
import { createBaseGen2Properties } from './generic-gen2.js'
46
import { DeviceModelId } from '../id.js'
57
import { freezeDefinitions, generateButtonsGrid } from '../controlsGenerator.js'
68

Diff for: packages/core/src/models/original.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3-
import { StreamDeckGen1Factory, StreamDeckGen1Properties } from './generic-gen1.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3+
import type { StreamDeckGen1Properties } from './generic-gen1.js'
4+
import { StreamDeckGen1Factory } from './generic-gen1.js'
45
import { DeviceModelId } from '../id.js'
56
import { StreamdeckOriginalImageWriter } from '../services/imageWriter/imageWriter.js'
67
import { freezeDefinitions, generateButtonsGrid } from '../controlsGenerator.js'

Diff for: packages/core/src/models/originalv2.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3-
import { createBaseGen2Properties, StreamDeckGen2Properties } from './generic-gen2.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions } from './base.js'
3+
import { StreamDeckBase } from './base.js'
4+
import type { StreamDeckGen2Properties } from './generic-gen2.js'
5+
import { createBaseGen2Properties } from './generic-gen2.js'
46
import { DeviceModelId } from '../id.js'
57
import { freezeDefinitions, generateButtonsGrid } from '../controlsGenerator.js'
68

Diff for: packages/core/src/models/pedal.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase, StreamDeckProperties } from './base.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions, StreamDeckProperties } from './base.js'
3+
import { StreamDeckBase } from './base.js'
34
import { DeviceModelId } from '../id.js'
4-
import { StreamDeckControlDefinition } from '../controlDefinition.js'
5+
import type { StreamDeckControlDefinition } from '../controlDefinition.js'
56
import { freezeDefinitions } from '../controlsGenerator.js'
67
import { PedalPropertiesService } from '../services/properties/pedal.js'
78
import { PedalLcdService } from '../services/buttonsLcdDisplay/pedal.js'

Diff for: packages/core/src/models/plus.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3-
import { createBaseGen2Properties, StreamDeckGen2Properties } from './generic-gen2.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions } from './base.js'
3+
import { StreamDeckBase } from './base.js'
4+
import type { StreamDeckGen2Properties } from './generic-gen2.js'
5+
import { createBaseGen2Properties } from './generic-gen2.js'
46
import { DeviceModelId } from '../id.js'
57
import { freezeDefinitions, generateButtonsGrid } from '../controlsGenerator.js'
6-
import { StreamDeckControlDefinition, StreamDeckLcdStripControlDefinition } from '../controlDefinition.js'
8+
import type { StreamDeckControlDefinition, StreamDeckLcdStripControlDefinition } from '../controlDefinition.js'
79
import { LcdStripInputService } from '../services/lcdStripInput.js'
810
import { StreamDeckPlusLcdService } from '../services/lcdStripDisplay/plus.js'
911

Diff for: packages/core/src/models/xl.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import { HIDDevice } from '../hid-device.js'
2-
import { OpenStreamDeckOptions, StreamDeckBase } from './base.js'
3-
import { createBaseGen2Properties, StreamDeckGen2Properties } from './generic-gen2.js'
1+
import type { HIDDevice } from '../hid-device.js'
2+
import type { OpenStreamDeckOptions } from './base.js'
3+
import { StreamDeckBase } from './base.js'
4+
import type { StreamDeckGen2Properties } from './generic-gen2.js'
5+
import { createBaseGen2Properties } from './generic-gen2.js'
46
import { DeviceModelId } from '../id.js'
57
import { freezeDefinitions, generateButtonsGrid } from '../controlsGenerator.js'
68

Diff for: packages/core/src/services/buttonsLcdDisplay/pedal.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Dimension } from '../../id.js'
1+
import type { Dimension } from '../../id.js'
22
import type { ButtonsLcdDisplayService } from './interface.js'
33
import type { FillPanelDimensionsOptions, FillImageOptions, FillPanelOptions } from '../../types.js'
44

Diff for: packages/core/src/services/imagePacker/bitmap.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { ButtonLcdImagePacker, InternalFillImageOptions } from './interface.js'
2-
import { FillImageTargetOptions, transformImageBuffer, BMP_HEADER_LENGTH, writeBMPHeader } from '../../util.js'
1+
import type { ButtonLcdImagePacker, InternalFillImageOptions } from './interface.js'
2+
import type { FillImageTargetOptions } from '../../util.js'
3+
import { transformImageBuffer, BMP_HEADER_LENGTH, writeBMPHeader } from '../../util.js'
34

45
export class BitmapButtonLcdImagePacker implements ButtonLcdImagePacker {
56
readonly #targetOptions: FillImageTargetOptions

Diff for: packages/core/src/services/imagePacker/interface.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { FillImageOptions } from '../../types.js'
1+
import type { FillImageOptions } from '../../types.js'
22

33
export interface InternalFillImageOptions extends FillImageOptions {
44
offset: number

Diff for: packages/core/src/services/imagePacker/jpeg.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { ButtonLcdImagePacker, InternalFillImageOptions } from './interface.js'
1+
import type { ButtonLcdImagePacker, InternalFillImageOptions } from './interface.js'
22
import { transformImageBuffer } from '../../util.js'
3-
import { EncodeJPEGHelper } from '../../models/base.js'
3+
import type { EncodeJPEGHelper } from '../../models/base.js'
44

55
export class JpegButtonLcdImagePacker implements ButtonLcdImagePacker {
66
readonly #encodeJPEG: EncodeJPEGHelper

Diff for: packages/core/src/services/imageWriter/imageWriter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { StreamdeckGen1ImageHeaderGenerator } from './headerGenerator.js'
2-
import { StreamdeckImageHeaderGenerator, StreamdeckImageWriter, StreamdeckImageWriterProps } from './types.js'
2+
import type { StreamdeckImageHeaderGenerator, StreamdeckImageWriter, StreamdeckImageWriterProps } from './types.js'
33

44
export class StreamdeckOriginalImageWriter implements StreamdeckImageWriter {
55
private readonly headerGenerator = new StreamdeckGen1ImageHeaderGenerator()

Diff for: packages/core/src/services/lcdStripDisplay/neo.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import { StreamDeckLcdStripControlDefinition } from '../../controlDefinition.js'
2-
import { HIDDevice } from '../../hid-device.js'
3-
import { Dimension } from '../../id.js'
4-
import { InternalFillImageOptions } from '../imagePacker/interface.js'
1+
import type { StreamDeckLcdStripControlDefinition } from '../../controlDefinition.js'
2+
import type { HIDDevice } from '../../hid-device.js'
3+
import type { Dimension } from '../../id.js'
4+
import type { InternalFillImageOptions } from '../imagePacker/interface.js'
55
import { StreamdeckNeoLcdImageHeaderGenerator } from '../imageWriter/headerGenerator.js'
66
import { StreamdeckDefaultImageWriter } from '../imageWriter/imageWriter.js'
7-
import { LcdStripDisplayService } from './interface.js'
8-
import { FillLcdImageOptions, FillImageOptions } from '../../types.js'
7+
import type { LcdStripDisplayService } from './interface.js'
8+
import type { FillLcdImageOptions, FillImageOptions } from '../../types.js'
99
import { transformImageBuffer } from '../../util.js'
10-
import { EncodeJPEGHelper } from '../../models/base.js'
10+
import type { EncodeJPEGHelper } from '../../models/base.js'
1111

1212
export class StreamDeckNeoLcdService implements LcdStripDisplayService {
1313
readonly #encodeJPEG: EncodeJPEGHelper

Diff for: packages/core/src/services/lcdStripDisplay/plus.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { StreamDeckLcdStripControlDefinition } from '../../controlDefinition.js'
2-
import { HIDDevice } from '../../hid-device.js'
3-
import { InternalFillImageOptions } from '../imagePacker/interface.js'
1+
import type { StreamDeckLcdStripControlDefinition } from '../../controlDefinition.js'
2+
import type { HIDDevice } from '../../hid-device.js'
3+
import type { InternalFillImageOptions } from '../imagePacker/interface.js'
44
import { StreamdeckPlusLcdImageHeaderGenerator } from '../imageWriter/headerGenerator.js'
55
import { StreamdeckDefaultImageWriter } from '../imageWriter/imageWriter.js'
6-
import { LcdStripDisplayService } from './interface.js'
7-
import { FillImageOptions, FillLcdImageOptions } from '../../types.js'
6+
import type { LcdStripDisplayService } from './interface.js'
7+
import type { FillImageOptions, FillLcdImageOptions } from '../../types.js'
88
import { transformImageBuffer } from '../../util.js'
9-
import { EncodeJPEGHelper } from '../../models/base.js'
9+
import type { EncodeJPEGHelper } from '../../models/base.js'
1010

1111
export class StreamDeckPlusLcdService implements LcdStripDisplayService {
1212
readonly #encodeJPEG: EncodeJPEGHelper

Diff for: packages/core/src/services/lcdStripInput.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { LcdPosition, type StreamDeckEvents } from '../types.js'
1+
import type { LcdPosition } from '../types.js'
2+
import { type StreamDeckEvents } from '../types.js'
23
import type { StreamDeckLcdStripControlDefinition } from '../controlDefinition.js'
34
import { uint8ArrayToDataView } from '../util.js'
45
import type { CallbackHook } from './callback-hook.js'

Diff for: packages/core/src/types.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import * as EventEmitter from 'eventemitter3'
2-
import { DeviceModelId, Dimension, KeyIndex } from './id.js'
3-
import { HIDDeviceInfo } from './hid-device.js'
4-
import {
1+
import type * as EventEmitter from 'eventemitter3'
2+
import type { DeviceModelId, Dimension, KeyIndex } from './id.js'
3+
import type { HIDDeviceInfo } from './hid-device.js'
4+
import type {
55
StreamDeckButtonControlDefinition,
66
StreamDeckControlDefinition,
77
StreamDeckEncoderControlDefinition,

Diff for: packages/node/src/__tests__/jpeg-encoding.spec.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import { mocked } from 'jest-mock'
44
import { readFixtureJSON } from './helpers.js'
5+
import type * as TjpegJs from 'jpeg-js'
6+
import type * as Tjpeg from '../jpeg.js'
57

68
const iconSize = 96
79

@@ -22,10 +24,10 @@ describe('jpeg-encoding', () => {
2224

2325
// Mock jpeg-js so we can see if it got used instead of jpeg-turbo
2426
jest.doMock('jpeg-js')
25-
const jpegJS: typeof import('jpeg-js') = require('jpeg-js')
27+
const jpegJS: typeof TjpegJs = require('jpeg-js')
2628
mocked(jpegJS.encode).mockImplementation((src) => ({ ...src, data: Buffer.alloc(100) }))
2729

28-
const { encodeJPEG } = require('../jpeg.js') as typeof import('../jpeg.js')
30+
const { encodeJPEG } = require('../jpeg.js') as typeof Tjpeg
2931

3032
const encoded = await encodeJPEG(img, iconSize, iconSize, undefined)
3133
expect(encoded).toBeTruthy()
@@ -39,11 +41,11 @@ describe('jpeg-encoding', () => {
3941
const img = addAlphaChannel(readFixtureJSON('fillImage-sample-icon-96.json'))
4042

4143
// Ensure real jpeg-js is enabled
42-
const jpegJS: typeof import('jpeg-js') = require('jpeg-js')
44+
const jpegJS: typeof TjpegJs = require('jpeg-js')
4345
mocked(jpegJS.encode).mockImplementation(jest.requireActual('jpeg-js').encode)
4446

4547
jest.doMock('@julusian/jpeg-turbo', undefined)
46-
const { encodeJPEG } = require('../jpeg.js') as typeof import('../jpeg.js')
48+
const { encodeJPEG } = require('../jpeg.js') as typeof Tjpeg
4749

4850
const encoded = await encodeJPEG(img, iconSize, iconSize, undefined)
4951
expect(encoded).toBeTruthy()

Diff for: packages/node/src/__tests__/jpeg-library.spec.ts

+8-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import { mocked } from 'jest-mock'
44
import { readFixtureJSON } from './helpers.js'
5+
import type * as TjpegJs from 'jpeg-js'
6+
import type * as Tjpeg from '../jpeg.js'
7+
import type * as TjpegTurbo from '@julusian/jpeg-turbo'
58

69
const iconSize = 96
710

@@ -15,18 +18,18 @@ describe('jpeg-library', () => {
1518

1619
// Mock jpeg-turbo so that we can make it crash
1720
jest.mock('@julusian/jpeg-turbo')
18-
const jpegTurbo: typeof import('@julusian/jpeg-turbo') = require('@julusian/jpeg-turbo')
21+
const jpegTurbo: typeof TjpegTurbo = require('@julusian/jpeg-turbo')
1922
mocked(jpegTurbo.bufferSize).mockImplementation(() => 1000)
2023
mocked(jpegTurbo.compressSync).mockImplementation(() => {
2124
throw new Error('something failed')
2225
})
2326

2427
// Mock jpeg-js so we can see that it got used instead of jpeg-turbo
2528
jest.doMock('jpeg-js')
26-
const jpegJS: typeof import('jpeg-js') = require('jpeg-js')
29+
const jpegJS: typeof TjpegJs = require('jpeg-js')
2730
mocked(jpegJS.encode).mockImplementation((src) => ({ ...src, data: Buffer.alloc(100) }))
2831

29-
const { encodeJPEG } = require('../jpeg.js') as typeof import('../jpeg.js')
32+
const { encodeJPEG } = require('../jpeg.js') as typeof Tjpeg
3033

3134
const encoded = await encodeJPEG(img, iconSize, iconSize, undefined)
3235
expect(encoded).toBeTruthy()
@@ -41,10 +44,10 @@ describe('jpeg-library', () => {
4144

4245
// Mock jpeg-js so we can see that it got used instead of jpeg-turbo
4346
jest.doMock('jpeg-js')
44-
const jpegJS: typeof import('jpeg-js') = require('jpeg-js')
47+
const jpegJS: typeof TjpegJs = require('jpeg-js')
4548
mocked(jpegJS.encode).mockImplementation((src) => ({ ...src, data: Buffer.alloc(100) }))
4649

47-
const { encodeJPEG } = require('../jpeg.js') as typeof import('../jpeg.js')
50+
const { encodeJPEG } = require('../jpeg.js') as typeof Tjpeg
4851

4952
const encoded = await encodeJPEG(img, iconSize, iconSize, undefined)
5053
expect(encoded).toBeTruthy()

Diff for: packages/node/src/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { DEVICE_MODELS, OpenStreamDeckOptions, StreamDeck, VENDOR_ID } from '@elgato-stream-deck/core'
1+
import type { OpenStreamDeckOptions, StreamDeck } from '@elgato-stream-deck/core'
2+
import { DEVICE_MODELS, VENDOR_ID } from '@elgato-stream-deck/core'
23
import * as HID from 'node-hid'
34
import { NodeHIDDevice, StreamDeckDeviceInfo } from './hid-device.js'
45
import { encodeJPEG, JPEGEncodeOptions } from './jpeg.js'

Diff for: packages/node/src/jpeg.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import * as jpegJS from 'jpeg-js'
2+
import type { EncodeOptions } from '@julusian/jpeg-turbo'
23

34
export interface JPEGEncodeOptions {
45
quality: number
@@ -25,7 +26,7 @@ export async function encodeJPEG(
2526

2627
// Try using jpeg-turbo if it is available
2728
if (jpegTurbo && jpegTurbo.bufferSize && !!jpegTurbo.compressSync) {
28-
const encodeOptions: import('@julusian/jpeg-turbo').EncodeOptions = {
29+
const encodeOptions: EncodeOptions = {
2930
format: jpegTurbo.FORMAT_RGBA,
3031
width,
3132
height,

Diff for: packages/node/src/wrapper.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { StreamDeck, StreamDeckProxy } from '@elgato-stream-deck/core'
1+
import type { StreamDeck } from '@elgato-stream-deck/core'
2+
import { StreamDeckProxy } from '@elgato-stream-deck/core'
23

34
export class StreamDeckNode extends StreamDeckProxy {
45
constructor(

0 commit comments

Comments
 (0)