@player-ui/asset-transform-plugin 0.8.0--canary.307.9621 → 0.8.0--canary.410.15865
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +137 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/{index.esm.js → index.legacy-esm.js} +31 -38
- package/dist/index.mjs +109 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +21 -58
- package/src/__tests__/index.test.ts +359 -0
- package/src/__tests__/propertiesToSkip.test.ts +445 -0
- package/src/__tests__/utils.test.ts +170 -0
- package/src/index.ts +9 -9
- package/src/propertiesToSkip.ts +3 -3
- package/src/utils.ts +2 -2
- package/types/index.d.ts +18 -0
- package/types/propertiesToSkip.d.ts +8 -0
- package/types/utils.d.ts +15 -0
- package/dist/index.cjs.js +0 -123
- package/dist/index.d.ts +0 -39
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
AssetTransformPlugin: () => AssetTransformPlugin,
|
|
24
|
+
compose: () => compose,
|
|
25
|
+
composeBefore: () => composeBefore,
|
|
26
|
+
propertiesToSkipTransform: () => propertiesToSkipTransform
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(src_exports);
|
|
29
|
+
var import_partial_match_registry = require("@player-ui/partial-match-registry");
|
|
30
|
+
|
|
31
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/utils.ts
|
|
32
|
+
function composeTransforms(...args) {
|
|
33
|
+
const [fn, ...fns] = args.reverse();
|
|
34
|
+
return (asset, options, store) => {
|
|
35
|
+
const value = fn(asset, options, store);
|
|
36
|
+
if (!fns.length) {
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
return fns.reduce((prevValue, current) => {
|
|
40
|
+
return current(prevValue, options, store);
|
|
41
|
+
}, value);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function composeBefore(...args) {
|
|
45
|
+
return {
|
|
46
|
+
beforeResolve: composeTransforms(...args)
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function compose(...args) {
|
|
50
|
+
const beforeResolveFns = [];
|
|
51
|
+
const resolveFns = [];
|
|
52
|
+
for (const arg of args) {
|
|
53
|
+
if (typeof arg === "function") {
|
|
54
|
+
resolveFns.push(arg);
|
|
55
|
+
} else {
|
|
56
|
+
if (arg?.resolve) {
|
|
57
|
+
resolveFns.push(arg.resolve);
|
|
58
|
+
}
|
|
59
|
+
if (arg?.beforeResolve) {
|
|
60
|
+
beforeResolveFns.push(arg.beforeResolve);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
beforeResolve: beforeResolveFns.length ? composeTransforms(...beforeResolveFns) : void 0,
|
|
66
|
+
resolve: resolveFns.length ? composeTransforms(...resolveFns) : void 0
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/propertiesToSkip.ts
|
|
71
|
+
var propertiesToSkipTransform = (parameters) => {
|
|
72
|
+
return (asset) => {
|
|
73
|
+
const skipArray = asset.plugins?.stringResolver?.propertiesToSkip ?? [];
|
|
74
|
+
const parameterArray = parameters.filter((element) => {
|
|
75
|
+
return element !== "";
|
|
76
|
+
});
|
|
77
|
+
if (parameterArray.length === 0) {
|
|
78
|
+
return asset;
|
|
79
|
+
}
|
|
80
|
+
if (skipArray.length > 0 && skipArray.every((arr) => parameterArray.includes(arr)) && parameterArray.every((arr) => skipArray.includes(arr))) {
|
|
81
|
+
return asset;
|
|
82
|
+
}
|
|
83
|
+
const addParams = /* @__PURE__ */ new Set([...skipArray, ...parameterArray]);
|
|
84
|
+
return {
|
|
85
|
+
...asset,
|
|
86
|
+
plugins: {
|
|
87
|
+
...asset.plugins,
|
|
88
|
+
stringResolver: {
|
|
89
|
+
...asset?.plugins?.stringResolver,
|
|
90
|
+
propertiesToSkip: [...addParams]
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts
|
|
98
|
+
function maybeCompose(maybeFn) {
|
|
99
|
+
if (typeof maybeFn === "object") {
|
|
100
|
+
return maybeFn;
|
|
101
|
+
}
|
|
102
|
+
return compose(maybeFn);
|
|
103
|
+
}
|
|
104
|
+
function cleanupTransformRegistry(maybeRegistry) {
|
|
105
|
+
if (Array.isArray(maybeRegistry)) {
|
|
106
|
+
const wrappedTransforms = maybeRegistry.map(([key, value]) => {
|
|
107
|
+
return [key, maybeCompose(value)];
|
|
108
|
+
});
|
|
109
|
+
return new import_partial_match_registry.Registry(wrappedTransforms);
|
|
110
|
+
}
|
|
111
|
+
const registry = new import_partial_match_registry.Registry();
|
|
112
|
+
maybeRegistry.forEach(({ key, value }) => {
|
|
113
|
+
registry.set(key, maybeCompose(value));
|
|
114
|
+
});
|
|
115
|
+
return registry;
|
|
116
|
+
}
|
|
117
|
+
var AssetTransformPlugin = class {
|
|
118
|
+
constructor(transforms) {
|
|
119
|
+
this.name = "asset-transform";
|
|
120
|
+
this.registry = cleanupTransformRegistry(transforms);
|
|
121
|
+
}
|
|
122
|
+
apply(player) {
|
|
123
|
+
player.hooks.viewController.tap(this.name, (vc) => {
|
|
124
|
+
this.registry.forEach(
|
|
125
|
+
({ key, value }) => vc.transformRegistry.set(key, maybeCompose(value))
|
|
126
|
+
);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
131
|
+
0 && (module.exports = {
|
|
132
|
+
AssetTransformPlugin,
|
|
133
|
+
compose,
|
|
134
|
+
composeBefore,
|
|
135
|
+
propertiesToSkipTransform
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts","../../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/utils.ts","../../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/propertiesToSkip.ts"],"sourcesContent":["import type {\n Player,\n PlayerPlugin,\n TransformRegistry,\n TransformFunction,\n TransformFunctions,\n} from \"@player-ui/player\";\nimport { Registry } from \"@player-ui/partial-match-registry\";\nimport { compose } from \"./utils\";\n\nexport * from \"./utils\";\nexport * from \"./propertiesToSkip\";\n\nexport type TransformType = TransformFunction<any> | TransformFunctions;\nexport type TransformRegistryEntries = Array<[any, TransformType]>;\nexport type AssetTransformInit =\n | Registry<TransformType>\n | TransformRegistryEntries;\n\n/**\n * Normalize asset transform values so that they are all objects that contains\n * the resolve & beforeResolve functions.\n */\nfunction maybeCompose(maybeFn: any): TransformFunctions {\n if (typeof maybeFn === \"object\") {\n return maybeFn;\n }\n\n return compose(maybeFn);\n}\n\n/**\n * Standardize each variation of Asset Registry input into the same transform\n * registry shape.\n */\nfunction cleanupTransformRegistry(\n maybeRegistry: AssetTransformInit,\n): TransformRegistry {\n if (Array.isArray(maybeRegistry)) {\n const wrappedTransforms = maybeRegistry.map(([key, value]) => {\n return [key, maybeCompose(value)] as [any, TransformFunctions];\n });\n\n return new Registry(wrappedTransforms);\n }\n\n const registry = new Registry<TransformFunctions>();\n\n maybeRegistry.forEach(({ key, value }) => {\n registry.set(key, maybeCompose(value));\n });\n\n return registry;\n}\n\n/**\n * A plugin to register custom transforms on certain asset types\n * This allows users to embed stateful data into transforms.\n */\nexport class AssetTransformPlugin implements PlayerPlugin {\n name = \"asset-transform\";\n public readonly registry: TransformRegistry;\n\n constructor(transforms: AssetTransformInit) {\n this.registry = cleanupTransformRegistry(transforms);\n }\n\n apply(player: Player) {\n player.hooks.viewController.tap(this.name, (vc) => {\n this.registry.forEach(({ key, value }) =>\n vc.transformRegistry.set(key, maybeCompose(value)),\n );\n });\n }\n}\n","import type {\n Resolve,\n Store,\n BeforeTransformFunction,\n TransformFunction,\n TransformFunctions,\n} from \"@player-ui/player\";\n\nfunction composeTransforms(\n ...args: TransformFunction<any>[]\n): TransformFunction<any>;\n\nfunction composeTransforms(\n ...args: BeforeTransformFunction<any>[]\n): BeforeTransformFunction<any>;\n\n/**\n * More closely resembles the `compose` function you may have used. Performs\n * right-to-left function evaluation, but leveraging the common signature for\n * Transform Functions. The `options` and `store` is unchanging for each\n * transform since only `value` is returned, allowing them to safely be passed\n * into each transform.\n */\nfunction composeTransforms(\n ...args: TransformFunction<any>[] | BeforeTransformFunction<any>[]\n): TransformFunction<any> | BeforeTransformFunction<any> {\n const [fn, ...fns] = args.reverse();\n\n return (asset: any, options: Resolve.NodeResolveOptions, store: Store) => {\n const value = fn(asset, options, store);\n\n if (!fns.length) {\n return value;\n }\n\n return fns.reduce((prevValue, current) => {\n return current(prevValue, options, store);\n }, value);\n };\n}\n\n/**\n * Helper function to make it easier to create transforms that need to be ran in\n * the `beforeResolve` hook. Just like `compose`, functions are evaluated from\n * right-to-left.\n */\nexport function composeBefore(\n ...args: BeforeTransformFunction<any>[]\n): TransformFunctions {\n return {\n beforeResolve: composeTransforms(...args),\n };\n}\n\n/**\n * Performs right-to-left function evaluation of each transform function. Unlike\n * other compose functions, this does not require unary arguments for all but the\n * last function. The value returned from each function will be used as the value\n * for the next function.\n */\nexport function compose(\n ...args: Array<TransformFunction<any> | TransformFunctions>\n): TransformFunctions {\n const beforeResolveFns: BeforeTransformFunction<any>[] = [];\n const resolveFns: TransformFunction<any>[] = [];\n\n for (const arg of args) {\n if (typeof arg === \"function\") {\n resolveFns.push(arg);\n } else {\n if (arg?.resolve) {\n resolveFns.push(arg.resolve);\n }\n\n if (arg?.beforeResolve) {\n beforeResolveFns.push(arg.beforeResolve);\n }\n }\n }\n\n return {\n beforeResolve: beforeResolveFns.length\n ? composeTransforms(...beforeResolveFns)\n : undefined,\n resolve: resolveFns.length ? composeTransforms(...resolveFns) : undefined,\n };\n}\n","import type { BeforeTransformFunction } from \"@player-ui/player\";\n\n/**\n * Passes a property to the plugins.stringResolver.propertiesToSkip array or creates it if it doesn't exist\n *\n * @param asset - Asset to apply the transform to\n */\nexport const propertiesToSkipTransform = (\n parameters: string[],\n): BeforeTransformFunction => {\n return (asset) => {\n const skipArray = asset.plugins?.stringResolver?.propertiesToSkip ?? [];\n\n /** makes sure there are no empty strings in the array */\n const parameterArray = parameters.filter((element) => {\n return element !== \"\";\n });\n\n if (parameterArray.length === 0) {\n return asset;\n }\n\n if (\n skipArray.length > 0 &&\n skipArray.every((arr) => parameterArray.includes(arr)) &&\n parameterArray.every((arr) => skipArray.includes(arr))\n ) {\n return asset;\n }\n\n const addParams: Set<string> = new Set([...skipArray, ...parameterArray]);\n\n return {\n ...asset,\n plugins: {\n ...asset.plugins,\n stringResolver: {\n ...asset?.plugins?.stringResolver,\n propertiesToSkip: [...addParams],\n },\n },\n };\n };\n};\n"],"mappings":"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","names":[]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts
|
|
2
|
+
import { Registry } from "@player-ui/partial-match-registry";
|
|
2
3
|
|
|
4
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/utils.ts
|
|
3
5
|
function composeTransforms(...args) {
|
|
4
6
|
const [fn, ...fns] = args.reverse();
|
|
5
7
|
return (asset, options, store) => {
|
|
@@ -24,10 +26,10 @@ function compose(...args) {
|
|
|
24
26
|
if (typeof arg === "function") {
|
|
25
27
|
resolveFns.push(arg);
|
|
26
28
|
} else {
|
|
27
|
-
if (arg
|
|
29
|
+
if (arg?.resolve) {
|
|
28
30
|
resolveFns.push(arg.resolve);
|
|
29
31
|
}
|
|
30
|
-
if (arg
|
|
32
|
+
if (arg?.beforeResolve) {
|
|
31
33
|
beforeResolveFns.push(arg.beforeResolve);
|
|
32
34
|
}
|
|
33
35
|
}
|
|
@@ -38,29 +40,10 @@ function compose(...args) {
|
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
44
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
45
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
46
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
47
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
48
|
-
var __spreadValues = (a, b) => {
|
|
49
|
-
for (var prop in b || (b = {}))
|
|
50
|
-
if (__hasOwnProp.call(b, prop))
|
|
51
|
-
__defNormalProp(a, prop, b[prop]);
|
|
52
|
-
if (__getOwnPropSymbols)
|
|
53
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
54
|
-
if (__propIsEnum.call(b, prop))
|
|
55
|
-
__defNormalProp(a, prop, b[prop]);
|
|
56
|
-
}
|
|
57
|
-
return a;
|
|
58
|
-
};
|
|
59
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
60
|
-
const propertiesToSkipTransform = (parameters) => {
|
|
43
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/propertiesToSkip.ts
|
|
44
|
+
var propertiesToSkipTransform = (parameters) => {
|
|
61
45
|
return (asset) => {
|
|
62
|
-
|
|
63
|
-
const skipArray = (_c = (_b = (_a = asset.plugins) == null ? void 0 : _a.stringResolver) == null ? void 0 : _b.propertiesToSkip) != null ? _c : [];
|
|
46
|
+
const skipArray = asset.plugins?.stringResolver?.propertiesToSkip ?? [];
|
|
64
47
|
const parameterArray = parameters.filter((element) => {
|
|
65
48
|
return element !== "";
|
|
66
49
|
});
|
|
@@ -70,17 +53,21 @@ const propertiesToSkipTransform = (parameters) => {
|
|
|
70
53
|
if (skipArray.length > 0 && skipArray.every((arr) => parameterArray.includes(arr)) && parameterArray.every((arr) => skipArray.includes(arr))) {
|
|
71
54
|
return asset;
|
|
72
55
|
}
|
|
73
|
-
const addParams = new Set([...skipArray, ...parameterArray]);
|
|
74
|
-
return
|
|
75
|
-
|
|
76
|
-
|
|
56
|
+
const addParams = /* @__PURE__ */ new Set([...skipArray, ...parameterArray]);
|
|
57
|
+
return {
|
|
58
|
+
...asset,
|
|
59
|
+
plugins: {
|
|
60
|
+
...asset.plugins,
|
|
61
|
+
stringResolver: {
|
|
62
|
+
...asset?.plugins?.stringResolver,
|
|
77
63
|
propertiesToSkip: [...addParams]
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
81
67
|
};
|
|
82
68
|
};
|
|
83
69
|
|
|
70
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts
|
|
84
71
|
function maybeCompose(maybeFn) {
|
|
85
72
|
if (typeof maybeFn === "object") {
|
|
86
73
|
return maybeFn;
|
|
@@ -100,17 +87,23 @@ function cleanupTransformRegistry(maybeRegistry) {
|
|
|
100
87
|
});
|
|
101
88
|
return registry;
|
|
102
89
|
}
|
|
103
|
-
|
|
90
|
+
var AssetTransformPlugin = class {
|
|
104
91
|
constructor(transforms) {
|
|
105
92
|
this.name = "asset-transform";
|
|
106
93
|
this.registry = cleanupTransformRegistry(transforms);
|
|
107
94
|
}
|
|
108
95
|
apply(player) {
|
|
109
96
|
player.hooks.viewController.tap(this.name, (vc) => {
|
|
110
|
-
this.registry.forEach(
|
|
97
|
+
this.registry.forEach(
|
|
98
|
+
({ key, value }) => vc.transformRegistry.set(key, maybeCompose(value))
|
|
99
|
+
);
|
|
111
100
|
});
|
|
112
101
|
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
102
|
+
};
|
|
103
|
+
export {
|
|
104
|
+
AssetTransformPlugin,
|
|
105
|
+
compose,
|
|
106
|
+
composeBefore,
|
|
107
|
+
propertiesToSkipTransform
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts
|
|
2
|
+
import { Registry } from "@player-ui/partial-match-registry";
|
|
3
|
+
|
|
4
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/utils.ts
|
|
5
|
+
function composeTransforms(...args) {
|
|
6
|
+
const [fn, ...fns] = args.reverse();
|
|
7
|
+
return (asset, options, store) => {
|
|
8
|
+
const value = fn(asset, options, store);
|
|
9
|
+
if (!fns.length) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
return fns.reduce((prevValue, current) => {
|
|
13
|
+
return current(prevValue, options, store);
|
|
14
|
+
}, value);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function composeBefore(...args) {
|
|
18
|
+
return {
|
|
19
|
+
beforeResolve: composeTransforms(...args)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function compose(...args) {
|
|
23
|
+
const beforeResolveFns = [];
|
|
24
|
+
const resolveFns = [];
|
|
25
|
+
for (const arg of args) {
|
|
26
|
+
if (typeof arg === "function") {
|
|
27
|
+
resolveFns.push(arg);
|
|
28
|
+
} else {
|
|
29
|
+
if (arg?.resolve) {
|
|
30
|
+
resolveFns.push(arg.resolve);
|
|
31
|
+
}
|
|
32
|
+
if (arg?.beforeResolve) {
|
|
33
|
+
beforeResolveFns.push(arg.beforeResolve);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
beforeResolve: beforeResolveFns.length ? composeTransforms(...beforeResolveFns) : void 0,
|
|
39
|
+
resolve: resolveFns.length ? composeTransforms(...resolveFns) : void 0
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/propertiesToSkip.ts
|
|
44
|
+
var propertiesToSkipTransform = (parameters) => {
|
|
45
|
+
return (asset) => {
|
|
46
|
+
const skipArray = asset.plugins?.stringResolver?.propertiesToSkip ?? [];
|
|
47
|
+
const parameterArray = parameters.filter((element) => {
|
|
48
|
+
return element !== "";
|
|
49
|
+
});
|
|
50
|
+
if (parameterArray.length === 0) {
|
|
51
|
+
return asset;
|
|
52
|
+
}
|
|
53
|
+
if (skipArray.length > 0 && skipArray.every((arr) => parameterArray.includes(arr)) && parameterArray.every((arr) => skipArray.includes(arr))) {
|
|
54
|
+
return asset;
|
|
55
|
+
}
|
|
56
|
+
const addParams = /* @__PURE__ */ new Set([...skipArray, ...parameterArray]);
|
|
57
|
+
return {
|
|
58
|
+
...asset,
|
|
59
|
+
plugins: {
|
|
60
|
+
...asset.plugins,
|
|
61
|
+
stringResolver: {
|
|
62
|
+
...asset?.plugins?.stringResolver,
|
|
63
|
+
propertiesToSkip: [...addParams]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// ../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts
|
|
71
|
+
function maybeCompose(maybeFn) {
|
|
72
|
+
if (typeof maybeFn === "object") {
|
|
73
|
+
return maybeFn;
|
|
74
|
+
}
|
|
75
|
+
return compose(maybeFn);
|
|
76
|
+
}
|
|
77
|
+
function cleanupTransformRegistry(maybeRegistry) {
|
|
78
|
+
if (Array.isArray(maybeRegistry)) {
|
|
79
|
+
const wrappedTransforms = maybeRegistry.map(([key, value]) => {
|
|
80
|
+
return [key, maybeCompose(value)];
|
|
81
|
+
});
|
|
82
|
+
return new Registry(wrappedTransforms);
|
|
83
|
+
}
|
|
84
|
+
const registry = new Registry();
|
|
85
|
+
maybeRegistry.forEach(({ key, value }) => {
|
|
86
|
+
registry.set(key, maybeCompose(value));
|
|
87
|
+
});
|
|
88
|
+
return registry;
|
|
89
|
+
}
|
|
90
|
+
var AssetTransformPlugin = class {
|
|
91
|
+
constructor(transforms) {
|
|
92
|
+
this.name = "asset-transform";
|
|
93
|
+
this.registry = cleanupTransformRegistry(transforms);
|
|
94
|
+
}
|
|
95
|
+
apply(player) {
|
|
96
|
+
player.hooks.viewController.tap(this.name, (vc) => {
|
|
97
|
+
this.registry.forEach(
|
|
98
|
+
({ key, value }) => vc.transformRegistry.set(key, maybeCompose(value))
|
|
99
|
+
);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
export {
|
|
104
|
+
AssetTransformPlugin,
|
|
105
|
+
compose,
|
|
106
|
+
composeBefore,
|
|
107
|
+
propertiesToSkipTransform
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/index.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/utils.ts","../../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/plugins/asset-transform/core/src/propertiesToSkip.ts"],"sourcesContent":["import type {\n Player,\n PlayerPlugin,\n TransformRegistry,\n TransformFunction,\n TransformFunctions,\n} from \"@player-ui/player\";\nimport { Registry } from \"@player-ui/partial-match-registry\";\nimport { compose } from \"./utils\";\n\nexport * from \"./utils\";\nexport * from \"./propertiesToSkip\";\n\nexport type TransformType = TransformFunction<any> | TransformFunctions;\nexport type TransformRegistryEntries = Array<[any, TransformType]>;\nexport type AssetTransformInit =\n | Registry<TransformType>\n | TransformRegistryEntries;\n\n/**\n * Normalize asset transform values so that they are all objects that contains\n * the resolve & beforeResolve functions.\n */\nfunction maybeCompose(maybeFn: any): TransformFunctions {\n if (typeof maybeFn === \"object\") {\n return maybeFn;\n }\n\n return compose(maybeFn);\n}\n\n/**\n * Standardize each variation of Asset Registry input into the same transform\n * registry shape.\n */\nfunction cleanupTransformRegistry(\n maybeRegistry: AssetTransformInit,\n): TransformRegistry {\n if (Array.isArray(maybeRegistry)) {\n const wrappedTransforms = maybeRegistry.map(([key, value]) => {\n return [key, maybeCompose(value)] as [any, TransformFunctions];\n });\n\n return new Registry(wrappedTransforms);\n }\n\n const registry = new Registry<TransformFunctions>();\n\n maybeRegistry.forEach(({ key, value }) => {\n registry.set(key, maybeCompose(value));\n });\n\n return registry;\n}\n\n/**\n * A plugin to register custom transforms on certain asset types\n * This allows users to embed stateful data into transforms.\n */\nexport class AssetTransformPlugin implements PlayerPlugin {\n name = \"asset-transform\";\n public readonly registry: TransformRegistry;\n\n constructor(transforms: AssetTransformInit) {\n this.registry = cleanupTransformRegistry(transforms);\n }\n\n apply(player: Player) {\n player.hooks.viewController.tap(this.name, (vc) => {\n this.registry.forEach(({ key, value }) =>\n vc.transformRegistry.set(key, maybeCompose(value)),\n );\n });\n }\n}\n","import type {\n Resolve,\n Store,\n BeforeTransformFunction,\n TransformFunction,\n TransformFunctions,\n} from \"@player-ui/player\";\n\nfunction composeTransforms(\n ...args: TransformFunction<any>[]\n): TransformFunction<any>;\n\nfunction composeTransforms(\n ...args: BeforeTransformFunction<any>[]\n): BeforeTransformFunction<any>;\n\n/**\n * More closely resembles the `compose` function you may have used. Performs\n * right-to-left function evaluation, but leveraging the common signature for\n * Transform Functions. The `options` and `store` is unchanging for each\n * transform since only `value` is returned, allowing them to safely be passed\n * into each transform.\n */\nfunction composeTransforms(\n ...args: TransformFunction<any>[] | BeforeTransformFunction<any>[]\n): TransformFunction<any> | BeforeTransformFunction<any> {\n const [fn, ...fns] = args.reverse();\n\n return (asset: any, options: Resolve.NodeResolveOptions, store: Store) => {\n const value = fn(asset, options, store);\n\n if (!fns.length) {\n return value;\n }\n\n return fns.reduce((prevValue, current) => {\n return current(prevValue, options, store);\n }, value);\n };\n}\n\n/**\n * Helper function to make it easier to create transforms that need to be ran in\n * the `beforeResolve` hook. Just like `compose`, functions are evaluated from\n * right-to-left.\n */\nexport function composeBefore(\n ...args: BeforeTransformFunction<any>[]\n): TransformFunctions {\n return {\n beforeResolve: composeTransforms(...args),\n };\n}\n\n/**\n * Performs right-to-left function evaluation of each transform function. Unlike\n * other compose functions, this does not require unary arguments for all but the\n * last function. The value returned from each function will be used as the value\n * for the next function.\n */\nexport function compose(\n ...args: Array<TransformFunction<any> | TransformFunctions>\n): TransformFunctions {\n const beforeResolveFns: BeforeTransformFunction<any>[] = [];\n const resolveFns: TransformFunction<any>[] = [];\n\n for (const arg of args) {\n if (typeof arg === \"function\") {\n resolveFns.push(arg);\n } else {\n if (arg?.resolve) {\n resolveFns.push(arg.resolve);\n }\n\n if (arg?.beforeResolve) {\n beforeResolveFns.push(arg.beforeResolve);\n }\n }\n }\n\n return {\n beforeResolve: beforeResolveFns.length\n ? composeTransforms(...beforeResolveFns)\n : undefined,\n resolve: resolveFns.length ? composeTransforms(...resolveFns) : undefined,\n };\n}\n","import type { BeforeTransformFunction } from \"@player-ui/player\";\n\n/**\n * Passes a property to the plugins.stringResolver.propertiesToSkip array or creates it if it doesn't exist\n *\n * @param asset - Asset to apply the transform to\n */\nexport const propertiesToSkipTransform = (\n parameters: string[],\n): BeforeTransformFunction => {\n return (asset) => {\n const skipArray = asset.plugins?.stringResolver?.propertiesToSkip ?? [];\n\n /** makes sure there are no empty strings in the array */\n const parameterArray = parameters.filter((element) => {\n return element !== \"\";\n });\n\n if (parameterArray.length === 0) {\n return asset;\n }\n\n if (\n skipArray.length > 0 &&\n skipArray.every((arr) => parameterArray.includes(arr)) &&\n parameterArray.every((arr) => skipArray.includes(arr))\n ) {\n return asset;\n }\n\n const addParams: Set<string> = new Set([...skipArray, ...parameterArray]);\n\n return {\n ...asset,\n plugins: {\n ...asset.plugins,\n stringResolver: {\n ...asset?.plugins?.stringResolver,\n propertiesToSkip: [...addParams],\n },\n },\n };\n };\n};\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,67 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@player-ui/asset-transform-plugin",
|
|
3
|
-
"version": "0.8.0--canary.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"registry": "
|
|
3
|
+
"version": "0.8.0--canary.410.15865",
|
|
4
|
+
"main": "dist/cjs/index.cjs",
|
|
5
|
+
"dependencies": {
|
|
6
|
+
"@player-ui/partial-match-registry": "0.8.0--canary.410.15865",
|
|
7
|
+
"tslib": "^2.6.2"
|
|
7
8
|
},
|
|
8
9
|
"peerDependencies": {
|
|
9
|
-
"@player-ui/player": "0.8.0--canary.
|
|
10
|
-
"@player-ui/types": "0.8.0--canary.
|
|
11
|
-
},
|
|
12
|
-
"dependencies": {
|
|
13
|
-
"@player-ui/partial-match-registry": "0.8.0--canary.307.9621",
|
|
14
|
-
"@babel/runtime": "7.15.4"
|
|
10
|
+
"@player-ui/player": "0.8.0--canary.410.15865",
|
|
11
|
+
"@player-ui/types": "0.8.0--canary.410.15865"
|
|
15
12
|
},
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"typings": "dist/index.d.ts",
|
|
13
|
+
"module": "dist/index.legacy-esm.js",
|
|
14
|
+
"types": "types/index.d.ts",
|
|
19
15
|
"sideEffects": false,
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
"homepage": "https://player-ui.github.io",
|
|
29
|
-
"contributors": [
|
|
30
|
-
{
|
|
31
|
-
"name": "Adam Dierkens",
|
|
32
|
-
"url": "https://github.com/adierkens"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"name": "Spencer Hamm",
|
|
36
|
-
"url": "https://github.com/spentacular"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"name": "Harris Borawski",
|
|
40
|
-
"url": "https://github.com/hborawski"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"name": "Jeremiah Zucker",
|
|
44
|
-
"url": "https://github.com/sugarmanz"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"name": "Ketan Reddy",
|
|
48
|
-
"url": "https://github.com/KetanReddy"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"name": "Brocollie08",
|
|
52
|
-
"url": "https://github.com/brocollie08"
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"name": "Kelly Harrop",
|
|
56
|
-
"url": "https://github.com/kharrop"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"name": "Alejandro Fimbres",
|
|
60
|
-
"url": "https://github.com/lexfm"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"name": "Rafael Campos",
|
|
64
|
-
"url": "https://github.com/rafbcampos"
|
|
16
|
+
"exports": {
|
|
17
|
+
"./package.json": "./package.json",
|
|
18
|
+
"./dist/index.css": "./dist/index.css",
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./types/index.d.ts",
|
|
21
|
+
"import": "./dist/index.mjs",
|
|
22
|
+
"default": "./dist/cjs/index.cjs"
|
|
65
23
|
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"src",
|
|
28
|
+
"types"
|
|
66
29
|
]
|
|
67
30
|
}
|