From 0f6dbb47d51b36a7842ca1fa1906a6b0c9e0e039 Mon Sep 17 00:00:00 2001 From: Sam Carlton Date: Mon, 2 May 2022 22:49:36 -0500 Subject: [PATCH] Add makeObservableArray function --- helpers/app-files-scanner.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/helpers/app-files-scanner.js b/helpers/app-files-scanner.js index 1214279..ec5c627 100644 --- a/helpers/app-files-scanner.js +++ b/helpers/app-files-scanner.js @@ -39,6 +39,32 @@ function callWithTimeout(timeout, func) { let zip +// https://stackoverflow.com/a/35610685/1397641 +const arrayChangeHandler = { + get: function( target, property ) { + console.log('getting ' + property + ' for ' + target) + // property is index in this case + return target[property] + }, + set: function( target, property, value, receiver ) { + console.log('setting ' + property + ' for ' + target + ' with value ' + value) + target[property] = value + // you have to return true to accept the changes + return true + } +} + +export function makeObservableArray () { + const originalArray = [] + const proxyToArray = new Proxy( originalArray, arrayChangeHandler ) + + return { + originalArray, + proxyToArray + } +} + + export default class AppFilesScanner { constructor( {