diff --git a/CHANGELOG.md b/CHANGELOG.md index fc7c76391f..a483b540ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,12 @@ Changelog _Note: Gaps between patch versions are faulty, broken or test releases._ +## v4.0.0-beta.172 (2024-12-25) + +#### :boom: Breaking Change + +* Updated `@v4fire/core` to version `4.0.0-alpha.54` with renaming `Function.prototype.once` to `memoize` + ## v4.0.0-beta.171 (2024-12-23) #### :house: Internal diff --git a/package.json b/package.json index 500fd64e1e..d2b304baf1 100644 --- a/package.json +++ b/package.json @@ -169,7 +169,7 @@ "@types/semver": "7.3.10", "@types/webpack": "5.28.0", "@v4fire/cli": "1.6.0", - "@v4fire/core": "4.0.0-alpha.53", + "@v4fire/core": "v4fire/core#fix/remove-once-fn-proto", "@v4fire/linters": "git+https://github.com/v4fire/linters#rework_rules", "@v4fire/storybook": "0.8.0", "@v4fire/storybook-framework-webpack5": "0.8.0", diff --git a/src/components/directives/bind-with/interface.ts b/src/components/directives/bind-with/interface.ts index 6763e92892..57a5b27027 100644 --- a/src/components/directives/bind-with/interface.ts +++ b/src/components/directives/bind-with/interface.ts @@ -6,7 +6,7 @@ * https://github.com/V4Fire/Client/blob/master/LICENSE */ -import type { EventEmitterLike, PromiseLikeP } from 'core/async'; +import type { EventEmitterLikeP, PromiseLikeP } from 'core/async'; import type { DirectiveBinding } from 'core/component/engines'; import type { WatchOptions } from 'core/component/interface'; @@ -62,7 +62,7 @@ export interface EventListener extends Handle { /** * An event emitter to listen */ - emitter?: EventEmitterLike | EventEmitterLike['on']; + emitter?: EventEmitterLikeP; /** * The event name to listen for, or a list of such events diff --git a/src/components/directives/bind-with/test/unit/main.ts b/src/components/directives/bind-with/test/unit/main.ts index 93e28c2d80..f31b18b5ac 100644 --- a/src/components/directives/bind-with/test/unit/main.ts +++ b/src/components/directives/bind-with/test/unit/main.ts @@ -47,6 +47,7 @@ test.describe('components/directives/bind-with', () => { const el = await renderDirective(page, { emitter: (event: string, listener: AnyFunction) => { document.body.addEventListener(event, listener); + return undefined; }, on: 'testEvent' diff --git a/src/components/super/i-block/base/index.ts b/src/components/super/i-block/base/index.ts index 2803c538a7..8e85152039 100644 --- a/src/components/super/i-block/base/index.ts +++ b/src/components/super/i-block/base/index.ts @@ -519,7 +519,7 @@ export default abstract class iBlockBase extends iBlockFriends { // eslint-disable-next-line prefer-const unwatch: Nullable; - const emitter: Function = (_: any, wrappedHandler: RawWatchHandler) => { + const emitter = (_: any, wrappedHandler: RawWatchHandler) => { wrappedHandler['originalLength'] = handler['originalLength'] ?? handler.length; handler = wrappedHandler; diff --git a/src/core/component/engines/vue3/component.ts b/src/core/component/engines/vue3/component.ts index 91bc957610..84d445ca3a 100644 --- a/src/core/component/engines/vue3/component.ts +++ b/src/core/component/engines/vue3/component.ts @@ -67,7 +67,7 @@ export function getComponent(meta: ComponentMeta): ComponentOptions { + const emitter = (_: unknown, handler: WatchHandler) => { // eslint-disable-next-line @v4fire/unbound-method const {unwatch} = watch(unsafe.$fields, {deep: true, immediate: true}, handler); return unwatch; diff --git a/src/core/component/init/states/before-create.ts b/src/core/component/init/states/before-create.ts index 80c09af384..4cfc54c0e7 100644 --- a/src/core/component/init/states/before-create.ts +++ b/src/core/component/init/states/before-create.ts @@ -121,7 +121,7 @@ export function beforeCreateState( let fn = () => ('getRoot' in ctx ? ctx.getRoot?.() : null) ?? ctx.$root; - fn = fn.once(); + fn = fn.memoize(); Object.defineProperty(ctx, $getRoot, { configurable: true, @@ -163,7 +163,7 @@ export function beforeCreateState( return targetCtx[$getParent]; } - let fn: CanUndef; + let fn: CanUndef; if (restArgs != null) { // VNODE @@ -179,7 +179,7 @@ export function beforeCreateState( fn = () => ctx; } - fn = fn.once(); + fn = fn.memoize(); Object.defineProperty(targetCtx, $getParent, { configurable: true, diff --git a/src/core/init/dependencies/helpers.ts b/src/core/init/dependencies/helpers.ts index 679fc746ac..9cc5bb46cc 100644 --- a/src/core/init/dependencies/helpers.ts +++ b/src/core/init/dependencies/helpers.ts @@ -137,7 +137,7 @@ export function* createDependencyIterator( wait: expandedWait }; - expandedDependency.fn = expandedDependency.fn.once(); + expandedDependency.fn = expandedDependency.fn.memoize(); expandedDependencies.set(dependency, expandedDependency); return expandedDependency; diff --git a/yarn.lock b/yarn.lock index c0544281ae..bc5922724f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5740,7 +5740,7 @@ __metadata: "@types/webpack-env": "npm:1.18.1" "@v4fire/cli": "npm:1.6.0" "@v4fire/config": "npm:1.0.0" - "@v4fire/core": "npm:4.0.0-alpha.53" + "@v4fire/core": "v4fire/core#fix/remove-once-fn-proto" "@v4fire/design-system": "npm:1.23.0" "@v4fire/linters": "git+https://github.com/v4fire/linters#rework_rules" "@v4fire/storybook": "npm:0.8.0" @@ -6022,9 +6022,9 @@ __metadata: languageName: node linkType: hard -"@v4fire/core@npm:4.0.0-alpha.53": +"@v4fire/core@v4fire/core#fix/remove-once-fn-proto": version: 4.0.0-alpha.53 - resolution: "@v4fire/core@npm:4.0.0-alpha.53" + resolution: "@v4fire/core@https://github.com/v4fire/core.git#commit=cf79bd0e90b2a0929a6aa30a3ce4e63b240aede2" dependencies: "@babel/core": "npm:7.17.5" "@babel/helper-module-transforms": "npm:7.16.7" @@ -6167,7 +6167,7 @@ __metadata: optional: true xhr2: optional: true - checksum: e8d94bbb1c671f8b3b69b1671cd5cd9b5f4e42443ec0f68563cb387ef5b30a9b977696c2260ced8ccbb753f220e16b1f28a6462926b1b9a1129fd642122e753d + checksum: f2f7fe25beb1d37f703d31d528d8fa3b7de7ed1ba92668a1fd56c6fd67e9b246ba5b193406a4db6ff38233bbb28660f8ec96e2f6617ff3bbaa81b8b4633c6c85 languageName: node linkType: hard