adds memoization and perf fixes (#450)
* adds memoization and perf fixes * 0.16.1
This commit is contained in:
parent
d1cabf3a4d
commit
50f43d955a
7
package-lock.json
generated
7
package-lock.json
generated
@ -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",
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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);
|
||||
};
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user