refactor: extract apply-platform-mixins.js from index.js
Move all 59 mixin Object.assign registrations into apply-platform-mixins.js with identical order; index.js invokes applyPlatformMixins after export. Refactor slash/oauth/invite/permission/worker json mixins to createJsonExportHealDelegateMixin. index.js reduced by ~116 lines; behavior unchanged. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -54,6 +54,8 @@ Application facade: one `PearcordPlatform` class that wires identity, database,
|
||||
|
||||
**Phase 723 (v0.8.699):** Dedicated slash registry & invoke audit export JSON — `slash-registry-json-mixin.js`, `slash-invoke-audit-json-mixin.js`, spans `slash-registry.json` / `slash-invoke-audit.json`, `getSlashInvokeAuditExportJsonExport`, `clearSlashInvokeAuditExportJsonExports`, deep links `openSlashRegistryJson` / `openSlashInvokeAuditJson`. Bundle: `npm run test:ci-phase723`.
|
||||
|
||||
**Phase 727 (v0.8.703):** Mixin registration extracted to `apply-platform-mixins.js` (59 assigns, same order). `createJsonExportHealDelegateMixin` for slash/oauth/invite/permission/worker combined json mixins. Bundle: `npm run test:ci-phase727`.
|
||||
|
||||
**Phase 726 (v0.8.702):** Legacy combined `*-json-mixin.js` files migrated to `pearcord-json-export-mixin` (`createJsonExportDualHealMixin`, gossip+delegate pattern). All 21 legacy mixins factory-backed; audit keeps custom mod-digest heal. Bundle: `npm run test:ci-phase726`.
|
||||
|
||||
**Phase 725 (v0.8.701):** Dedicated bot registry & webhook execute export JSON — `bot-registry-json-mixin.js`, `webhook-json-mixin.js`, spans `bot-registry.json` / `webhook.json`, deep links `openBotRegistryJson` / `openWebhookExecuteExportJson`. Mesh dedupe/heal logic lives in `pearcord-json-export-mixin`. Bundle: `npm run test:ci-phase725`.
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
'use strict'
|
||||
|
||||
/**
|
||||
* Side-effect mixin registration for PearcordPlatform (preserves assign order from index.js).
|
||||
*/
|
||||
function applyPlatformMixins (PearcordPlatform) {
|
||||
const { pollSchedulingMixin } = require('./polls-scheduling')
|
||||
const { notificationsActivityMixin } = require('./notifications-activity')
|
||||
const { userSettingsMixin } = require('./user-settings')
|
||||
const { moderationMixin } = require('./moderation')
|
||||
const { invitesDiscoveryMixin } = require('./invites-discovery')
|
||||
const { threadsForumMixin } = require('./threads-forum')
|
||||
const { announcementsMixin } = require('./announcements-mixin')
|
||||
const { permissionsMixin } = require('./permissions-mixin')
|
||||
const { memberRolesMixin } = require('./member-roles-mixin')
|
||||
const { slashMixin } = require('./slash-mixin')
|
||||
const { botsMixin } = require('./bots-mixin')
|
||||
const { webhooksMixin } = require('./webhooks-mixin')
|
||||
const { automationMixin } = require('./automation-mixin')
|
||||
const { workersMixin } = require('./workers-mixin')
|
||||
const { deliveryMixin } = require('./delivery-mixin')
|
||||
const { healthMixin } = require('./health-mixin')
|
||||
const { auditJsonMixin } = require('./audit-json-mixin')
|
||||
const { digestJsonMixin } = require('./digest-json-mixin')
|
||||
const { relayJsonMixin } = require('./relay-json-mixin')
|
||||
const { workerJsonMixin } = require('./worker-json-mixin')
|
||||
const { botRegistryJsonMixin } = require('./bot-registry-json-mixin')
|
||||
const { slashJsonMixin } = require('./slash-json-mixin')
|
||||
const { oauthJsonMixin } = require('./oauth-json-mixin')
|
||||
const { inviteJsonMixin } = require('./invite-json-mixin')
|
||||
const { permissionJsonMixin } = require('./permission-json-mixin')
|
||||
const { emojiJsonMixin } = require('./emoji-json-mixin')
|
||||
const { memberJsonMixin } = require('./member-json-mixin')
|
||||
const { banJsonMixin } = require('./ban-json-mixin')
|
||||
const { pollJsonMixin } = require('./poll-json-mixin')
|
||||
const { pinJsonMixin } = require('./pin-json-mixin')
|
||||
const { threadJsonMixin } = require('./thread-json-mixin')
|
||||
const { stageJsonMixin } = require('./stage-json-mixin')
|
||||
const { voiceJsonMixin } = require('./voice-json-mixin')
|
||||
const { screenJsonMixin } = require('./screen-json-mixin')
|
||||
const { presenceJsonMixin } = require('./presence-json-mixin')
|
||||
const { notificationJsonMixin } = require('./notification-json-mixin')
|
||||
const { statusJsonMixin } = require('./status-json-mixin')
|
||||
const { activityJsonMixin } = require('./activity-json-mixin')
|
||||
const { sessionJsonMixin } = require('./session-json-mixin')
|
||||
const { deviceJsonMixin } = require('./device-json-mixin')
|
||||
const { discoveryJsonMixin } = require('./discovery-json-mixin')
|
||||
const { federationJsonMixin } = require('./federation-json-mixin')
|
||||
const { meshJsonMixin } = require('./mesh-json-mixin')
|
||||
const { multiGuildJsonMixin } = require('./multi-guild-json-mixin')
|
||||
const { partitionHealJsonMixin } = require('./partition-heal-json-mixin')
|
||||
const { channelFollowJsonMixin } = require('./channel-follow-json-mixin')
|
||||
const { guildWidgetJsonMixin } = require('./guild-widget-json-mixin')
|
||||
const { readStateJsonMixin } = require('./read-state-json-mixin')
|
||||
const { webhookJsonMixin } = require('./webhook-json-mixin')
|
||||
const { vanityUrlJsonMixin } = require('./vanity-url-json-mixin')
|
||||
const { effectivePermissionJsonMixin } = require('./effective-permission-json-mixin')
|
||||
const { inviteLinkJsonMixin } = require('./invite-link-json-mixin')
|
||||
const { roleOverrideJsonMixin } = require('./role-override-json-mixin')
|
||||
const { oauthGrantJsonMixin } = require('./oauth-grant-json-mixin')
|
||||
const { oauthInstallTokenJsonMixin } = require('./oauth-install-token-json-mixin')
|
||||
const { slashRegistryJsonMixin } = require('./slash-registry-json-mixin')
|
||||
const { slashInvokeAuditJsonMixin } = require('./slash-invoke-audit-json-mixin')
|
||||
const { workerReleaseJsonMixin } = require('./worker-release-json-mixin')
|
||||
const { integrationManifestJsonMixin } = require('./integration-manifest-json-mixin')
|
||||
|
||||
Object.assign(PearcordPlatform.prototype, pollSchedulingMixin)
|
||||
Object.assign(PearcordPlatform.prototype, notificationsActivityMixin)
|
||||
Object.assign(PearcordPlatform.prototype, userSettingsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, moderationMixin)
|
||||
Object.assign(PearcordPlatform.prototype, invitesDiscoveryMixin)
|
||||
Object.assign(PearcordPlatform.prototype, threadsForumMixin)
|
||||
Object.assign(PearcordPlatform.prototype, announcementsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, permissionsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, memberRolesMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashMixin)
|
||||
Object.assign(PearcordPlatform.prototype, botsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, webhooksMixin)
|
||||
Object.assign(PearcordPlatform.prototype, automationMixin)
|
||||
Object.assign(PearcordPlatform.prototype, workersMixin)
|
||||
Object.assign(PearcordPlatform.prototype, deliveryMixin)
|
||||
Object.assign(PearcordPlatform.prototype, healthMixin)
|
||||
Object.assign(PearcordPlatform.prototype, auditJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, digestJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, relayJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, workerJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, botRegistryJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, oauthJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, inviteJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, permissionJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, emojiJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, memberJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, banJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, pollJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, pinJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, threadJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, stageJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, voiceJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, screenJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, presenceJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, notificationJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, statusJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, activityJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, sessionJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, deviceJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, discoveryJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, federationJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, meshJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, multiGuildJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, partitionHealJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, channelFollowJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, guildWidgetJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, readStateJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, webhookJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, vanityUrlJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, effectivePermissionJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, inviteLinkJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, roleOverrideJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, oauthGrantJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, oauthInstallTokenJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashRegistryJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashInvokeAuditJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, workerReleaseJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, integrationManifestJsonMixin)
|
||||
}
|
||||
|
||||
module.exports = { applyPlatformMixins }
|
||||
@@ -34728,121 +34728,5 @@ class PearcordPlatform extends EventEmitter {
|
||||
|
||||
module.exports = { PearcordPlatform, USER_STATUS }
|
||||
|
||||
const { pollSchedulingMixin } = require('./polls-scheduling')
|
||||
const { notificationsActivityMixin } = require('./notifications-activity')
|
||||
const { userSettingsMixin } = require('./user-settings')
|
||||
const { moderationMixin } = require('./moderation')
|
||||
const { invitesDiscoveryMixin } = require('./invites-discovery')
|
||||
const { threadsForumMixin } = require('./threads-forum')
|
||||
const { announcementsMixin } = require('./announcements-mixin')
|
||||
const { permissionsMixin } = require('./permissions-mixin')
|
||||
const { memberRolesMixin } = require('./member-roles-mixin')
|
||||
const { slashMixin } = require('./slash-mixin')
|
||||
const { botsMixin } = require('./bots-mixin')
|
||||
const { webhooksMixin } = require('./webhooks-mixin')
|
||||
const { automationMixin } = require('./automation-mixin')
|
||||
const { workersMixin } = require('./workers-mixin')
|
||||
const { deliveryMixin } = require('./delivery-mixin')
|
||||
const { healthMixin } = require('./health-mixin')
|
||||
const { auditJsonMixin } = require('./audit-json-mixin')
|
||||
const { digestJsonMixin } = require('./digest-json-mixin')
|
||||
const { relayJsonMixin } = require('./relay-json-mixin')
|
||||
const { workerJsonMixin } = require('./worker-json-mixin')
|
||||
const { botRegistryJsonMixin } = require('./bot-registry-json-mixin')
|
||||
const { slashJsonMixin } = require('./slash-json-mixin')
|
||||
const { oauthJsonMixin } = require('./oauth-json-mixin')
|
||||
const { inviteJsonMixin } = require('./invite-json-mixin')
|
||||
const { permissionJsonMixin } = require('./permission-json-mixin')
|
||||
const { emojiJsonMixin } = require('./emoji-json-mixin')
|
||||
const { memberJsonMixin } = require('./member-json-mixin')
|
||||
const { banJsonMixin } = require('./ban-json-mixin')
|
||||
const { pollJsonMixin } = require('./poll-json-mixin')
|
||||
const { pinJsonMixin } = require('./pin-json-mixin')
|
||||
const { threadJsonMixin } = require('./thread-json-mixin')
|
||||
const { stageJsonMixin } = require('./stage-json-mixin')
|
||||
const { voiceJsonMixin } = require('./voice-json-mixin')
|
||||
const { screenJsonMixin } = require('./screen-json-mixin')
|
||||
const { presenceJsonMixin } = require('./presence-json-mixin')
|
||||
const { notificationJsonMixin } = require('./notification-json-mixin')
|
||||
const { statusJsonMixin } = require('./status-json-mixin')
|
||||
const { activityJsonMixin } = require('./activity-json-mixin')
|
||||
const { sessionJsonMixin } = require('./session-json-mixin')
|
||||
const { deviceJsonMixin } = require('./device-json-mixin')
|
||||
const { discoveryJsonMixin } = require('./discovery-json-mixin')
|
||||
const { federationJsonMixin } = require('./federation-json-mixin')
|
||||
const { meshJsonMixin } = require('./mesh-json-mixin')
|
||||
const { multiGuildJsonMixin } = require('./multi-guild-json-mixin')
|
||||
const { partitionHealJsonMixin } = require('./partition-heal-json-mixin')
|
||||
const { channelFollowJsonMixin } = require('./channel-follow-json-mixin')
|
||||
const { guildWidgetJsonMixin } = require('./guild-widget-json-mixin')
|
||||
const { readStateJsonMixin } = require('./read-state-json-mixin')
|
||||
const { webhookJsonMixin } = require('./webhook-json-mixin')
|
||||
const { vanityUrlJsonMixin } = require('./vanity-url-json-mixin')
|
||||
const { effectivePermissionJsonMixin } = require('./effective-permission-json-mixin')
|
||||
const { inviteLinkJsonMixin } = require('./invite-link-json-mixin')
|
||||
const { roleOverrideJsonMixin } = require('./role-override-json-mixin')
|
||||
const { oauthGrantJsonMixin } = require('./oauth-grant-json-mixin')
|
||||
const { oauthInstallTokenJsonMixin } = require('./oauth-install-token-json-mixin')
|
||||
const { slashRegistryJsonMixin } = require('./slash-registry-json-mixin')
|
||||
const { slashInvokeAuditJsonMixin } = require('./slash-invoke-audit-json-mixin')
|
||||
const { workerReleaseJsonMixin } = require('./worker-release-json-mixin')
|
||||
const { integrationManifestJsonMixin } = require('./integration-manifest-json-mixin')
|
||||
Object.assign(PearcordPlatform.prototype, pollSchedulingMixin)
|
||||
Object.assign(PearcordPlatform.prototype, notificationsActivityMixin)
|
||||
Object.assign(PearcordPlatform.prototype, userSettingsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, moderationMixin)
|
||||
Object.assign(PearcordPlatform.prototype, invitesDiscoveryMixin)
|
||||
Object.assign(PearcordPlatform.prototype, threadsForumMixin)
|
||||
Object.assign(PearcordPlatform.prototype, announcementsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, permissionsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, memberRolesMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashMixin)
|
||||
Object.assign(PearcordPlatform.prototype, botsMixin)
|
||||
Object.assign(PearcordPlatform.prototype, webhooksMixin)
|
||||
Object.assign(PearcordPlatform.prototype, automationMixin)
|
||||
Object.assign(PearcordPlatform.prototype, workersMixin)
|
||||
Object.assign(PearcordPlatform.prototype, deliveryMixin)
|
||||
Object.assign(PearcordPlatform.prototype, healthMixin)
|
||||
Object.assign(PearcordPlatform.prototype, auditJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, digestJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, relayJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, workerJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, botRegistryJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, oauthJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, inviteJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, permissionJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, emojiJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, memberJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, banJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, pollJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, pinJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, threadJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, stageJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, voiceJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, screenJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, presenceJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, notificationJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, statusJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, activityJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, sessionJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, deviceJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, discoveryJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, federationJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, meshJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, multiGuildJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, partitionHealJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, channelFollowJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, guildWidgetJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, readStateJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, webhookJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, vanityUrlJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, effectivePermissionJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, inviteLinkJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, roleOverrideJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, oauthGrantJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, oauthInstallTokenJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashRegistryJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, slashInvokeAuditJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, workerReleaseJsonMixin)
|
||||
Object.assign(PearcordPlatform.prototype, integrationManifestJsonMixin)
|
||||
const { applyPlatformMixins } = require('./apply-platform-mixins')
|
||||
applyPlatformMixins(PearcordPlatform)
|
||||
|
||||
+17
-23
@@ -1,30 +1,24 @@
|
||||
'use strict'
|
||||
|
||||
const { createJsonExportGossipMixin } = require('pearcord-json-export-mixin')
|
||||
const { createJsonExportHealDelegateMixin } = require('pearcord-json-export-mixin')
|
||||
|
||||
const inviteJsonMixin = Object.assign(
|
||||
createJsonExportGossipMixin({
|
||||
keysField: '_inviteLinkJsonGossipKeys',
|
||||
initMethod: '_initInviteJsonMixinState',
|
||||
entries: [
|
||||
const inviteJsonMixin = createJsonExportHealDelegateMixin({
|
||||
keysField: '_inviteLinkJsonGossipKeys',
|
||||
initMethod: '_initInviteJsonMixinState',
|
||||
gossipEntries: [
|
||||
{ method: '_shouldGossipInviteLinkJson', gossipHashPrefix: '' },
|
||||
{ method: '_shouldGossipVanityUrlExportJson', gossipHashPrefix: 'vanity:' },
|
||||
]
|
||||
}),
|
||||
{
|
||||
async _healInviteLinkExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healInviteLinkJsonExportCursorOnPartition === 'function') {
|
||||
return this._healInviteLinkJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
{ method: '_shouldGossipVanityUrlExportJson', gossipHashPrefix: 'vanity:' }
|
||||
],
|
||||
delegates: [
|
||||
{
|
||||
legacyHeal: '_healInviteLinkExportCursorOnPartition',
|
||||
dedicatedHeal: '_healInviteLinkJsonExportCursorOnPartition'
|
||||
},
|
||||
async _healVanityUrlExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healVanityUrlJsonExportCursorOnPartition === 'function') {
|
||||
return this._healVanityUrlJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
},
|
||||
}
|
||||
)
|
||||
{
|
||||
legacyHeal: '_healVanityUrlExportCursorOnPartition',
|
||||
dedicatedHeal: '_healVanityUrlJsonExportCursorOnPartition'
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
module.exports = { inviteJsonMixin }
|
||||
|
||||
+17
-23
@@ -1,30 +1,24 @@
|
||||
'use strict'
|
||||
|
||||
const { createJsonExportGossipMixin } = require('pearcord-json-export-mixin')
|
||||
const { createJsonExportHealDelegateMixin } = require('pearcord-json-export-mixin')
|
||||
|
||||
const oauthJsonMixin = Object.assign(
|
||||
createJsonExportGossipMixin({
|
||||
keysField: '_oauthGrantJsonGossipKeys',
|
||||
initMethod: '_initOauthJsonMixinState',
|
||||
entries: [
|
||||
const oauthJsonMixin = createJsonExportHealDelegateMixin({
|
||||
keysField: '_oauthGrantJsonGossipKeys',
|
||||
initMethod: '_initOauthJsonMixinState',
|
||||
gossipEntries: [
|
||||
{ method: '_shouldGossipOAuthGrantJson', gossipHashPrefix: '' },
|
||||
{ method: '_shouldGossipOAuthInstallTokenExportJson', gossipHashPrefix: 'install:' },
|
||||
]
|
||||
}),
|
||||
{
|
||||
async _healOAuthGrantExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healOAuthGrantJsonExportCursorOnPartition === 'function') {
|
||||
return this._healOAuthGrantJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
{ method: '_shouldGossipOAuthInstallTokenExportJson', gossipHashPrefix: 'install:' }
|
||||
],
|
||||
delegates: [
|
||||
{
|
||||
legacyHeal: '_healOAuthGrantExportCursorOnPartition',
|
||||
dedicatedHeal: '_healOAuthGrantJsonExportCursorOnPartition'
|
||||
},
|
||||
async _healOAuthInstallTokenExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healOAuthInstallTokenJsonExportCursorOnPartition === 'function') {
|
||||
return this._healOAuthInstallTokenJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
},
|
||||
}
|
||||
)
|
||||
{
|
||||
legacyHeal: '_healOAuthInstallTokenExportCursorOnPartition',
|
||||
dedicatedHeal: '_healOAuthInstallTokenJsonExportCursorOnPartition'
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
module.exports = { oauthJsonMixin }
|
||||
|
||||
+17
-23
@@ -1,30 +1,24 @@
|
||||
'use strict'
|
||||
|
||||
const { createJsonExportGossipMixin } = require('pearcord-json-export-mixin')
|
||||
const { createJsonExportHealDelegateMixin } = require('pearcord-json-export-mixin')
|
||||
|
||||
const permissionJsonMixin = Object.assign(
|
||||
createJsonExportGossipMixin({
|
||||
keysField: '_roleOverrideJsonGossipKeys',
|
||||
initMethod: '_initPermissionJsonMixinState',
|
||||
entries: [
|
||||
const permissionJsonMixin = createJsonExportHealDelegateMixin({
|
||||
keysField: '_roleOverrideJsonGossipKeys',
|
||||
initMethod: '_initPermissionJsonMixinState',
|
||||
gossipEntries: [
|
||||
{ method: '_shouldGossipRoleOverrideJson', gossipHashPrefix: '' },
|
||||
{ method: '_shouldGossipEffectivePermissionExportJson', gossipHashPrefix: 'effective:' },
|
||||
]
|
||||
}),
|
||||
{
|
||||
async _healRoleOverrideExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healRoleOverrideJsonExportCursorOnPartition === 'function') {
|
||||
return this._healRoleOverrideJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
{ method: '_shouldGossipEffectivePermissionExportJson', gossipHashPrefix: 'effective:' }
|
||||
],
|
||||
delegates: [
|
||||
{
|
||||
legacyHeal: '_healRoleOverrideExportCursorOnPartition',
|
||||
dedicatedHeal: '_healRoleOverrideJsonExportCursorOnPartition'
|
||||
},
|
||||
async _healEffectivePermissionExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healEffectivePermissionJsonExportCursorOnPartition === 'function') {
|
||||
return this._healEffectivePermissionJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
},
|
||||
}
|
||||
)
|
||||
{
|
||||
legacyHeal: '_healEffectivePermissionExportCursorOnPartition',
|
||||
dedicatedHeal: '_healEffectivePermissionJsonExportCursorOnPartition'
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
module.exports = { permissionJsonMixin }
|
||||
|
||||
+17
-23
@@ -1,30 +1,24 @@
|
||||
'use strict'
|
||||
|
||||
const { createJsonExportGossipMixin } = require('pearcord-json-export-mixin')
|
||||
const { createJsonExportHealDelegateMixin } = require('pearcord-json-export-mixin')
|
||||
|
||||
const slashJsonMixin = Object.assign(
|
||||
createJsonExportGossipMixin({
|
||||
keysField: '_slashRegistryJsonGossipKeys',
|
||||
initMethod: '_initSlashJsonMixinState',
|
||||
entries: [
|
||||
const slashJsonMixin = createJsonExportHealDelegateMixin({
|
||||
keysField: '_slashRegistryJsonGossipKeys',
|
||||
initMethod: '_initSlashJsonMixinState',
|
||||
gossipEntries: [
|
||||
{ method: '_shouldGossipSlashRegistryJson', gossipHashPrefix: '' },
|
||||
{ method: '_shouldGossipSlashInvokeAuditExportJson', gossipHashPrefix: 'invoke:' },
|
||||
]
|
||||
}),
|
||||
{
|
||||
async _healSlashRegistryExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healSlashRegistryJsonExportCursorOnPartition === 'function') {
|
||||
return this._healSlashRegistryJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
{ method: '_shouldGossipSlashInvokeAuditExportJson', gossipHashPrefix: 'invoke:' }
|
||||
],
|
||||
delegates: [
|
||||
{
|
||||
legacyHeal: '_healSlashRegistryExportCursorOnPartition',
|
||||
dedicatedHeal: '_healSlashRegistryJsonExportCursorOnPartition'
|
||||
},
|
||||
async _healSlashInvokeAuditExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healSlashInvokeAuditJsonExportCursorOnPartition === 'function') {
|
||||
return this._healSlashInvokeAuditJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
},
|
||||
}
|
||||
)
|
||||
{
|
||||
legacyHeal: '_healSlashInvokeAuditExportCursorOnPartition',
|
||||
dedicatedHeal: '_healSlashInvokeAuditJsonExportCursorOnPartition'
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
module.exports = { slashJsonMixin }
|
||||
|
||||
+17
-23
@@ -1,31 +1,25 @@
|
||||
'use strict'
|
||||
|
||||
const { createJsonExportGossipMixin } = require('pearcord-json-export-mixin')
|
||||
const { createJsonExportHealDelegateMixin } = require('pearcord-json-export-mixin')
|
||||
|
||||
/** Legacy gossip dedupe for worker release + integration manifest (heal lives in dedicated mixins). */
|
||||
const workerJsonMixin = Object.assign(
|
||||
createJsonExportGossipMixin({
|
||||
keysField: '_workerReleaseJsonGossipKeys',
|
||||
initMethod: '_initWorkerJsonMixinState',
|
||||
entries: [
|
||||
{ method: '_shouldGossipWorkerReleaseJson', gossipHashPrefix: '' },
|
||||
{ method: '_shouldGossipIntegrationManifestExportJson', gossipHashPrefix: 'manifest:' }
|
||||
]
|
||||
}),
|
||||
{
|
||||
async _healWorkerReleaseExportCursorOnPartition (guildId) {
|
||||
if (typeof this._healWorkerReleaseJsonExportCursorOnPartition === 'function') {
|
||||
return this._healWorkerReleaseJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
const workerJsonMixin = createJsonExportHealDelegateMixin({
|
||||
keysField: '_workerReleaseJsonGossipKeys',
|
||||
initMethod: '_initWorkerJsonMixinState',
|
||||
gossipEntries: [
|
||||
{ method: '_shouldGossipWorkerReleaseJson', gossipHashPrefix: '' },
|
||||
{ method: '_shouldGossipIntegrationManifestExportJson', gossipHashPrefix: 'manifest:' }
|
||||
],
|
||||
delegates: [
|
||||
{
|
||||
legacyHeal: '_healWorkerReleaseExportCursorOnPartition',
|
||||
dedicatedHeal: '_healWorkerReleaseJsonExportCursorOnPartition'
|
||||
},
|
||||
async _healIntegrationManifestCursorOnPartition (guildId) {
|
||||
if (typeof this._healIntegrationManifestJsonExportCursorOnPartition === 'function') {
|
||||
return this._healIntegrationManifestJsonExportCursorOnPartition(guildId)
|
||||
}
|
||||
return { relisted: 0, skipped: true }
|
||||
{
|
||||
legacyHeal: '_healIntegrationManifestCursorOnPartition',
|
||||
dedicatedHeal: '_healIntegrationManifestJsonExportCursorOnPartition'
|
||||
}
|
||||
}
|
||||
)
|
||||
]
|
||||
})
|
||||
|
||||
module.exports = { workerJsonMixin }
|
||||
|
||||
Reference in New Issue
Block a user