@codenameryuu/adonis-lucid-soft-deletes 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/src/mixin.d.ts +3 -3
- package/build/src/mixin.js +19 -9
- package/package.json +1 -1
package/build/src/mixin.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { LucidModel, ModelQueryBuilderContract } from '@adonisjs/lucid/type
|
|
|
4
4
|
import type { QueryClientContract } from '@adonisjs/lucid/types/database';
|
|
5
5
|
import { BaseModel } from '@adonisjs/lucid/orm';
|
|
6
6
|
type ModelQueryBuilderContractWithIgnoreDeleted<T extends LucidModel, R = InstanceType<T>> = ModelQueryBuilderContract<T, R> & {
|
|
7
|
-
ignoreDeleted
|
|
7
|
+
ignoreDeleted?: boolean;
|
|
8
8
|
};
|
|
9
9
|
export declare function SoftDeletes<T extends NormalizeConstructor<typeof BaseModel>>(superclass: T): {
|
|
10
10
|
new (...args: any[]): {
|
|
@@ -91,8 +91,9 @@ export declare function SoftDeletes<T extends NormalizeConstructor<typeof BaseMo
|
|
|
91
91
|
toAttributes(): Record<string, any>;
|
|
92
92
|
related<Name extends undefined>(relation: Name): NonNullable</*elided*/ any[Name]> extends import("@adonisjs/lucid/types/relations").ModelRelations<LucidModel, LucidModel> ? (import("@adonisjs/lucid/types/relations").ModelRelations<LucidModel, LucidModel> & /*elided*/ any[Name] & {})["client"] : never;
|
|
93
93
|
};
|
|
94
|
+
boot(): void;
|
|
94
95
|
ignoreDeleted<Model extends /*elided*/ any & T>(query: ModelQueryBuilderContractWithIgnoreDeleted<Model, InstanceType<Model>>): void;
|
|
95
|
-
ignoreDeletedPaginate
|
|
96
|
+
ignoreDeletedPaginate([countQuery, query]: any): void;
|
|
96
97
|
disableIgnore<Model extends /*elided*/ any & T, Result = InstanceType<Model>>(this: Model, query: ModelQueryBuilderContractWithIgnoreDeleted<Model, Result>): ModelQueryBuilderContractWithIgnoreDeleted<Model, Result>;
|
|
97
98
|
/**
|
|
98
99
|
* Fetch all models without filter by deleted_at
|
|
@@ -140,7 +141,6 @@ export declare function SoftDeletes<T extends NormalizeConstructor<typeof BaseMo
|
|
|
140
141
|
<Model extends LucidModel>(this: Model, name: string): import("@adonisjs/lucid/types/relations").RelationshipsContract;
|
|
141
142
|
};
|
|
142
143
|
$defineProperty: <Model extends LucidModel, Prop extends keyof Model>(this: Model, propertyName: Prop, defaultValue: Model[Prop], strategy: "inherit" | "define" | ((value: Model[Prop]) => Model[Prop])) => void;
|
|
143
|
-
boot: () => void;
|
|
144
144
|
before: {
|
|
145
145
|
<Model extends LucidModel, Event extends "find" | "fetch">(this: Model, event: Event, handler: import("@adonisjs/lucid/types/model").HooksHandler<ModelQueryBuilderContract<Model>, Event>): void;
|
|
146
146
|
<Model extends LucidModel>(this: Model, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<[ModelQueryBuilderContract<Model>, ModelQueryBuilderContract<Model>], "paginate">): void;
|
package/build/src/mixin.js
CHANGED
|
@@ -14,9 +14,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
14
14
|
};
|
|
15
15
|
import { DateTime } from 'luxon';
|
|
16
16
|
import { Exception } from '@adonisjs/core/exceptions';
|
|
17
|
-
import { column
|
|
17
|
+
import { column } from '@adonisjs/lucid/orm';
|
|
18
18
|
export function SoftDeletes(superclass) {
|
|
19
19
|
class ModelWithSoftDeletes extends superclass {
|
|
20
|
+
static boot() {
|
|
21
|
+
super.boot();
|
|
22
|
+
// `compose()` introduces intermediate classes. Depending on how Lucid handles
|
|
23
|
+
// boot flags, hooks can be skipped when mixing multiple mixins.
|
|
24
|
+
// Track hook registration per subclass.
|
|
25
|
+
if (this.$softDeletesHooksRegistered)
|
|
26
|
+
return;
|
|
27
|
+
this.$softDeletesHooksRegistered = true;
|
|
28
|
+
this.before('find', this.ignoreDeleted.bind(this));
|
|
29
|
+
this.before('fetch', this.ignoreDeleted.bind(this));
|
|
30
|
+
this.before('paginate', this.ignoreDeletedPaginate.bind(this));
|
|
31
|
+
}
|
|
20
32
|
static ignoreDeleted(query) {
|
|
21
33
|
if (query['ignoreDeleted'] === false) {
|
|
22
34
|
return;
|
|
@@ -27,9 +39,14 @@ export function SoftDeletes(superclass) {
|
|
|
27
39
|
return;
|
|
28
40
|
}
|
|
29
41
|
const queryIgnoreDeleted = isGroupLimitQuery ? query.knexQuery : query;
|
|
30
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Do not prefix with `${model.table}.` since preload/group-limit queries
|
|
44
|
+
* may use table aliases.
|
|
45
|
+
*/
|
|
46
|
+
queryIgnoreDeleted.whereNull(deletedAtColumn);
|
|
31
47
|
}
|
|
32
48
|
static ignoreDeletedPaginate([countQuery, query]) {
|
|
49
|
+
;
|
|
33
50
|
countQuery['ignoreDeleted'] = query['ignoreDeleted'];
|
|
34
51
|
this.ignoreDeleted(countQuery);
|
|
35
52
|
}
|
|
@@ -119,12 +136,5 @@ export function SoftDeletes(superclass) {
|
|
|
119
136
|
__decorate([
|
|
120
137
|
column.dateTime()
|
|
121
138
|
], ModelWithSoftDeletes.prototype, "deletedAt", void 0);
|
|
122
|
-
__decorate([
|
|
123
|
-
beforeFind(),
|
|
124
|
-
beforeFetch()
|
|
125
|
-
], ModelWithSoftDeletes, "ignoreDeleted", null);
|
|
126
|
-
__decorate([
|
|
127
|
-
beforePaginate()
|
|
128
|
-
], ModelWithSoftDeletes, "ignoreDeletedPaginate", null);
|
|
129
139
|
return ModelWithSoftDeletes;
|
|
130
140
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codenameryuu/adonis-lucid-soft-deletes",
|
|
3
3
|
"description": "Addon for soft deletes Adonis JS with Lucid ORM",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.9.0",
|
|
5
5
|
"author": "codenameryuu",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/codenameryuu/adonis-lucid-soft-deletes#readme",
|