adds memoization and perf fixes (#450)

* adds memoization and perf fixes

* 0.16.1
This commit is contained in:
Atul R 2020-03-17 00:17:15 +01:00 committed by GitHub
parent d1cabf3a4d
commit 50f43d955a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 7 deletions

7
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@nodegui/nodegui",
"version": "0.16.0",
"version": "0.16.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -5598,6 +5598,11 @@
"integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==",
"dev": true
},
"memoize-one": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz",
"integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA=="
},
"memory-stream": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/memory-stream/-/memory-stream-0.0.3.tgz",

View File

@ -1,6 +1,6 @@
{
"name": "@nodegui/nodegui",
"version": "0.16.0",
"version": "0.16.1",
"description": "A cross platform library to build native desktop apps.",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
@ -33,6 +33,7 @@
"cross-env": "^7.0.0",
"cuid": "^2.1.6",
"manage-path": "^2.0.0",
"memoize-one": "^5.1.1",
"node-addon-api": "^2.0.0",
"postcss-nodegui-autoprefixer": "0.0.7",
"prebuild-install": "^5.3.3"

View File

@ -14,6 +14,7 @@ import { QRect } from '../QtCore/QRect';
import { QObjectSignals } from '../QtCore/QObject';
import { QFont } from '../QtGui/QFont';
import { QAction } from './QAction';
import memoizeOne from 'memoize-one';
/**
@ -56,6 +57,9 @@ export abstract class NodeWidget<Signals extends QWidgetSignals> extends YogaWid
constructor(native: NativeElement) {
super(native);
this.actions = new Set<QAction>();
this.setStyleSheet = memoizeOne(this.setStyleSheet);
this.setInlineStyle = memoizeOne(this.setInlineStyle);
this.setObjectName = memoizeOne(this.setObjectName);
}
show(): void {
this.native.show();

View File

@ -10,14 +10,15 @@ export function checkIfNapiExternal(arg: any): boolean {
return addon.NUtils.isNapiExternal(arg);
}
function noop(): void {
return;
}
// function noop(): void {
// return;
// }
export const wrapWithActivateUvLoop = (func: Function) => {
return (...args: any[]): any => {
const activateUvLoop = (process as any).activateUvLoop || noop;
activateUvLoop();
// Temporarily removing activateUvLoop
// const activateUvLoop = (process as any).activateUvLoop || noop;
// activateUvLoop();
return func(...args);
};
};