Loading dist/sequelize-cache/cache.js +42 −30 Original line number Diff line number Diff line Loading @@ -36,32 +36,7 @@ async function invalidationCache(previousModel, modelClass) { return await invalidation({ key: usedKey }); })); } function Cache(cacheOptions) { return (target) => { const options = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, beforeBulkUpdate: async (options) => { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined }; target?.['findAll']?.(customOptions).then(async (models) => { await Promise.all((models || []).map(async (model) => { if (model) { invalidateCache(model, options, target); } })); }); }, AfterBulkUpdate: async (options) => { async function afterBulkInvalidation(options, modelClass) { const id = options.where?.id; if (!id) { return; Loading @@ -70,18 +45,55 @@ function Cache(cacheOptions) { const ids = [...new Set(id)]; Promise.all(ids?.map((i) => { invalidationCache({ [target['primaryKeyAttribute']]: i, }, target); [modelClass['primaryKeyAttribute']]: i, }, modelClass); })); return; } if (typeof id !== 'object') { invalidationCache({ [target['primaryKeyAttribute']]: id, }, target); [modelClass['primaryKeyAttribute']]: id, }, modelClass); } return; } async function beforeBulkInvalidation(options, modelClass) { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined }; modelClass?.['findAll']?.(customOptions).then(async (models) => { await Promise.all((models || []).map(async (model) => { if (model) { invalidateCache(model, options, modelClass); } })); }); } function Cache(cacheOptions) { return (target) => { const options = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, beforeBulkUpdate: async (options) => { beforeBulkInvalidation(options, target); }, AfterBulkUpdate: async (options) => { return afterBulkInvalidation(options, target); }, beforeBulkDestroy: async (options) => { beforeBulkInvalidation(options, target); }, AfterBulkDestroy: async (options) => { return afterBulkInvalidation(options, target); } }, }); target[`modelTTL`] = cacheOptions?.ttl || 0; Loading dist/sequelize-cache/cache.js.map +1 −1 Original line number Diff line number Diff line {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/sequelize-cache/cache.ts"],"names":[],"mappings":"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"} No newline at end of file {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/sequelize-cache/cache.ts"],"names":[],"mappings":"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"} No newline at end of file dist/tsconfig.build.tsbuildinfo +1 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes src/sequelize-cache/cache.ts +46 −34 Original line number Diff line number Diff line Loading @@ -39,33 +39,7 @@ async function invalidationCache(previousModel, modelClass) { })) } export function Cache(cacheOptions?: { ttl?: number }) { return (target) => { const options: { hooks } = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target) return instance }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target) return instance }, beforeBulkUpdate: async (options) => { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined } target?.['findAll']?.(customOptions).then(async (models: any[]) => { await Promise.all((models || []).map(async(model) => { if(model) { invalidateCache(model, options, target) } })) }); }, AfterBulkUpdate: async (options) => { async function afterBulkInvalidation(options, modelClass) { const id = options.where?.id; if (!id) { return; Loading @@ -75,20 +49,59 @@ export function Cache(cacheOptions?: { ttl?: number }) { const ids = [...new Set(id)]; Promise.all(ids?.map((i) => { invalidationCache({ [target['primaryKeyAttribute']]: i, }, target) [modelClass['primaryKeyAttribute']]: i, }, modelClass) })) return; } if (typeof id !== 'object') { invalidationCache({ [target['primaryKeyAttribute']]: id, }, target) [modelClass['primaryKeyAttribute']]: id, }, modelClass) } return; } async function beforeBulkInvalidation(options, modelClass) { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined } modelClass?.['findAll']?.(customOptions).then(async (models: any[]) => { await Promise.all((models || []).map(async(model) => { if(model) { invalidateCache(model, options, modelClass) } })) }); } export function Cache(cacheOptions?: { ttl?: number }) { return (target) => { const options: { hooks } = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target) return instance }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target) return instance }, beforeBulkUpdate: async (options) => { beforeBulkInvalidation(options, target) }, AfterBulkUpdate: async (options) => { return afterBulkInvalidation(options, target) }, beforeBulkDestroy: async (options) => { beforeBulkInvalidation(options, target) }, AfterBulkDestroy: async (options) => { return afterBulkInvalidation(options, target) } }, }); Loading @@ -96,5 +109,4 @@ export function Cache(cacheOptions?: { ttl?: number }) { target[`modelTTL`] = cacheOptions?.ttl || 0 annotate(target, options); } } No newline at end of file Loading
dist/sequelize-cache/cache.js +42 −30 Original line number Diff line number Diff line Loading @@ -36,32 +36,7 @@ async function invalidationCache(previousModel, modelClass) { return await invalidation({ key: usedKey }); })); } function Cache(cacheOptions) { return (target) => { const options = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, beforeBulkUpdate: async (options) => { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined }; target?.['findAll']?.(customOptions).then(async (models) => { await Promise.all((models || []).map(async (model) => { if (model) { invalidateCache(model, options, target); } })); }); }, AfterBulkUpdate: async (options) => { async function afterBulkInvalidation(options, modelClass) { const id = options.where?.id; if (!id) { return; Loading @@ -70,18 +45,55 @@ function Cache(cacheOptions) { const ids = [...new Set(id)]; Promise.all(ids?.map((i) => { invalidationCache({ [target['primaryKeyAttribute']]: i, }, target); [modelClass['primaryKeyAttribute']]: i, }, modelClass); })); return; } if (typeof id !== 'object') { invalidationCache({ [target['primaryKeyAttribute']]: id, }, target); [modelClass['primaryKeyAttribute']]: id, }, modelClass); } return; } async function beforeBulkInvalidation(options, modelClass) { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined }; modelClass?.['findAll']?.(customOptions).then(async (models) => { await Promise.all((models || []).map(async (model) => { if (model) { invalidateCache(model, options, modelClass); } })); }); } function Cache(cacheOptions) { return (target) => { const options = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target); return instance; }, beforeBulkUpdate: async (options) => { beforeBulkInvalidation(options, target); }, AfterBulkUpdate: async (options) => { return afterBulkInvalidation(options, target); }, beforeBulkDestroy: async (options) => { beforeBulkInvalidation(options, target); }, AfterBulkDestroy: async (options) => { return afterBulkInvalidation(options, target); } }, }); target[`modelTTL`] = cacheOptions?.ttl || 0; Loading
dist/sequelize-cache/cache.js.map +1 −1 Original line number Diff line number Diff line {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/sequelize-cache/cache.ts"],"names":[],"mappings":"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"} No newline at end of file {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/sequelize-cache/cache.ts"],"names":[],"mappings":"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"} No newline at end of file
dist/tsconfig.build.tsbuildinfo +1 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes
src/sequelize-cache/cache.ts +46 −34 Original line number Diff line number Diff line Loading @@ -39,33 +39,7 @@ async function invalidationCache(previousModel, modelClass) { })) } export function Cache(cacheOptions?: { ttl?: number }) { return (target) => { const options: { hooks } = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target) return instance }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target) return instance }, beforeBulkUpdate: async (options) => { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined } target?.['findAll']?.(customOptions).then(async (models: any[]) => { await Promise.all((models || []).map(async(model) => { if(model) { invalidateCache(model, options, target) } })) }); }, AfterBulkUpdate: async (options) => { async function afterBulkInvalidation(options, modelClass) { const id = options.where?.id; if (!id) { return; Loading @@ -75,20 +49,59 @@ export function Cache(cacheOptions?: { ttl?: number }) { const ids = [...new Set(id)]; Promise.all(ids?.map((i) => { invalidationCache({ [target['primaryKeyAttribute']]: i, }, target) [modelClass['primaryKeyAttribute']]: i, }, modelClass) })) return; } if (typeof id !== 'object') { invalidationCache({ [target['primaryKeyAttribute']]: id, }, target) [modelClass['primaryKeyAttribute']]: id, }, modelClass) } return; } async function beforeBulkInvalidation(options, modelClass) { if (options.where?.id?.length || (options?.where?.id && typeof options?.where?.id !== 'object')) { return; } const { transaction, ...customOptions } = options || { transaction: undefined } modelClass?.['findAll']?.(customOptions).then(async (models: any[]) => { await Promise.all((models || []).map(async(model) => { if(model) { invalidateCache(model, options, modelClass) } })) }); } export function Cache(cacheOptions?: { ttl?: number }) { return (target) => { const options: { hooks } = Object.assign({}, { hooks: { afterUpdate: async (instance, options) => { invalidateCache(instance, options, target) return instance }, afterDestroy: async (instance, options) => { invalidateCache(instance, options, target) return instance }, beforeBulkUpdate: async (options) => { beforeBulkInvalidation(options, target) }, AfterBulkUpdate: async (options) => { return afterBulkInvalidation(options, target) }, beforeBulkDestroy: async (options) => { beforeBulkInvalidation(options, target) }, AfterBulkDestroy: async (options) => { return afterBulkInvalidation(options, target) } }, }); Loading @@ -96,5 +109,4 @@ export function Cache(cacheOptions?: { ttl?: number }) { target[`modelTTL`] = cacheOptions?.ttl || 0 annotate(target, options); } } No newline at end of file