Files
jsowell-charger-web/jsowell-ui/node_modules/parse5/lib/utils/mixin.js
Lemon f5e6e29f00 Merge branch 'dev-zza' into dev
# Conflicts:
#	jsowell-ui/.env.development
#	jsowell-ui/.env.staging
#	jsowell-ui/bin/build-sit.bat
#	jsowell-ui/bin/build.bat
#	jsowell-ui/src/api/adapayMember/adapayMember.js
#	jsowell-ui/src/api/pile/merchant.js
#	jsowell-ui/src/router/index.js
#	jsowell-ui/src/views/financial/financeDetail.vue
#	jsowell-ui/src/views/financial/merchant.vue
#	jsowell-ui/src/views/homeIndex/homeIndex.vue
#	jsowell-ui/src/views/login.vue
#	jsowell-ui/src/views/pile/basic/detail.vue
#	jsowell-ui/src/views/pile/station/components/SiteInfo.vue
#	jsowell-ui/src/views/pile/station/detail.vue
#	jsowell-ui/src/views/pile/station/orderReport.vue
2025-06-03 14:26:37 +08:00

40 lines
900 B
JavaScript

'use strict';
class Mixin {
constructor(host) {
const originalMethods = {};
const overriddenMethods = this._getOverriddenMethods(this, originalMethods);
for (const key of Object.keys(overriddenMethods)) {
if (typeof overriddenMethods[key] === 'function') {
originalMethods[key] = host[key];
host[key] = overriddenMethods[key];
}
}
}
_getOverriddenMethods() {
throw new Error('Not implemented');
}
}
Mixin.install = function(host, Ctor, opts) {
if (!host.__mixins) {
host.__mixins = [];
}
for (let i = 0; i < host.__mixins.length; i++) {
if (host.__mixins[i].constructor === Ctor) {
return host.__mixins[i];
}
}
const mixin = new Ctor(host, opts);
host.__mixins.push(mixin);
return mixin;
};
module.exports = Mixin;