@blac/core 2.0.0-rc-14 → 2.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -0
- package/dist/Blac.d.ts +246 -0
- package/dist/Blac.d.ts.map +1 -0
- package/dist/Blac.js +625 -0
- package/dist/Blac.js.map +1 -0
- package/dist/Bloc.d.ts +41 -0
- package/dist/Bloc.d.ts.map +1 -0
- package/dist/Bloc.js +140 -0
- package/dist/Bloc.js.map +1 -0
- package/dist/BlocBase.d.ts +110 -0
- package/dist/BlocBase.d.ts.map +1 -0
- package/dist/BlocBase.js +287 -0
- package/dist/BlocBase.js.map +1 -0
- package/dist/Cubit.d.ts +25 -0
- package/dist/Cubit.d.ts.map +1 -0
- package/dist/Cubit.js +64 -0
- package/dist/Cubit.js.map +1 -0
- package/dist/adapter/BlacAdapter.d.ts +71 -0
- package/dist/adapter/BlacAdapter.d.ts.map +1 -0
- package/dist/adapter/BlacAdapter.js +373 -0
- package/dist/adapter/BlacAdapter.js.map +1 -0
- package/dist/adapter/ProxyFactory.d.ts +50 -0
- package/dist/adapter/ProxyFactory.d.ts.map +1 -0
- package/dist/adapter/ProxyFactory.js +150 -0
- package/dist/adapter/ProxyFactory.js.map +1 -0
- package/{src/adapter/index.ts → dist/adapter/index.d.ts} +1 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/adapter/index.js +19 -0
- package/dist/adapter/index.js.map +1 -0
- package/dist/errors/BlacError.d.ts +38 -0
- package/dist/errors/BlacError.d.ts.map +1 -0
- package/dist/errors/BlacError.js +55 -0
- package/dist/errors/BlacError.js.map +1 -0
- package/dist/errors/ErrorManager.d.ts +39 -0
- package/dist/errors/ErrorManager.d.ts.map +1 -0
- package/dist/errors/ErrorManager.js +91 -0
- package/dist/errors/ErrorManager.js.map +1 -0
- package/dist/errors/handleError.d.ts +24 -0
- package/dist/errors/handleError.d.ts.map +1 -0
- package/dist/errors/handleError.js +62 -0
- package/dist/errors/handleError.js.map +1 -0
- package/dist/errors/index.d.ts +5 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +13 -0
- package/dist/errors/index.js.map +1 -0
- package/{src/events.ts → dist/events.d.ts} +4 -2
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +17 -0
- package/dist/events.js.map +1 -0
- package/dist/index.cjs +38 -0
- package/dist/index.d.ts +17 -1303
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/lifecycle/BlocLifecycle.d.ts +51 -0
- package/dist/lifecycle/BlocLifecycle.d.ts.map +1 -0
- package/dist/lifecycle/BlocLifecycle.js +123 -0
- package/dist/lifecycle/BlocLifecycle.js.map +1 -0
- package/dist/lifecycle/index.d.ts +2 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +18 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/plugins/BlocPluginRegistry.d.ts +58 -0
- package/dist/plugins/BlocPluginRegistry.d.ts.map +1 -0
- package/dist/plugins/BlocPluginRegistry.js +201 -0
- package/dist/plugins/BlocPluginRegistry.js.map +1 -0
- package/dist/plugins/SystemPluginRegistry.d.ts +79 -0
- package/dist/plugins/SystemPluginRegistry.d.ts.map +1 -0
- package/dist/plugins/SystemPluginRegistry.js +184 -0
- package/dist/plugins/SystemPluginRegistry.js.map +1 -0
- package/{src/plugins/index.ts → dist/plugins/index.d.ts} +1 -5
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +26 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/types.d.ts +103 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +3 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/subscription/SubscriptionManager.d.ts +67 -0
- package/dist/subscription/SubscriptionManager.d.ts.map +1 -0
- package/dist/subscription/SubscriptionManager.js +317 -0
- package/dist/subscription/SubscriptionManager.js.map +1 -0
- package/{src/subscription/index.ts → dist/subscription/index.d.ts} +1 -0
- package/dist/subscription/index.d.ts.map +1 -0
- package/dist/subscription/index.js +19 -0
- package/dist/subscription/index.js.map +1 -0
- package/dist/subscription/types.d.ts +65 -0
- package/dist/subscription/types.d.ts.map +1 -0
- package/dist/subscription/types.js +3 -0
- package/dist/subscription/types.js.map +1 -0
- package/dist/testing.d.ts +85 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +186 -0
- package/dist/testing.js.map +1 -0
- package/{src/types.ts → dist/types.d.ts} +11 -28
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/BatchingManager.d.ts +28 -0
- package/dist/utils/BatchingManager.d.ts.map +1 -0
- package/dist/utils/BatchingManager.js +48 -0
- package/dist/utils/BatchingManager.js.map +1 -0
- package/dist/utils/RerenderLogger.d.ts +60 -0
- package/dist/utils/RerenderLogger.d.ts.map +1 -0
- package/dist/utils/RerenderLogger.js +205 -0
- package/dist/utils/RerenderLogger.js.map +1 -0
- package/dist/utils/generateInstanceId.d.ts +11 -0
- package/dist/utils/generateInstanceId.d.ts.map +1 -0
- package/dist/utils/generateInstanceId.js +50 -0
- package/dist/utils/generateInstanceId.js.map +1 -0
- package/dist/utils/shallowEqual.d.ts +9 -0
- package/dist/utils/shallowEqual.d.ts.map +1 -0
- package/dist/utils/shallowEqual.js +35 -0
- package/dist/utils/shallowEqual.js.map +1 -0
- package/dist/utils/uuid.d.ts +10 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +24 -0
- package/dist/utils/uuid.js.map +1 -0
- package/package.json +17 -10
- package/dist/index.cjs.js +0 -11
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.es.js +0 -2275
- package/dist/index.es.js.map +0 -1
- package/src/Blac.ts +0 -802
- package/src/Bloc.ts +0 -180
- package/src/BlocBase.ts +0 -398
- package/src/Cubit.ts +0 -68
- package/src/__tests__/Blac.config.test.ts +0 -79
- package/src/__tests__/Bloc.event.test.ts +0 -394
- package/src/__tests__/BlocBase.subscription.test.ts +0 -349
- package/src/__tests__/Cubit.test.ts +0 -462
- package/src/__tests__/memory-leaks.test.ts +0 -383
- package/src/__tests__/plugins.test.ts +0 -464
- package/src/adapter/BlacAdapter.ts +0 -467
- package/src/adapter/ProxyFactory.ts +0 -249
- package/src/adapter/__tests__/BlacAdapter.test.ts +0 -555
- package/src/adapter/__tests__/ProxyFactory.test.ts +0 -655
- package/src/errors/BlacError.ts +0 -69
- package/src/errors/ErrorManager.ts +0 -101
- package/src/errors/handleError.ts +0 -114
- package/src/errors/index.ts +0 -13
- package/src/index.ts +0 -26
- package/src/lifecycle/BlocLifecycle.ts +0 -156
- package/src/lifecycle/index.ts +0 -1
- package/src/plugins/BlocPluginRegistry.ts +0 -240
- package/src/plugins/SystemPluginRegistry.ts +0 -242
- package/src/plugins/__tests__/BlocPluginRegistry.test.ts +0 -450
- package/src/plugins/__tests__/SystemPluginRegistry.test.ts +0 -404
- package/src/plugins/types.ts +0 -129
- package/src/subscription/README.md +0 -132
- package/src/subscription/SubscriptionManager.ts +0 -395
- package/src/subscription/__tests__/SubscriptionManager.test.ts +0 -355
- package/src/subscription/types.ts +0 -90
- package/src/testing.ts +0 -246
- package/src/utils/BatchingManager.ts +0 -59
- package/src/utils/RerenderLogger.ts +0 -265
- package/src/utils/__tests__/generateInstanceId.test.ts +0 -104
- package/src/utils/__tests__/shallowEqual.test.ts +0 -171
- package/src/utils/__tests__/uuid.test.ts +0 -144
- package/src/utils/generateInstanceId.ts +0 -54
- package/src/utils/shallowEqual.ts +0 -40
- package/src/utils/uuid.ts +0 -22
package/dist/Cubit.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Cubit = void 0;
|
|
4
|
+
const Blac_1 = require("./Blac");
|
|
5
|
+
const BlocBase_1 = require("./BlocBase");
|
|
6
|
+
/**
|
|
7
|
+
* A Cubit is a simpler version of a Bloc that doesn't handle events.
|
|
8
|
+
* It manages state and provides methods to update it.
|
|
9
|
+
* @template S - The type of state this Cubit manages
|
|
10
|
+
*/
|
|
11
|
+
class Cubit extends BlocBase_1.BlocBase {
|
|
12
|
+
/**
|
|
13
|
+
* Updates the current state and notifies all observers of the change.
|
|
14
|
+
* If the new state is identical to the current state (using Object.is),
|
|
15
|
+
* no update will occur.
|
|
16
|
+
* @param state - The new state to set
|
|
17
|
+
*/
|
|
18
|
+
emit(state) {
|
|
19
|
+
if (Object.is(state, this.state)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const oldState = this.state;
|
|
23
|
+
const newState = state;
|
|
24
|
+
this._pushState(newState, oldState);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Partially updates the current state by merging it with the provided state patch.
|
|
28
|
+
* This method is only applicable when the state is an object type.
|
|
29
|
+
*
|
|
30
|
+
* @param statePatch - A partial state object containing only the properties to update
|
|
31
|
+
* @param ignoreChangeCheck - If true, skips checking if the state has actually changed
|
|
32
|
+
* @throws {TypeError} If the state is not an object type
|
|
33
|
+
*/
|
|
34
|
+
patch(statePatch, ignoreChangeCheck = false) {
|
|
35
|
+
if (typeof this.state !== 'object' || this.state === null) {
|
|
36
|
+
Blac_1.Blac.warn('Cubit.patch: was called on a cubit where the state is not an object. This is a no-op.');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
let changes = false;
|
|
40
|
+
if (!ignoreChangeCheck) {
|
|
41
|
+
for (const key in statePatch) {
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(statePatch, key)) {
|
|
43
|
+
const s = this.state;
|
|
44
|
+
const current = s[key];
|
|
45
|
+
if (!Object.is(statePatch[key], current)) {
|
|
46
|
+
changes = true;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
changes = true;
|
|
54
|
+
}
|
|
55
|
+
if (changes) {
|
|
56
|
+
this.emit({
|
|
57
|
+
...this.state,
|
|
58
|
+
...statePatch,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.Cubit = Cubit;
|
|
64
|
+
//# sourceMappingURL=Cubit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cubit.js","sourceRoot":"","sources":["../src/Cubit.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,yCAAsC;AAEtC;;;;GAIG;AACH,MAAsB,KAAS,SAAQ,mBAAW;IAChD;;;;;OAKG;IACH,IAAI,CAAC,KAAQ;QACX,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CACH,UAA6C,EAC7C,iBAAiB,GAAG,KAAK;QAEzB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1D,WAAI,CAAC,IAAI,CACP,uFAAuF,CACxF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;oBACrB,MAAM,OAAO,GAAG,CAAC,CAAC,GAAc,CAAC,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAc,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;wBACpD,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC;gBACR,GAAG,IAAI,CAAC,KAAK;gBACb,GAAI,UAAyB;aACzB,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF;AA3DD,sBA2DC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { BlocBase } from '../BlocBase';
|
|
2
|
+
import { BlocConstructor, BlocState } from '../types';
|
|
3
|
+
export interface AdapterOptions<B extends BlocBase<any>> {
|
|
4
|
+
instanceId?: string;
|
|
5
|
+
dependencies?: (bloc: B) => unknown[];
|
|
6
|
+
staticProps?: any;
|
|
7
|
+
onMount?: (bloc: B) => void;
|
|
8
|
+
onUnmount?: (bloc: B) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* BlacAdapter orchestrates the connection between Bloc instances and React components.
|
|
12
|
+
* It manages dependency tracking, lifecycle hooks, and proxy creation.
|
|
13
|
+
*/
|
|
14
|
+
export declare class BlacAdapter<B extends BlocConstructor<BlocBase<any>>> {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly blocConstructor: B;
|
|
17
|
+
readonly componentRef: {
|
|
18
|
+
current: object;
|
|
19
|
+
};
|
|
20
|
+
blocInstance: InstanceType<B>;
|
|
21
|
+
unmountTime: number;
|
|
22
|
+
mountTime: number;
|
|
23
|
+
private subscriptionId?;
|
|
24
|
+
private unsubscribe?;
|
|
25
|
+
private dependencyValues?;
|
|
26
|
+
private isUsingDependencies;
|
|
27
|
+
private trackedPaths;
|
|
28
|
+
private pendingTrackedPaths;
|
|
29
|
+
private cachedStateProxy?;
|
|
30
|
+
private cachedBlocProxy?;
|
|
31
|
+
private lastProxiedState?;
|
|
32
|
+
private hasMounted;
|
|
33
|
+
private mountCount;
|
|
34
|
+
private lastState?;
|
|
35
|
+
private lastDependencyValues?;
|
|
36
|
+
private componentName?;
|
|
37
|
+
private renderCount;
|
|
38
|
+
private lastDependenciesFn?;
|
|
39
|
+
options?: AdapterOptions<InstanceType<B>>;
|
|
40
|
+
constructor(instanceProps: {
|
|
41
|
+
componentRef: {
|
|
42
|
+
current: object;
|
|
43
|
+
};
|
|
44
|
+
blocConstructor: B;
|
|
45
|
+
}, options?: typeof this.options);
|
|
46
|
+
trackAccess(consumerRef: object, type: 'state' | 'class', path: string, value?: any): void;
|
|
47
|
+
updateBlocInstance(): InstanceType<B>;
|
|
48
|
+
createSubscription: (options: {
|
|
49
|
+
onChange: () => void;
|
|
50
|
+
}) => () => void;
|
|
51
|
+
hasDependencyValuesChanged: (oldValues: unknown[] | undefined, newValues: unknown[]) => boolean;
|
|
52
|
+
getStateProxy: () => BlocState<InstanceType<B>>;
|
|
53
|
+
getBlocProxy: () => InstanceType<B>;
|
|
54
|
+
createStateProxy: <T extends object>(props: {
|
|
55
|
+
target: T;
|
|
56
|
+
}) => T;
|
|
57
|
+
createClassProxy: <T extends object>(props: {
|
|
58
|
+
target: T;
|
|
59
|
+
}) => T;
|
|
60
|
+
mount: () => void;
|
|
61
|
+
unmount: () => void;
|
|
62
|
+
resetTracking(): void;
|
|
63
|
+
setComponentName(name: string): void;
|
|
64
|
+
notifyRender(): void;
|
|
65
|
+
private getAdapterMetadata;
|
|
66
|
+
private getValueAtPath;
|
|
67
|
+
private getStateChangedPaths;
|
|
68
|
+
private getDeepChangedPaths;
|
|
69
|
+
getLastRerenderReason(): any;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=BlacAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlacAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/BlacAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BlacAdapter = void 0;
|
|
4
|
+
const Blac_1 = require("../Blac");
|
|
5
|
+
const uuid_1 = require("../utils/uuid");
|
|
6
|
+
const generateInstanceId_1 = require("../utils/generateInstanceId");
|
|
7
|
+
const ProxyFactory_1 = require("./ProxyFactory");
|
|
8
|
+
/**
|
|
9
|
+
* BlacAdapter orchestrates the connection between Bloc instances and React components.
|
|
10
|
+
* It manages dependency tracking, lifecycle hooks, and proxy creation.
|
|
11
|
+
*/
|
|
12
|
+
class BlacAdapter {
|
|
13
|
+
id = `adapter-${(0, uuid_1.generateUUID)()}`;
|
|
14
|
+
blocConstructor;
|
|
15
|
+
componentRef = { current: {} };
|
|
16
|
+
blocInstance;
|
|
17
|
+
unmountTime = 0;
|
|
18
|
+
mountTime = 0;
|
|
19
|
+
// Subscription management
|
|
20
|
+
subscriptionId;
|
|
21
|
+
unsubscribe;
|
|
22
|
+
// Dependency tracking
|
|
23
|
+
dependencyValues;
|
|
24
|
+
isUsingDependencies = false;
|
|
25
|
+
trackedPaths = new Set();
|
|
26
|
+
pendingTrackedPaths = new Set(); // Paths tracked before subscription exists
|
|
27
|
+
// Proxy caching
|
|
28
|
+
cachedStateProxy;
|
|
29
|
+
cachedBlocProxy;
|
|
30
|
+
lastProxiedState;
|
|
31
|
+
// Lifecycle state
|
|
32
|
+
hasMounted = false;
|
|
33
|
+
mountCount = 0;
|
|
34
|
+
// Rerender tracking
|
|
35
|
+
lastState;
|
|
36
|
+
lastDependencyValues;
|
|
37
|
+
componentName;
|
|
38
|
+
renderCount = 0;
|
|
39
|
+
lastDependenciesFn;
|
|
40
|
+
options;
|
|
41
|
+
constructor(instanceProps, options) {
|
|
42
|
+
this.options = options;
|
|
43
|
+
this.blocConstructor = instanceProps.blocConstructor;
|
|
44
|
+
this.componentRef = instanceProps.componentRef;
|
|
45
|
+
this.isUsingDependencies = !!options?.dependencies;
|
|
46
|
+
// Initialize bloc instance
|
|
47
|
+
this.updateBlocInstance();
|
|
48
|
+
// Initialize dependency values if using dependencies
|
|
49
|
+
if (this.isUsingDependencies && options?.dependencies) {
|
|
50
|
+
this.dependencyValues = options.dependencies(this.blocInstance);
|
|
51
|
+
}
|
|
52
|
+
// Notify plugins
|
|
53
|
+
const metadata = this.getAdapterMetadata();
|
|
54
|
+
Blac_1.Blac.getInstance().plugins.notifyAdapterCreated(this, metadata);
|
|
55
|
+
}
|
|
56
|
+
trackAccess(consumerRef, type, path, value) {
|
|
57
|
+
const fullPath = type === 'class' ? `_class.${path}` : path;
|
|
58
|
+
this.trackedPaths.add(fullPath);
|
|
59
|
+
if (this.subscriptionId) {
|
|
60
|
+
this.blocInstance.trackAccess(this.subscriptionId, fullPath, value);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// No subscription ID yet - store for later
|
|
64
|
+
this.pendingTrackedPaths.add(fullPath);
|
|
65
|
+
if (Blac_1.Blac.config.logLevel === 'debug') {
|
|
66
|
+
Blac_1.Blac.log(`[BlacAdapter] trackAccess storing pending path: ${path}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
updateBlocInstance() {
|
|
71
|
+
// Determine the instance ID
|
|
72
|
+
let instanceId = this.options?.instanceId;
|
|
73
|
+
// If no explicit instanceId provided but staticProps exist, generate from them
|
|
74
|
+
if (!instanceId && this.options?.staticProps) {
|
|
75
|
+
const generatedId = (0, generateInstanceId_1.generateInstanceIdFromProps)(this.options.staticProps);
|
|
76
|
+
if (generatedId) {
|
|
77
|
+
instanceId = generatedId;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
this.blocInstance = Blac_1.Blac.instance.getBloc(this.blocConstructor, {
|
|
81
|
+
constructorParams: this.options?.staticProps,
|
|
82
|
+
id: instanceId,
|
|
83
|
+
instanceRef: this.id,
|
|
84
|
+
});
|
|
85
|
+
return this.blocInstance;
|
|
86
|
+
}
|
|
87
|
+
createSubscription = (options) => {
|
|
88
|
+
// If using manual dependencies, create a selector-based subscription
|
|
89
|
+
if (this.isUsingDependencies && this.options?.dependencies) {
|
|
90
|
+
this.unsubscribe = this.blocInstance.subscribeWithSelector((_state) => this.options.dependencies(this.blocInstance), (newValues) => {
|
|
91
|
+
const hasChanged = this.hasDependencyValuesChanged(this.dependencyValues, newValues);
|
|
92
|
+
if (hasChanged) {
|
|
93
|
+
this.dependencyValues = newValues;
|
|
94
|
+
options.onChange();
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// Create a component subscription with weak reference
|
|
100
|
+
const weakRef = new WeakRef(this.componentRef.current);
|
|
101
|
+
this.unsubscribe = this.blocInstance.subscribeComponent(weakRef, options.onChange);
|
|
102
|
+
// Get the subscription ID for tracking
|
|
103
|
+
const subscriptions = this.blocInstance._subscriptionManager
|
|
104
|
+
.subscriptions;
|
|
105
|
+
this.subscriptionId = Array.from(subscriptions.keys()).pop();
|
|
106
|
+
// Apply any pending tracked paths
|
|
107
|
+
if (this.subscriptionId && this.pendingTrackedPaths.size > 0) {
|
|
108
|
+
for (const path of this.pendingTrackedPaths) {
|
|
109
|
+
this.blocInstance.trackAccess(this.subscriptionId, path);
|
|
110
|
+
}
|
|
111
|
+
this.pendingTrackedPaths.clear();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Don't call onChange initially - let React handle the initial render
|
|
115
|
+
return () => {
|
|
116
|
+
if (this.unsubscribe) {
|
|
117
|
+
this.unsubscribe();
|
|
118
|
+
this.unsubscribe = undefined;
|
|
119
|
+
this.subscriptionId = undefined;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
hasDependencyValuesChanged = (oldValues, newValues) => {
|
|
124
|
+
if (!oldValues)
|
|
125
|
+
return true;
|
|
126
|
+
if (oldValues.length !== newValues.length)
|
|
127
|
+
return true;
|
|
128
|
+
for (let i = 0; i < oldValues.length; i++) {
|
|
129
|
+
if (!Object.is(oldValues[i], newValues[i])) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
};
|
|
135
|
+
getStateProxy = () => {
|
|
136
|
+
// If using manual dependencies or proxy tracking is disabled, return raw state
|
|
137
|
+
if (this.isUsingDependencies || !Blac_1.Blac.config.proxyDependencyTracking) {
|
|
138
|
+
return this.blocInstance.state;
|
|
139
|
+
}
|
|
140
|
+
// Return cached proxy if state hasn't changed
|
|
141
|
+
const currentState = this.blocInstance.state;
|
|
142
|
+
if (this.cachedStateProxy && this.lastProxiedState === currentState) {
|
|
143
|
+
return this.cachedStateProxy;
|
|
144
|
+
}
|
|
145
|
+
// Create new proxy for new state
|
|
146
|
+
this.lastProxiedState = currentState;
|
|
147
|
+
this.cachedStateProxy = this.createStateProxy({ target: currentState });
|
|
148
|
+
return this.cachedStateProxy;
|
|
149
|
+
};
|
|
150
|
+
getBlocProxy = () => {
|
|
151
|
+
// If using manual dependencies or proxy tracking is disabled, return raw bloc
|
|
152
|
+
if (this.isUsingDependencies || !Blac_1.Blac.config.proxyDependencyTracking) {
|
|
153
|
+
return this.blocInstance;
|
|
154
|
+
}
|
|
155
|
+
// Return cached proxy if bloc instance hasn't changed
|
|
156
|
+
if (this.cachedBlocProxy) {
|
|
157
|
+
return this.cachedBlocProxy;
|
|
158
|
+
}
|
|
159
|
+
// Create and cache proxy
|
|
160
|
+
this.cachedBlocProxy = this.createClassProxy({ target: this.blocInstance });
|
|
161
|
+
return this.cachedBlocProxy;
|
|
162
|
+
};
|
|
163
|
+
createStateProxy = (props) => {
|
|
164
|
+
return ProxyFactory_1.ProxyFactory.createStateProxy({
|
|
165
|
+
target: props.target,
|
|
166
|
+
consumerRef: this.componentRef.current,
|
|
167
|
+
consumerTracker: this,
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
createClassProxy = (props) => {
|
|
171
|
+
return ProxyFactory_1.ProxyFactory.createClassProxy({
|
|
172
|
+
target: props.target,
|
|
173
|
+
consumerRef: this.componentRef.current,
|
|
174
|
+
consumerTracker: this,
|
|
175
|
+
});
|
|
176
|
+
};
|
|
177
|
+
// Lifecycle methods
|
|
178
|
+
mount = () => {
|
|
179
|
+
this.hasMounted = true;
|
|
180
|
+
this.mountCount++;
|
|
181
|
+
this.mountTime = Date.now();
|
|
182
|
+
// Call onMount hook
|
|
183
|
+
if (this.options?.onMount) {
|
|
184
|
+
this.options.onMount(this.blocInstance);
|
|
185
|
+
}
|
|
186
|
+
// Refresh dependencies if using manual tracking
|
|
187
|
+
if (this.isUsingDependencies && this.options?.dependencies) {
|
|
188
|
+
this.dependencyValues = this.options.dependencies(this.blocInstance);
|
|
189
|
+
}
|
|
190
|
+
// Notify plugins
|
|
191
|
+
const metadata = this.getAdapterMetadata();
|
|
192
|
+
Blac_1.Blac.getInstance().plugins.notifyAdapterMount(this, metadata);
|
|
193
|
+
};
|
|
194
|
+
unmount = () => {
|
|
195
|
+
this.unmountTime = Date.now();
|
|
196
|
+
// Cancel subscription
|
|
197
|
+
if (this.unsubscribe) {
|
|
198
|
+
this.unsubscribe();
|
|
199
|
+
this.unsubscribe = undefined;
|
|
200
|
+
this.subscriptionId = undefined;
|
|
201
|
+
}
|
|
202
|
+
// Call onUnmount hook
|
|
203
|
+
if (this.options?.onUnmount) {
|
|
204
|
+
try {
|
|
205
|
+
this.options.onUnmount(this.blocInstance);
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
console.error('Error in onUnmount hook:', error);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Notify plugins
|
|
212
|
+
const metadata = this.getAdapterMetadata();
|
|
213
|
+
Blac_1.Blac.getInstance().plugins.notifyAdapterUnmount(this, metadata);
|
|
214
|
+
};
|
|
215
|
+
// Reset tracking for next render
|
|
216
|
+
resetTracking() {
|
|
217
|
+
// Clear tracked paths from previous render
|
|
218
|
+
this.trackedPaths.clear();
|
|
219
|
+
this.pendingTrackedPaths.clear();
|
|
220
|
+
// Clear subscription dependencies to track only current render
|
|
221
|
+
if (this.subscriptionId) {
|
|
222
|
+
const subscription = this.blocInstance._subscriptionManager.subscriptions.get(this.subscriptionId);
|
|
223
|
+
if (subscription && subscription.dependencies) {
|
|
224
|
+
// Clear old dependencies - we'll track new ones in this render
|
|
225
|
+
subscription.dependencies.clear();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Set component name for rerender logging
|
|
230
|
+
setComponentName(name) {
|
|
231
|
+
this.componentName = name;
|
|
232
|
+
}
|
|
233
|
+
// Notify plugins about render
|
|
234
|
+
notifyRender() {
|
|
235
|
+
this.renderCount++;
|
|
236
|
+
// Update dependency values if using manual tracking
|
|
237
|
+
if (this.isUsingDependencies && this.options?.dependencies) {
|
|
238
|
+
this.lastDependencyValues = this.dependencyValues;
|
|
239
|
+
this.dependencyValues = this.options.dependencies(this.blocInstance);
|
|
240
|
+
}
|
|
241
|
+
const metadata = this.getAdapterMetadata();
|
|
242
|
+
Blac_1.Blac.getInstance().plugins.notifyAdapterRender(this, metadata);
|
|
243
|
+
}
|
|
244
|
+
// Get adapter metadata for plugins
|
|
245
|
+
getAdapterMetadata() {
|
|
246
|
+
return {
|
|
247
|
+
componentName: this.componentName,
|
|
248
|
+
blocInstance: this.blocInstance,
|
|
249
|
+
renderCount: this.renderCount,
|
|
250
|
+
trackedPaths: Array.from(this.trackedPaths),
|
|
251
|
+
isUsingDependencies: this.isUsingDependencies,
|
|
252
|
+
lastState: this.lastState,
|
|
253
|
+
lastDependencyValues: this.lastDependencyValues,
|
|
254
|
+
currentDependencyValues: this.dependencyValues,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
// Get value at a dot-notated path
|
|
258
|
+
getValueAtPath(obj, path) {
|
|
259
|
+
const parts = path.split('.');
|
|
260
|
+
let current = obj;
|
|
261
|
+
for (const part of parts) {
|
|
262
|
+
if (current == null)
|
|
263
|
+
return undefined;
|
|
264
|
+
current = current[part];
|
|
265
|
+
}
|
|
266
|
+
return current;
|
|
267
|
+
}
|
|
268
|
+
// Get paths that changed between states
|
|
269
|
+
getStateChangedPaths(oldState, newState) {
|
|
270
|
+
const changedPaths = [];
|
|
271
|
+
// Only check tracked paths if we have any
|
|
272
|
+
if (this.trackedPaths.size > 0) {
|
|
273
|
+
for (const path of this.trackedPaths) {
|
|
274
|
+
// Skip class property paths
|
|
275
|
+
if (path.startsWith('_class.'))
|
|
276
|
+
continue;
|
|
277
|
+
const oldValue = this.getValueAtPath(oldState, path);
|
|
278
|
+
const newValue = this.getValueAtPath(newState, path);
|
|
279
|
+
if (!Object.is(oldValue, newValue)) {
|
|
280
|
+
changedPaths.push(path);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
// No tracked paths - do deep comparison to find what changed
|
|
286
|
+
if (oldState !== newState) {
|
|
287
|
+
const deepChanges = this.getDeepChangedPaths(oldState, newState);
|
|
288
|
+
if (deepChanges.length > 0) {
|
|
289
|
+
return deepChanges;
|
|
290
|
+
}
|
|
291
|
+
changedPaths.push('(entire state)');
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return changedPaths;
|
|
295
|
+
}
|
|
296
|
+
// Deep comparison to find all changed paths
|
|
297
|
+
getDeepChangedPaths(oldObj, newObj, basePath = '') {
|
|
298
|
+
const changes = [];
|
|
299
|
+
// Handle null/undefined
|
|
300
|
+
if (oldObj === newObj)
|
|
301
|
+
return changes;
|
|
302
|
+
if (oldObj == null || newObj == null) {
|
|
303
|
+
changes.push(basePath || '(root)');
|
|
304
|
+
return changes;
|
|
305
|
+
}
|
|
306
|
+
// Handle primitives
|
|
307
|
+
if (typeof oldObj !== 'object' || typeof newObj !== 'object') {
|
|
308
|
+
if (oldObj !== newObj) {
|
|
309
|
+
changes.push(basePath || '(root)');
|
|
310
|
+
}
|
|
311
|
+
return changes;
|
|
312
|
+
}
|
|
313
|
+
// Handle arrays
|
|
314
|
+
if (Array.isArray(oldObj) || Array.isArray(newObj)) {
|
|
315
|
+
if (!Array.isArray(oldObj) ||
|
|
316
|
+
!Array.isArray(newObj) ||
|
|
317
|
+
oldObj.length !== newObj.length) {
|
|
318
|
+
changes.push(basePath || '(root)');
|
|
319
|
+
return changes;
|
|
320
|
+
}
|
|
321
|
+
// Compare array elements
|
|
322
|
+
for (let i = 0; i < oldObj.length; i++) {
|
|
323
|
+
const elementPath = basePath ? `${basePath}[${i}]` : `[${i}]`;
|
|
324
|
+
changes.push(...this.getDeepChangedPaths(oldObj[i], newObj[i], elementPath));
|
|
325
|
+
}
|
|
326
|
+
return changes;
|
|
327
|
+
}
|
|
328
|
+
// Handle objects
|
|
329
|
+
const allKeys = new Set([...Object.keys(oldObj), ...Object.keys(newObj)]);
|
|
330
|
+
for (const key of allKeys) {
|
|
331
|
+
const keyPath = basePath ? `${basePath}.${key}` : key;
|
|
332
|
+
if (!(key in oldObj)) {
|
|
333
|
+
changes.push(`${keyPath} (added)`);
|
|
334
|
+
}
|
|
335
|
+
else if (!(key in newObj)) {
|
|
336
|
+
changes.push(`${keyPath} (removed)`);
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
const oldVal = oldObj[key];
|
|
340
|
+
const newVal = newObj[key];
|
|
341
|
+
// Use Object.is for comparison
|
|
342
|
+
if (!Object.is(oldVal, newVal)) {
|
|
343
|
+
// For primitives and different object references, record the change
|
|
344
|
+
if (typeof oldVal !== 'object' ||
|
|
345
|
+
typeof newVal !== 'object' ||
|
|
346
|
+
oldVal === null ||
|
|
347
|
+
newVal === null) {
|
|
348
|
+
changes.push(keyPath);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
// For objects/arrays, recurse deeper
|
|
352
|
+
const deeperChanges = this.getDeepChangedPaths(oldVal, newVal, keyPath);
|
|
353
|
+
if (deeperChanges.length > 0) {
|
|
354
|
+
changes.push(...deeperChanges);
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
// Objects are different references but have same content
|
|
358
|
+
changes.push(keyPath);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
return changes;
|
|
365
|
+
}
|
|
366
|
+
// Get last rerender reason
|
|
367
|
+
getLastRerenderReason() {
|
|
368
|
+
// This method is deprecated - render reason is now handled by the RenderLoggingPlugin
|
|
369
|
+
return undefined;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
exports.BlacAdapter = BlacAdapter;
|
|
373
|
+
//# sourceMappingURL=BlacAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlacAdapter.js","sourceRoot":"","sources":["../../src/adapter/BlacAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { BlocBase } from '../BlocBase';
|
|
2
|
+
interface ConsumerTracker {
|
|
3
|
+
trackAccess: (consumerRef: object, type: 'state' | 'class', path: string, value?: any) => void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Creates a proxy for state objects that tracks property access
|
|
7
|
+
*/
|
|
8
|
+
export declare const createStateProxy: <T extends object>(target: T, consumerRef: object, consumerTracker: ConsumerTracker, path?: string) => T;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a proxy for bloc instances that tracks getter access
|
|
11
|
+
*/
|
|
12
|
+
export declare const createBlocProxy: <T extends object>(target: T, consumerRef: object, consumerTracker: ConsumerTracker) => T;
|
|
13
|
+
export declare const ProxyFactory: {
|
|
14
|
+
createStateProxy: (options: {
|
|
15
|
+
target: any;
|
|
16
|
+
consumerRef: object;
|
|
17
|
+
consumerTracker: ConsumerTracker;
|
|
18
|
+
path?: string;
|
|
19
|
+
}) => any;
|
|
20
|
+
createClassProxy: (options: {
|
|
21
|
+
target: any;
|
|
22
|
+
consumerRef: object;
|
|
23
|
+
consumerTracker: ConsumerTracker;
|
|
24
|
+
}) => any;
|
|
25
|
+
getProxyState: <B extends BlocBase<any>>(options: {
|
|
26
|
+
state: any;
|
|
27
|
+
consumerRef: object;
|
|
28
|
+
consumerTracker: ConsumerTracker;
|
|
29
|
+
}) => any;
|
|
30
|
+
getProxyBlocInstance: <B extends BlocBase<any>>(options: {
|
|
31
|
+
blocInstance: B;
|
|
32
|
+
consumerRef: object;
|
|
33
|
+
consumerTracker: ConsumerTracker;
|
|
34
|
+
}) => B;
|
|
35
|
+
getStats: () => {
|
|
36
|
+
propertyAccesses: number;
|
|
37
|
+
nestedProxiesCreated: number;
|
|
38
|
+
cacheEfficiency: string;
|
|
39
|
+
lifetime: string;
|
|
40
|
+
proxiesPerSecond: string;
|
|
41
|
+
stateProxiesCreated: number;
|
|
42
|
+
classProxiesCreated: number;
|
|
43
|
+
cacheHits: number;
|
|
44
|
+
cacheMisses: number;
|
|
45
|
+
totalProxiesCreated: number;
|
|
46
|
+
};
|
|
47
|
+
resetStats: () => void;
|
|
48
|
+
};
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=ProxyFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProxyFactory.d.ts","sourceRoot":"","sources":["../../src/adapter/ProxyFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,UAAU,eAAe;IACvB,WAAW,EAAE,CACX,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,GAAG,OAAO,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,GAAG,KACR,IAAI,CAAC;CACX;AAcD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,EAC/C,QAAQ,CAAC,EACT,aAAa,MAAM,EACnB,iBAAiB,eAAe,EAChC,aAAS,KACR,CAuEF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,MAAM,EAC9C,QAAQ,CAAC,EACT,aAAa,MAAM,EACnB,iBAAiB,eAAe,KAC/B,CA8CF,CAAC;AAyBF,eAAO,MAAM,YAAY;gCACK;QAC1B,MAAM,EAAE,GAAG,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,eAAe,CAAC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;gCAQ2B;QAC1B,MAAM,EAAE,GAAG,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,eAAe,CAAC;KAClC;oBAOe,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,WAAW;QAChD,KAAK,EAAE,GAAG,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,eAAe,CAAC;KAClC;2BAOsB,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,WAAW;QACvD,YAAY,EAAE,CAAC,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,eAAe,CAAC;KAClC;;;;;;;;;;;;;;CA0BF,CAAC"}
|