Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
### Pull request for @Cloudinary/Base
### Pull request for @cloudinary/js-url-gen


#### What does this PR solve?
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Breaking changes

Other changes
================
* Docs - Fix styling in the search component when searching for @cloudinary/base (#338)
* Docs - Fix styling in the search component when searching for @cloudinary/js-url-gen (#338)
* Docs - Change wording of SDK Summary when searching (#337)
* Build - Set the bundle target to ES6 for ESM, and ES5 for UMD (#335)
* Docs - Enhance the search
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ This SDK can also be used with [popular frontend frameworks](https://cloudinary.

## Installation
```bash
npm install @cloudinary/base
npm install @cloudinary/js-url-gen
```

## Simple usage
```javascript

// Import the Cloudinary class
import {Cloudinary} from '@cloudinary/base';
import {Cloudinary} from '@cloudinary/js-url-gen';

// Create your instance
const cld = new Cloudinary({
Expand All @@ -35,7 +35,7 @@ const cld = new Cloudinary({

// Let's create a new image
const myImage = cld.image('sample');
import {Resize} from '@cloudinary/base/actions/resize';
import {Resize} from '@cloudinary/js-url-gen/actions/resize';
myImage.resize(Resize.scale().width(100).height(100));

// When we're done, we can apply all our changes and create a URL.
Expand All @@ -56,22 +56,22 @@ console.log(myURL);


### Transpilation
@cloudinary/base is shipped as untranspiled ES6 code.
@cloudinary/base is optimized around bundle size, as such we do not transpile our distributed modules,
@cloudinary/js-url-gen is shipped as untranspiled ES6 code.
@cloudinary/js-url-gen 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/base with ES6 code, as this provides great tree-shaking potential.
As mentioned above, we're shipping @cloudinary/js-url-gen 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.
```json
{
"transform": {
"node_modules/@cloudinary/base": "babel-jest"
"node_modules/@cloudinary/js-url-gen": "babel-jest"
},
"transformIgnorePatterns": ["/node_modules/(?!@cloudinary/base)"]
"transformIgnorePatterns": ["/node_modules/(?!@cloudinary/js-url-gen)"]
}
```
Make sure to install babel-jest:
Expand Down
2 changes: 1 addition & 1 deletion __DOCS__/examples/annotatedExamples/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

```javascript
// Import the cloudinary class
import {Cloudinary} from "@cloudinary/base/instance/Cloudinary";
import {Cloudinary} from "@cloudinary/js-url-gen/instance/Cloudinary";

// Create your instance
const cld = new Cloudinary({
Expand Down
16 changes: 8 additions & 8 deletions __DOCS__/examples/annotatedExamples/imageOverlay.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
```javascript
// Import the cloudinary class
import {Cloudinary} from "@cloudinary/base/instance/Cloudinary";
import {Cloudinary} from "@cloudinary/js-url-gen/instance/Cloudinary";

// Create your instance
const cld = new Cloudinary({
Expand All @@ -17,18 +17,18 @@ const myImage = cld.image('sample');

// An overlay is built from several parts
// Import video or image overlay, based on your asset
import {Overlay} from "@cloudinary/base/actions/overlay";
import {Overlay} from "@cloudinary/js-url-gen/actions/overlay";
// Import the source of the layer, this determines if the layer is an image, text or video
import {image} from "@cloudinary/base/qualifiers/source";
import {image} from "@cloudinary/js-url-gen/qualifiers/source";

// Import how to position your layer
import {Position} from "@cloudinary/base/qualifiers/position";
import {southEast} from "@cloudinary/base/qualifiers/compass";
import {compass} from "@cloudinary/base/qualifiers/gravity";
import {Position} from "@cloudinary/js-url-gen/qualifiers/position";
import {southEast} from "@cloudinary/js-url-gen/qualifiers/compass";
import {compass} from "@cloudinary/js-url-gen/qualifiers/gravity";

// We'll also scale our overlay, we'll need this for later.
import {scale} from "@cloudinary/base/actions/resize";
import {Transformation} from "@cloudinary/base/transformation/Transformation";
import {scale} from "@cloudinary/js-url-gen/actions/resize";
import {Transformation} from "@cloudinary/js-url-gen/transformation/Transformation";


myImage.overlay(
Expand Down
6 changes: 3 additions & 3 deletions __DOCS__/examples/annotatedExamples/resize.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
```javascript
// Import the cloudinary class
import {Cloudinary} from "@cloudinary/base/instance/Cloudinary";
import {Cloudinary} from "@cloudinary/js-url-gen/instance/Cloudinary";

// Create your instance
const cld = new Cloudinary({
Expand All @@ -26,9 +26,9 @@ const myImage = cld.image('sample');

// the resize() ActionGroup needs an Action parameter
// Lets give resize() a ResizeScale paramter to scale our image
// We import all of our Action parameters from @cloudinary/base/actions/{actionGroup}
// We import all of our Action parameters from @cloudinary/js-url-gen/actions/{actionGroup}
// Note that you can import all Resize Actions, or just the single one you want
import {Resize} from "@cloudinary/base/actions/resize";
import {Resize} from "@cloudinary/js-url-gen/actions/resize";
const {scale} = Resize;
// Resize.scale === scale
// Explore the Resize object to discover more resize actions
Expand Down
8 changes: 4 additions & 4 deletions __DOCS__/examples/annotatedExamples/rotate.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
```javascript
import {Cloudinary} from "@cloudinary/base/instance/Cloudinary";
import {Cloudinary} from "@cloudinary/js-url-gen/instance/Cloudinary";

const cld = new Cloudinary({
cloud: {
Expand All @@ -12,18 +12,18 @@ const cld = new Cloudinary({


// Import the RotationModeAction
import {mode} from '@cloudinary/base/actions/rotate';
import {mode} from '@cloudinary/js-url-gen/actions/rotate';

// Remember, mode is a function that returns an Action
// but we refer to both as a RotationMode action

// The RotationModeAction (mode) requires a Qualifier
// That qualifier will require a certain QualifierValue
// To make life easier, you can import all possible QualifierValue(s) of rotate
import {RotationMode} from '@cloudinary/base/qualifiers/rotationMode';
import {RotationMode} from '@cloudinary/js-url-gen/qualifiers/rotationMode';

// You can also import only the required QualifierValue you want
import {verticalFlip} from '@cloudinary/base/qualifiers/rotationMode';
import {verticalFlip} from '@cloudinary/js-url-gen/qualifiers/rotationMode';
// RotationMode.verticalFlip === verticalFlip

const myImage = cld.image('sample');
Expand Down
6 changes: 3 additions & 3 deletions __DOCS__/examples/gettingStarted/helloworld.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<h2>Code Example</h2>

```javascript
import {Cloudinary} from "@cloudinary/base/instance/Cloudinary";
import {scale} from "@cloudinary/base/actions/resize";
import {Cloudinary} from "@cloudinary/js-url-gen/instance/Cloudinary";
import {scale} from "@cloudinary/js-url-gen/actions/resize";

// Create your instance
const cld = new Cloudinary({
Expand Down Expand Up @@ -38,7 +38,7 @@ const myURL = myImage.toURL();
<li>Creates a new Cloudinary instance, with a set of configurations</li>
<li>Instructs your instance to work with a Cloudinary Image (CloudinaryImage)</li>
<li>Creates a new CloudinaryImage instance with a publicID of 'sample' (<code>cld.image('sample')</code>)</li>
<li>Imports the <code>scale()</code> Action from <code>'@cloudinary/base/actions/resize'</code> </li>
<li>Imports the <code>scale()</code> Action from <code>'@cloudinary/js-url-gen/actions/resize'</code> </li>
<li>Uses the Action methods <code>width</code> and <code>height</code> to set the scale size</li>
<li>Applies your changes and creates a URL string</li>
</ul>
2 changes: 1 addition & 1 deletion __DOCS__/examples/gettingStarted/installation.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<h1>Installation</h1>
<h3>Installing through npm</h3>
<code> npm install @cloudinary/base</code>
<code> npm install @cloudinary/js-url-gen</code>
14 changes: 7 additions & 7 deletions __DOCS__/examples/gettingStarted/terminology.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@


```javascript
import {Cloudinary} from "@cloudinary/base/instance/Cloudinary";
import {Rotate} from "@cloudinary/base/actions/rotate";
import {Resize} from "@cloudinary/base/actions/resize";
import {RotationMode} from "@cloudinary/base/qualifiers/rotationMode";
import {Cloudinary} from "@cloudinary/js-url-gen/instance/Cloudinary";
import {Rotate} from "@cloudinary/js-url-gen/actions/rotate";
import {Resize} from "@cloudinary/js-url-gen/actions/resize";
import {RotationMode} from "@cloudinary/js-url-gen/qualifiers/rotationMode";

// Create your instance
const cld = new Cloudinary({
Expand Down Expand Up @@ -45,8 +45,8 @@ myImage
<li>Assets expose methods called <b>ActionGroups</b> (<code>image.resize</code>, <code>image.rotate</code>)
<li>ActionGroups receive an Action as a parameter
<li>We create Action objects through Factory methods (<code>scale</code>, <code>mode</code>)
<li>You can find more Actions in <code>'@cloudinary/base/actions'</code>
<li>You can import all actions from <code>import {Actions} from '@cloudinary/base'</code>
<li>You can find more Actions in <code>'@cloudinary/js-url-gen/actions'</code>
<li>You can import all actions from <code>import {Actions} from '@cloudinary/js-url-gen'</code>
</ul>


Expand All @@ -57,7 +57,7 @@ myImage
<li>Qualifiers usually accept a <b>QualifierValue</b>
<li>QualifierValues can be primitive (numbers, strings) or predefined SDK values that can be imported
<li>Almost all QualifierValues are functions (RotationMode.verticalFlip())
<li>You can find more QualifierValues in <code>'@cloudinary/base/values'</code>
<li>You can find more QualifierValues in <code>'@cloudinary/js-url-gen/values'</code>
</ul>

<h4>Generalized form</h4>
Expand Down
8 changes: 4 additions & 4 deletions __DOCS__/examples/gettingStarted/treeShaking.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ Everything can be very granularly imported to ensure you only import what you ne
<h4>Without Tree-Shaking</h4>

```javascript
import {Resize} from "@cloudinary/base/actions/resize";
import {Resize} from "@cloudinary/js-url-gen/actions/resize";

Resize.scale()
Resize.crop()
```
<h4>With Tree-Shaking</h4>

```javascript
import {scale, crop} from '@cloudinary/base/actions/resize';
import {scale, crop} from '@cloudinary/js-url-gen/actions/resize';
scale()
crop()
```
Expand All @@ -37,15 +37,15 @@ Everything can be very granularly imported to ensure you only import what you ne
<h4>Without Tree-Shaking</h4>

```javascript
import {Format} from "@cloudinary/base/qualifiers/format";
import {Format} from "@cloudinary/js-url-gen/qualifiers/format";

Format.png()
Format.jpg()
```
<h4>With Tree-Shaking</h4>

```javascript
import {jpg, png} from "@cloudinary/base/qualifiers/format";
import {jpg, png} from "@cloudinary/js-url-gen/qualifiers/format";

png()
jpg()
Expand Down
2 changes: 1 addition & 1 deletion jsdoc.config.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"systemColor": "#3448C5",
"systemName": "Cloudinary Base SDK",
"systemLogo": "./__DOCS__/resources/navLogo.png",
"systemSummary": "@cloudinary/base",
"systemSummary": "@cloudinary/js-url-gen",
"favicon": "./__DOCS__/resources/favico.png",
"copyright": "Copyright © 2021 Cloudinary.com"
},
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "@cloudinary/base",
"name": "@cloudinary/js-url-gen",
"version": "1.0.0-beta.4",
"description": "",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion scripts/lib/entryPointsLib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ function createUMDBundleEntryPoint() {

/**
* @description Since only ./dist/ is packaged to npm, we need to copy a proper package.json file to it
* That will allow `import {TransformableImage} from '@cloudinary/base`
* That will allow `import {TransformableImage} from '@cloudinary/js-url-gen`
*/
function copyPackageJson(fileDestination = 'dist') {
const projectJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));
Expand Down
8 changes: 4 additions & 4 deletions src/actions/animated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import {QualifierValue} from "../internal/qualifier/QualifierValue";
* @memberOf Actions
* @namespace Animated
* @example
* import {Cloudinary} from "@cloudinary/base";
* import {animated} from "@cloudinary/base/actions/animated";
* import {Cloudinary} from "@cloudinary/js-url-gen";
* import {animated} from "@cloudinary/js-url-gen/actions/animated";
*
* const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});
* const image = yourCldInstance.image('woman');
Expand All @@ -24,8 +24,8 @@ import {QualifierValue} from "../internal/qualifier/QualifierValue";
* @see Actions.Animated
* @example
* // Used through a builder function Animated.edit(), and not by creating a new instance
* import {Cloudinary} from "@cloudinary/base";
* import {edit} from "@cloudinary/base/actions/animated";
* import {Cloudinary} from "@cloudinary/js-url-gen";
* import {edit} from "@cloudinary/js-url-gen/actions/animated";
*
* const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});
* const image = yourCldInstance.image('woman');
Expand Down
6 changes: 3 additions & 3 deletions src/actions/border.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import RoundCornersAction from "./roundCorners/RoundCornersAction";
* @memberOf Actions
* @namespace Border
* @example
* import {Cloudinary} from "@cloudinary/base";
* import {solid} from "@cloudinary/base/actions/border";
* import {Cloudinary} from "@cloudinary/js-url-gen";
* import {solid} from "@cloudinary/js-url-gen/actions/border";
*
* const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});
* const image = yourCldInstance.image('woman');
Expand All @@ -34,7 +34,7 @@ import RoundCornersAction from "./roundCorners/RoundCornersAction";
* @see Actions.Border
* @example
* // Used through a builder function Border.solid(), and not by creating a new instance
* import {Cloudinary} from "@cloudinary/base";
* import {Cloudinary} from "@cloudinary/js-url-gen";
*
* const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});
* const image = yourCldInstance.image('woman');
Expand Down
4 changes: 2 additions & 2 deletions src/actions/conditional.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {Transformation} from "../transformation/Transformation";
* @memberOf Actions
* @namespace Conditional
* @example
* import {Cloudinary} from "@cloudinary/base";
* import {Cloudinary} from "@cloudinary/js-url-gen";
*
* const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});
* const image = yourCldInstance.image('woman');
Expand All @@ -24,7 +24,7 @@ import {Transformation} from "../transformation/Transformation";
* @see Actions.Conditional
* @example
* // To be used through a builder and not to be created as an instance!
* import {Cloudinary} from "@cloudinary/base";
* import {Cloudinary} from "@cloudinary/js-url-gen";
*
* const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});
* const image = yourCldInstance.image('woman');
Expand Down
4 changes: 2 additions & 2 deletions src/actions/customFunction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* @memberOf Actions
* @namespace CustomFunction
* @example
* import {Cloudinary} from "@cloudinary/base";
* import {remote, wasm} from "@cloudinary/base/actions/customFunction";
* import {Cloudinary} from "@cloudinary/js-url-gen";
* import {remote, wasm} from "@cloudinary/js-url-gen/actions/customFunction";
*
* const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});
* const image = yourCldInstance.image('woman');
Expand Down
Loading