8 lines
19 KiB
Plaintext
8 lines
19 KiB
Plaintext
|
{
|
||
|
"version": 3,
|
||
|
"sources": ["../src/hooks.js"],
|
||
|
"sourcesContent": ["'use strict';\n\nconst _ = require('lodash');\nconst { logger } = require('./utils/logger');\nconst debug = logger.debugContext('hooks');\n\nconst hookTypes = {\n beforeValidate: { params: 2 },\n afterValidate: { params: 2 },\n validationFailed: { params: 3 },\n beforeCreate: { params: 2 },\n afterCreate: { params: 2 },\n beforeDestroy: { params: 2 },\n afterDestroy: { params: 2 },\n beforeRestore: { params: 2 },\n afterRestore: { params: 2 },\n beforeUpdate: { params: 2 },\n afterUpdate: { params: 2 },\n beforeSave: { params: 2, proxies: ['beforeUpdate', 'beforeCreate'] },\n afterSave: { params: 2, proxies: ['afterUpdate', 'afterCreate'] },\n beforeUpsert: { params: 2 },\n afterUpsert: { params: 2 },\n beforeBulkCreate: { params: 2 },\n afterBulkCreate: { params: 2 },\n beforeBulkDestroy: { params: 1 },\n afterBulkDestroy: { params: 1 },\n beforeBulkRestore: { params: 1 },\n afterBulkRestore: { params: 1 },\n beforeBulkUpdate: { params: 1 },\n afterBulkUpdate: { params: 1 },\n beforeFind: { params: 1 },\n beforeFindAfterExpandIncludeAll: { params: 1 },\n beforeFindAfterOptions: { params: 1 },\n afterFind: { params: 2 },\n beforeCount: { params: 1 },\n beforeDefine: { params: 2, sync: true, noModel: true },\n afterDefine: { params: 1, sync: true, noModel: true },\n beforeInit: { params: 2, sync: true, noModel: true },\n afterInit: { params: 1, sync: true, noModel: true },\n beforeAssociate: { params: 2, sync: true },\n afterAssociate: { params: 2, sync: true },\n beforeConnect: { params: 1, noModel: true },\n afterConnect: { params: 2, noModel: true },\n beforeDisconnect: { params: 1, noModel: true },\n afterDisconnect: { params: 1, noModel: true },\n beforeSync: { params: 1 },\n afterSync: { params: 1 },\n beforeBulkSync: { params: 1 },\n afterBulkSync: { params: 1 },\n beforeQuery: { params: 2 },\n afterQuery: { params: 2 }\n};\nexports.hooks = hookTypes;\n\n\n/**\n * get array of current hook and its proxies combined\n *\n * @param {string} hookType any hook type @see {@link hookTypes}\n *\n * @private\n */\nconst getProxiedHooks = hookType =>\n hookTypes[hookType].proxies\n ? hookTypes[hookType].proxies.concat(hookType)\n : [hookType]\n;\n\nfunction getHooks(hooked, hookType) {\n return (hooked.options.hooks || {})[hookType] || [];\n}\n\nconst Hooks = {\n /**\n * Process user supplied hooks definition\n *\n * @param {object} hooks hooks definition\n *\n * @private\n * @memberof Sequelize\n * @memberof Sequelize.Model\n */\n _setupHooks(hooks) {\n this.options.hooks = {};\n _.map(hooks || {}, (hooksArray, hookName) => {\n if (!Array.isArray(hooksArray)) hooksArray = [hooksArray];\n hooksArray.forEach(hookFn => this.addHook(hookName, hookFn));\n });\n },\n\n async runHooks(hooks, ...hookArgs) {\n if (!hooks) throw new Error('runHooks requires at least 1 argument');\n\n let hookType;\n\n if (typeof hooks === 'string') {\n hookType = hooks;\n hooks = getHooks(this, hookType);\n\n if (this.sequelize) {\n hooks = hooks.concat(getHooks(this.sequelize, hookType));\n }\n }\n\n if (!Array.isArray(hooks)) {\n hooks = [hooks];\n }\n\n // synchronous hooks\n if (hookTypes[hookType] && hookTypes[hookType].sync) {\n for (let hook of hooks) {\n if (typeof hook === 'object') {\n hook = hook.fn;\n }\n\n debug(`running hook(sync) ${hookType}`);\n hook.apply(this, hookArgs);\n }\n return;\n }\n\n // asynchronous hooks (default)\n for (let hook of hooks) {\n if (typeof hook === 'object') {\n hook = hook.fn;\n }\n\n debug(`running hook ${hookType}`);\n await hook.apply(this, hookArgs);\n }\n },\n\n /**\n * Add a hook to the model\n *\n * @param {string} hookType hook name @see {@link hookTypes}\n * @param {string|Function} [name] Provide a name for the hook function. It can be used to remove the hook later or to order hooks based on some sort of priority system in
|
||
|
"mappings": "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",
|
||
|
"names": []
|
||
|
}
|