MCPcopy Create free account
hub / github.com/Tencent/libpag / proxyVector

Function proxyVector

web/src/utils/type-utils.ts:13–40  ·  view source on GitHub ↗
(
  vector: Vector<any>,
  process: T,
)

Source from the content-addressed store, hash-verified

11};
12
13export const proxyVector = <T extends (...args: any) => any>(
14 vector: Vector<any>,
15 process: T,
16): Vector<ReturnType<T>> => {
17 const proxy = new Proxy(vector, {
18 get(target, property, receiver) {
19 switch (property) {
20 case 'get':
21 return (index: number) => {
22 const wasmIns = rewindData(target.get, target, index);
23 return !wasmIns ? wasmIns : process(wasmIns);
24 };
25 case 'push_back':
26 return (value: ReturnType<T>) => {
27 rewindData(target.push_back, target, value.wasmIns || value);
28 return undefined;
29 };
30 case 'size':
31 return () => {
32 return rewindData(target.size, target);
33 };
34 default:
35 return Reflect.get(target, property, receiver);
36 }
37 },
38 });
39 return proxy;
40};
41
42export const layer2typeLayer = (wasmIns: any): PAGSolidLayer | PAGTextLayer | PAGImageLayer | PAGLayer => {
43 switch (rewindData(wasmIns._layerType, wasmIns)) {

Callers 2

audioMarkersMethod · 0.90
markersMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected