mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-03 05:10:16 +03:00
* automate feature * Moved all providers to app level to simplify homepage * Circular dependency fixes * You will see that now toolRegistry gets a tool config and a tool settings object. These enable automate to run the tools using as much static code as possible. --------- Co-authored-by: Connor Yoh <connor@stirlingpdf.com>
34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import { BaseParameters } from '../../../types/parameters';
|
|
import { useBaseParameters, BaseParametersHook } from '../shared/useBaseParameters';
|
|
|
|
export interface CompressParameters extends BaseParameters {
|
|
compressionLevel: number;
|
|
grayscale: boolean;
|
|
expectedSize: string;
|
|
compressionMethod: 'quality' | 'filesize';
|
|
fileSizeValue: string;
|
|
fileSizeUnit: 'KB' | 'MB';
|
|
}
|
|
|
|
export const defaultParameters: CompressParameters = {
|
|
compressionLevel: 5,
|
|
grayscale: false,
|
|
expectedSize: '',
|
|
compressionMethod: 'quality',
|
|
fileSizeValue: '',
|
|
fileSizeUnit: 'MB',
|
|
};
|
|
|
|
export type CompressParametersHook = BaseParametersHook<CompressParameters>;
|
|
|
|
export const useCompressParameters = (): CompressParametersHook => {
|
|
return useBaseParameters({
|
|
defaultParameters,
|
|
endpointName: 'compress-pdf',
|
|
validateFn: (params) => {
|
|
// For compression, we only need to validate that compression level is within range
|
|
return params.compressionLevel >= 1 && params.compressionLevel <= 9;
|
|
},
|
|
});
|
|
};
|