Skip to content

Commit

Permalink
merge beta
Browse files Browse the repository at this point in the history
  • Loading branch information
ssalbdivad committed Oct 31, 2024
2 parents 8d3b70a + 23e9afd commit d65d08a
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 19 deletions.
19 changes: 19 additions & 0 deletions packages/url-loader/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
# [@cloudinary-util/url-loader-v6.0.0-beta.5](https://github.com/cloudinary-community/cloudinary-util/compare/@cloudinary-util/url-loader-v6.0.0-beta.4...@cloudinary-util/url-loader-v6.0.0-beta.5) (2024-10-31)

### Bug Fixes

- make plugins and cloudinaryPluginProps tree-shakeable ([#227](https://github.com/cloudinary-community/cloudinary-util/issues/227)) ([163cb2f](https://github.com/cloudinary-community/cloudinary-util/commit/163cb2fdd05c7a3444cfb22edade79891f25ffd3))

# [@cloudinary-util/url-loader-v6.0.0-beta.4](https://github.com/cloudinary-community/cloudinary-util/compare/@cloudinary-util/url-loader-v6.0.0-beta.3...@cloudinary-util/url-loader-v6.0.0-beta.4) (2024-10-25)

### Bug Fixes

- adding applyWhen to streaming profile to prevent abr plugin from running ([ef7e57a](https://github.com/cloudinary-community/cloudinary-util/commit/ef7e57adc03afb0e08ebf2bb0053d34c12054523))
- adding string and number back to replaceBackground ([672009a](https://github.com/cloudinary-community/cloudinary-util/commit/672009afb7797c540c0a6fdc31115f0c245ed8b2))

# [@cloudinary-util/url-loader-v6.0.0-beta.3](https://github.com/cloudinary-community/cloudinary-util/compare/@cloudinary-util/url-loader-v6.0.0-beta.2...@cloudinary-util/url-loader-v6.0.0-beta.3) (2024-10-24)

### Features

- enumerate plugin props ([#224](https://github.com/cloudinary-community/cloudinary-util/issues/224)) ([731d545](https://github.com/cloudinary-community/cloudinary-util/commit/731d54511741f9bb56fc6b1d6e978a8f21d88082))

# [@cloudinary-util/url-loader-v6.0.0-beta.2](https://github.com/cloudinary-community/cloudinary-util/compare/@cloudinary-util/url-loader-v6.0.0-beta.1...@cloudinary-util/url-loader-v6.0.0-beta.2) (2024-10-22)

### Bug Fixes
Expand Down
2 changes: 1 addition & 1 deletion packages/url-loader/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudinary-util/url-loader",
"version": "6.0.0-beta.2",
"version": "6.0.0-beta.5",
"type": "module",
"main": "./dist/index.cjs",
"types": "./dist/index.d.cts",
Expand Down
38 changes: 20 additions & 18 deletions packages/url-loader/src/lib/cloudinary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,20 +45,7 @@ import type {
} from "./plugin.js";
import { entriesOf, throwError } from "./utils.js";

export const cloudinaryPluginProps = {} as Record<CloudinaryKey, true>;

const validatePlugins = <const plugins extends readonly TransformationPlugin[]>(
...plugins: plugins extends validatePlugins<plugins>
? plugins
: validatePlugins<plugins>
) => {
plugins.forEach((plugin) => {
Object.assign(cloudinaryPluginProps, plugin.props);
});
return plugins;
};

export const transformationPlugins = validatePlugins(
export const transformationPlugins = [
// Some features *must* be the first transformation applied
// thus their plugins *must* come first in the chain

Expand Down Expand Up @@ -96,10 +83,25 @@ export const transformationPlugins = validatePlugins(
UnderlaysPlugin,
VersionPlugin,
ZoompanPlugin
);
] as const;

const getCloudinaryPluginProps = <const plugins extends readonly TransformationPlugin[]>(
plugins: plugins extends validatePlugins<plugins>
? plugins
: validatePlugins<plugins>
): Record<CloudinaryKey, true> => {
const cloudinaryPluginProps = {} as Record<CloudinaryKey, true>;

plugins.forEach((plugin) => {
Object.assign(cloudinaryPluginProps, plugin.props);
});

return cloudinaryPluginProps;
};

export const cloudinaryPluginProps = /* #__PURE__ */ getCloudinaryPluginProps(transformationPlugins);

// important this comes after `validatePlugins` is called so we've collected the props
export const cloudinaryPluginKeys: readonly CloudinaryKey[] = Object.keys(
export const cloudinaryPluginKeys: readonly CloudinaryKey[] = /* #__PURE__ */ Object.keys(
cloudinaryPluginProps
) as never;

Expand Down Expand Up @@ -356,7 +358,7 @@ type validatePlugins<
]
? validatePlugins<
rest,
[
readonly [
...validated,
keyof opts & keyof next["inferOwnOptions"] extends never
? // if the intersection is never, no options duplicate existing so the plugin is valid
Expand Down

0 comments on commit d65d08a

Please sign in to comment.