Cloudinary JS-Transformation-Builder-SDK

About
This is an internal Cloudinary SDK.
The Cloudinary JS-Transformation-Builder-SDK allows you to generate transformations for @cloudinary/url-gen
Additional documentation
This Readme provides basic installation and usage information.
Table of Contents
Key Features
Version Support
Note!
This SDK is cross-platform, but only the Node.js versions are worth mentioning
SDK Version | Node.js 10 | Node.js 12 | Node.js 14 | Node.js 16 |
---|
1.x | V | V | V | V |
Installation
Install using your favorite package manager (yarn, npm)
npm install @cloudinary/transformation-builder-sdk
yarn add @cloudinary/transformation-builder-sdk
Usage
Setup
import {Transformation} from '@cloudinary/transformation-builder-sdk';
const tx = new Transformation()
.resize(scale(100, 100))
Transform and Optimize Assets
const cld = new Cloudinary({})
const myImage = cld.image('sample');
import {Resize} from '@cloudinary/url-gen/actions/resize';
myImage.resize(Resize.scale().width(100).height(100));
const myURL = myImage.toURL();
console.log(myURL);
Transpilation
@cloudinary/transformation-builder-sdk
is shipped as untranspiled ES6 code.
@cloudinary/transformation-builder-sdk
is optimized around bundle size, as such we do not transpile our distributed modules,
we leave the decision of what browsers to support, and what transpilations to apply, to you, the user.
Testing with Jest
As mentioned above, we're shipping @cloudinary/transformation-builder-sdk
with ES6 code, as this provides great tree-shaking potential.
it also requires a few adjustments when testing.
In jest.config, you'll need to add these lines to allow babel to transpile our code.
{
"transform": {
"node_modules/@cloudinary/transformation-builder-sdk": "babel-jest"
},
"transformIgnorePatterns": ["/node_modules/(?!@cloudinary/transformation-builder-sdk)"]
}
Make sure to install babel-jest:
npm install babel-jest
You'll also need to ensure you have a babel.config.js
file (and not a .babelrc
), and that
it's configured properly to transpile code,
As an example:
module.exports = {
"presets": [
"@babel/preset-env"
]
};
Contributions
- Clone this repository
- Create a fork
- Make your changes
- Run tests locally
npm run test
- Build project locally
npm run build
- Push your changes
- Await a review from the maintainers
Get Help
If you run into an issue or have a question, you can either:
About Cloudinary
Cloudinary is a powerful media API for websites and mobile apps alike, Cloudinary enables developers to efficiently manage, transform, optimize, and deliver images and videos through multiple CDNs. Ultimately, viewers enjoy responsive and personalized visual-media experiences—irrespective of the viewing device.
Additional Resources
Licence
Released under the MIT license.