Skip to content

Commit c27dcab

Browse files
Rename auto functions in Quality, add quantization (#202)
* Rename auto functions in Quality, add quantization
1 parent dae0fa9 commit c27dcab

File tree

3 files changed

+28
-8
lines changed

3 files changed

+28
-8
lines changed

__TESTS__/unit/actions/Quality.test.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
3333
it('Creates a cloudinaryURL with quality:best', () => {
3434
const url = new TransformableImage()
3535
.setConfig(CONFIG_INSTANCE)
36-
.delivery(Delivery.quality(Quality.best()))
36+
.delivery(Delivery.quality(Quality.autoBest()))
3737
.setPublicID('sample')
3838
.toURL();
3939

@@ -43,7 +43,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
4343
it('Creates a cloudinaryURL with quality:eco', () => {
4444
const url = new TransformableImage()
4545
.setConfig(CONFIG_INSTANCE)
46-
.delivery(Delivery.quality(Quality.eco()))
46+
.delivery(Delivery.quality(Quality.autoEco()))
4747
.setPublicID('sample')
4848
.toURL();
4949

@@ -53,7 +53,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
5353
it('Creates a cloudinaryURL with quality:good', () => {
5454
const url = new TransformableImage()
5555
.setConfig(CONFIG_INSTANCE)
56-
.delivery(Delivery.quality(Quality.good()))
56+
.delivery(Delivery.quality(Quality.autoGood()))
5757
.setPublicID('sample')
5858
.toURL();
5959

@@ -63,7 +63,7 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
6363
it('Creates a cloudinaryURL with quality:low', () => {
6464
const url = new TransformableImage()
6565
.setConfig(CONFIG_INSTANCE)
66-
.delivery(Delivery.quality(Quality.low()))
66+
.delivery(Delivery.quality(Quality.autoLow()))
6767
.setPublicID('sample')
6868
.toURL();
6969

@@ -119,4 +119,14 @@ describe('Tests for Transformation Action -- Delivery.quality', () => {
119119

120120
expect(url).toBe('http://res.cloudinary.com/demo/image/upload/q_75:420/sample');
121121
});
122+
123+
it('Sets Quanitzation level', () => {
124+
const url = new TransformableImage()
125+
.setConfig(CONFIG_INSTANCE)
126+
.delivery(Delivery.quality('75').quantization(123))
127+
.setPublicID('sample')
128+
.toURL();
129+
130+
expect(url).toBe('http://res.cloudinary.com/demo/image/upload/q_75:qmax_123/sample');
131+
});
122132
});

src/actions/delivery/quality.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,18 @@ class QualityAction extends DeliveryAction {
1818
chromaSubSampling(type: 420 | 444 | number): this {
1919
const qualityWithSubSampling = new QualifierValue([this.qualityValue, type]);
2020
qualityWithSubSampling.setDelimiter(':');
21+
22+
// We either have chroma or quantization, but not both
2123
return this.addQualifier(new Qualifier('q', qualityWithSubSampling));
2224
}
25+
26+
quantization(val:number) {
27+
const qualityWithQuantization = new QualifierValue([this.qualityValue, `qmax_${val}`]);
28+
qualityWithQuantization.setDelimiter(':');
29+
30+
// We either have chroma or quantization, but not both
31+
return this.addQualifier(new Qualifier('q', qualityWithQuantization));
32+
}
2333
}
2434

2535
/**

src/values/quality/Quality.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,28 @@ export function auto():string { return 'auto';}
1515
* @memberOf Values.QualityValues
1616
* @return {string}
1717
*/
18-
export function best():string { return 'auto:best';}
18+
export function autoBest():string { return 'auto:best';}
1919

2020
/**
2121
* @description Quality eco
2222
* @memberOf Values.QualityValues
2323
* @return {string}
2424
*/
25-
export function eco():string { return 'auto:eco';}
25+
export function autoEco():string { return 'auto:eco';}
2626

2727
/**
2828
* @description Quality good
2929
* @memberOf Values.QualityValues
3030
* @return {string}
3131
*/
32-
export function good():string { return 'auto:good';}
32+
export function autoGood():string { return 'auto:good';}
3333

3434
/**
3535
* @description Quality low
3636
* @memberOf Values.QualityValues
3737
* @return {string}
3838
*/
39-
export function low():string { return 'auto:low';}
39+
export function autoLow():string { return 'auto:low';}
4040

4141
/**
4242
* @description Quality jpegmini

0 commit comments

Comments
 (0)