MCPcopy
hub / github.com/chartjs/Chart.js / _createResolver

Function _createResolver

src/helpers/helpers.config.ts:27–108  ·  view source on GitHub ↗
(
  scopes: T,
  prefixes = [''],
  rootScopes?: R,
  fallback?: ResolverObjectKey,
  getTarget = () => scopes[0]
)

Source from the content-addressed store, hash-verified

25 * @private
26 */
27export function _createResolver<
28 T extends AnyObject[] = AnyObject[],
29 R extends AnyObject[] = T
30>(
31 scopes: T,
32 prefixes = [''],
33 rootScopes?: R,
34 fallback?: ResolverObjectKey,
35 getTarget = () => scopes[0]
36) {
37 const finalRootScopes = rootScopes || scopes;
38 if (typeof fallback === 'undefined') {
39 fallback = _resolve('_fallback', scopes);
40 }
41 const cache: ResolverCache<T, R> = {
42 [Symbol.toStringTag]: 'Object',
43 _cacheable: true,
44 _scopes: scopes,
45 _rootScopes: finalRootScopes,
46 _fallback: fallback,
47 _getTarget: getTarget,
48 override: (scope: AnyObject) => _createResolver([scope, ...scopes], prefixes, finalRootScopes, fallback),
49 };
50 return new Proxy(cache, {
51 /**
52 * A trap for the delete operator.
53 */
54 deleteProperty(target, prop: string) {
55 delete target[prop]; // remove from cache
56 delete target._keys; // remove cached keys
57 delete scopes[0][prop]; // remove from top level scope
58 return true;
59 },
60
61 /**
62 * A trap for getting property values.
63 */
64 get(target, prop: string) {
65 return _cached(target, prop,
66 () => _resolveWithPrefixes(prop, prefixes, scopes, target));
67 },
68
69 /**
70 * A trap for Object.getOwnPropertyDescriptor.
71 * Also used by Object.hasOwnProperty.
72 */
73 getOwnPropertyDescriptor(target, prop) {
74 return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);
75 },
76
77 /**
78 * A trap for Object.getPrototypeOf.
79 */
80 getPrototypeOf() {
81 return Reflect.getPrototypeOf(scopes[0]);
82 },
83
84 /**

Callers 4

createFunction · 0.85
getResolverFunction · 0.85
createSubResolverFunction · 0.85

Calls 1

_resolveFunction · 0.85

Tested by

no test coverage detected