@strapi/database 4.14.4 → 4.14.5
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/README.md +3 -0
- package/dist/connection.d.ts +3 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/dialects/dialect.d.ts +27 -0
- package/dist/dialects/dialect.d.ts.map +1 -0
- package/dist/dialects/index.d.ts +5 -0
- package/dist/dialects/index.d.ts.map +1 -0
- package/dist/dialects/mysql/constants.d.ts +3 -0
- package/dist/dialects/mysql/constants.d.ts.map +1 -0
- package/dist/dialects/mysql/database-inspector.d.ts +12 -0
- package/dist/dialects/mysql/database-inspector.d.ts.map +1 -0
- package/dist/dialects/mysql/index.d.ts +20 -0
- package/dist/dialects/mysql/index.d.ts.map +1 -0
- package/dist/dialects/mysql/schema-inspector.d.ts +13 -0
- package/dist/dialects/mysql/schema-inspector.d.ts.map +1 -0
- package/dist/dialects/postgresql/index.d.ts +14 -0
- package/dist/dialects/postgresql/index.d.ts.map +1 -0
- package/dist/dialects/postgresql/schema-inspector.d.ts +14 -0
- package/dist/dialects/postgresql/schema-inspector.d.ts.map +1 -0
- package/dist/dialects/sqlite/index.d.ts +19 -0
- package/dist/dialects/sqlite/index.d.ts.map +1 -0
- package/dist/dialects/sqlite/schema-inspector.d.ts +13 -0
- package/dist/dialects/sqlite/schema-inspector.d.ts.map +1 -0
- package/dist/entity-manager/entity-repository.d.ts +4 -0
- package/dist/entity-manager/entity-repository.d.ts.map +1 -0
- package/dist/entity-manager/index.d.ts +5 -0
- package/dist/entity-manager/index.d.ts.map +1 -0
- package/dist/entity-manager/morph-relations.d.ts +13 -0
- package/dist/entity-manager/morph-relations.d.ts.map +1 -0
- package/dist/entity-manager/regular-relations.d.ts +83 -0
- package/dist/entity-manager/regular-relations.d.ts.map +1 -0
- package/dist/entity-manager/relations/cloning/regular-relations.d.ts +17 -0
- package/dist/entity-manager/relations/cloning/regular-relations.d.ts.map +1 -0
- package/dist/entity-manager/relations-orderer.d.ts +73 -0
- package/dist/entity-manager/relations-orderer.d.ts.map +1 -0
- package/dist/entity-manager/types.d.ts +97 -0
- package/dist/entity-manager/types.d.ts.map +1 -0
- package/dist/errors/database.d.ts +5 -0
- package/dist/errors/database.d.ts.map +1 -0
- package/dist/errors/index.d.ts +8 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/invalid-date.d.ts +5 -0
- package/dist/errors/invalid-date.d.ts.map +1 -0
- package/dist/errors/invalid-datetime.d.ts +5 -0
- package/dist/errors/invalid-datetime.d.ts.map +1 -0
- package/dist/errors/invalid-relation.d.ts +5 -0
- package/dist/errors/invalid-relation.d.ts.map +1 -0
- package/dist/errors/invalid-time.d.ts +5 -0
- package/dist/errors/invalid-time.d.ts.map +1 -0
- package/dist/errors/not-null.d.ts +7 -0
- package/dist/errors/not-null.d.ts.map +1 -0
- package/dist/fields/biginteger.d.ts +4 -0
- package/dist/fields/biginteger.d.ts.map +1 -0
- package/dist/fields/boolean.d.ts +6 -0
- package/dist/fields/boolean.d.ts.map +1 -0
- package/dist/fields/date.d.ts +6 -0
- package/dist/fields/date.d.ts.map +1 -0
- package/dist/fields/datetime.d.ts +6 -0
- package/dist/fields/datetime.d.ts.map +1 -0
- package/dist/fields/field.d.ts +7 -0
- package/dist/fields/field.d.ts.map +1 -0
- package/dist/fields/index.d.ts +4 -0
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/json.d.ts +6 -0
- package/dist/fields/json.d.ts.map +1 -0
- package/dist/fields/number.d.ts +6 -0
- package/dist/fields/number.d.ts.map +1 -0
- package/dist/fields/shared/parsers.d.ts +4 -0
- package/dist/fields/shared/parsers.d.ts.map +1 -0
- package/dist/fields/string.d.ts +6 -0
- package/dist/fields/string.d.ts.map +1 -0
- package/dist/fields/time.d.ts +6 -0
- package/dist/fields/time.d.ts.map +1 -0
- package/dist/fields/timestamp.d.ts +6 -0
- package/dist/fields/timestamp.d.ts.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6211 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +6179 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lifecycles/index.d.ts +17 -0
- package/dist/lifecycles/index.d.ts.map +1 -0
- package/dist/lifecycles/subscribers/index.d.ts +5 -0
- package/dist/lifecycles/subscribers/index.d.ts.map +1 -0
- package/dist/lifecycles/subscribers/models-lifecycles.d.ts +6 -0
- package/dist/lifecycles/subscribers/models-lifecycles.d.ts.map +1 -0
- package/dist/lifecycles/subscribers/timestamps.d.ts +3 -0
- package/dist/lifecycles/subscribers/timestamps.d.ts.map +1 -0
- package/dist/lifecycles/types.d.ts +25 -0
- package/dist/lifecycles/types.d.ts.map +1 -0
- package/dist/metadata/index.d.ts +10 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/metadata.d.ts +22 -0
- package/dist/metadata/metadata.d.ts.map +1 -0
- package/dist/metadata/relations.d.ts +16 -0
- package/dist/metadata/relations.d.ts.map +1 -0
- package/dist/migrations/index.d.ts +12 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/storage.d.ts +15 -0
- package/dist/migrations/storage.d.ts.map +1 -0
- package/dist/query/helpers/index.d.ts +8 -0
- package/dist/query/helpers/index.d.ts.map +1 -0
- package/dist/query/helpers/join.d.ts +30 -0
- package/dist/query/helpers/join.d.ts.map +1 -0
- package/dist/query/helpers/order-by.d.ts +14 -0
- package/dist/query/helpers/order-by.d.ts.map +1 -0
- package/dist/query/helpers/populate/apply.d.ts +11 -0
- package/dist/query/helpers/populate/apply.d.ts.map +1 -0
- package/dist/query/helpers/populate/index.d.ts +4 -0
- package/dist/query/helpers/populate/index.d.ts.map +1 -0
- package/dist/query/helpers/populate/process.d.ts +24 -0
- package/dist/query/helpers/populate/process.d.ts.map +1 -0
- package/dist/query/helpers/search.d.ts +4 -0
- package/dist/query/helpers/search.d.ts.map +1 -0
- package/dist/query/helpers/streams/index.d.ts +2 -0
- package/dist/query/helpers/streams/index.d.ts.map +1 -0
- package/dist/query/helpers/streams/readable.d.ts +39 -0
- package/dist/query/helpers/streams/readable.d.ts.map +1 -0
- package/dist/query/helpers/transform.d.ts +8 -0
- package/dist/query/helpers/transform.d.ts.map +1 -0
- package/dist/query/helpers/where.d.ts +19 -0
- package/dist/query/helpers/where.d.ts.map +1 -0
- package/dist/query/index.d.ts +3 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/query-builder.d.ts +79 -0
- package/dist/query/query-builder.d.ts.map +1 -0
- package/dist/query/types.d.ts +8 -0
- package/dist/query/types.d.ts.map +1 -0
- package/dist/schema/builder.d.ts +33 -0
- package/dist/schema/builder.d.ts.map +1 -0
- package/dist/schema/diff.d.ts +7 -0
- package/dist/schema/diff.d.ts.map +1 -0
- package/dist/schema/index.d.ts +20 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/schema.d.ts +4 -0
- package/dist/schema/schema.d.ts.map +1 -0
- package/dist/schema/storage.d.ts +10 -0
- package/dist/schema/storage.d.ts.map +1 -0
- package/dist/schema/types.d.ts +103 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/transaction-context.d.ts +22 -0
- package/dist/transaction-context.d.ts.map +1 -0
- package/dist/types/index.d.ts +169 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/content-types.d.ts +13 -0
- package/dist/utils/content-types.d.ts.map +1 -0
- package/dist/utils/knex.d.ts +12 -0
- package/dist/utils/knex.d.ts.map +1 -0
- package/dist/utils/types.d.ts +10 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/validations/index.d.ts +6 -0
- package/dist/validations/index.d.ts.map +1 -0
- package/dist/validations/relations/bidirectional.d.ts +12 -0
- package/dist/validations/relations/bidirectional.d.ts.map +1 -0
- package/dist/validations/relations/index.d.ts +7 -0
- package/dist/validations/relations/index.d.ts.map +1 -0
- package/package.json +20 -8
- package/.eslintignore +0 -2
- package/.eslintrc.js +0 -4
- package/jest.config.js +0 -6
- package/lib/__tests__/index.test.js +0 -93
- package/lib/__tests__/lifecycles.test.js +0 -55
- package/lib/connection.js +0 -64
- package/lib/dialects/dialect.js +0 -63
- package/lib/dialects/index.js +0 -53
- package/lib/dialects/mysql/constants.js +0 -6
- package/lib/dialects/mysql/database-inspector.js +0 -37
- package/lib/dialects/mysql/index.js +0 -92
- package/lib/dialects/mysql/schema-inspector.js +0 -234
- package/lib/dialects/postgresql/index.js +0 -65
- package/lib/dialects/postgresql/schema-inspector.js +0 -283
- package/lib/dialects/sqlite/index.js +0 -87
- package/lib/dialects/sqlite/schema-inspector.js +0 -151
- package/lib/entity-manager/__tests__/relations-orderer.test.js +0 -186
- package/lib/entity-manager/__tests__/sort-connect-array.test.js +0 -79
- package/lib/entity-manager/entity-repository.js +0 -164
- package/lib/entity-manager/index.js +0 -1385
- package/lib/entity-manager/morph-relations.js +0 -63
- package/lib/entity-manager/regular-relations.js +0 -506
- package/lib/entity-manager/relations/cloning/regular-relations.js +0 -76
- package/lib/entity-manager/relations-orderer.js +0 -225
- package/lib/errors/database.js +0 -12
- package/lib/errors/index.js +0 -17
- package/lib/errors/invalid-date.js +0 -14
- package/lib/errors/invalid-datetime.js +0 -14
- package/lib/errors/invalid-relation.js +0 -14
- package/lib/errors/invalid-time.js +0 -14
- package/lib/errors/not-null.js +0 -15
- package/lib/fields/biginteger.js +0 -17
- package/lib/fields/boolean.js +0 -39
- package/lib/fields/date.js +0 -16
- package/lib/fields/datetime.js +0 -19
- package/lib/fields/field.js +0 -17
- package/lib/fields/index.d.ts +0 -9
- package/lib/fields/index.js +0 -50
- package/lib/fields/json.js +0 -21
- package/lib/fields/number.js +0 -23
- package/lib/fields/shared/parsers.js +0 -71
- package/lib/fields/string.js +0 -17
- package/lib/fields/time.js +0 -17
- package/lib/fields/timestamp.js +0 -19
- package/lib/index.d.ts +0 -198
- package/lib/index.js +0 -129
- package/lib/lifecycles/index.d.ts +0 -51
- package/lib/lifecycles/index.js +0 -90
- package/lib/lifecycles/subscribers/index.d.ts +0 -11
- package/lib/lifecycles/subscribers/models-lifecycles.js +0 -19
- package/lib/lifecycles/subscribers/timestamps.js +0 -65
- package/lib/metadata/index.js +0 -244
- package/lib/metadata/relations.js +0 -578
- package/lib/migrations/index.d.ts +0 -9
- package/lib/migrations/index.js +0 -75
- package/lib/migrations/storage.js +0 -44
- package/lib/query/helpers/index.js +0 -11
- package/lib/query/helpers/join.js +0 -96
- package/lib/query/helpers/order-by.js +0 -70
- package/lib/query/helpers/populate/apply.js +0 -664
- package/lib/query/helpers/populate/index.js +0 -9
- package/lib/query/helpers/populate/process.js +0 -102
- package/lib/query/helpers/search.js +0 -84
- package/lib/query/helpers/streams/index.js +0 -5
- package/lib/query/helpers/streams/readable.js +0 -174
- package/lib/query/helpers/transform.js +0 -84
- package/lib/query/helpers/where.js +0 -365
- package/lib/query/index.js +0 -7
- package/lib/query/query-builder.js +0 -514
- package/lib/schema/__tests__/schema-diff.test.js +0 -231
- package/lib/schema/builder.js +0 -386
- package/lib/schema/diff.js +0 -399
- package/lib/schema/index.d.ts +0 -49
- package/lib/schema/index.js +0 -94
- package/lib/schema/schema.js +0 -202
- package/lib/schema/storage.js +0 -76
- package/lib/transaction-context.js +0 -68
- package/lib/types/index.d.ts +0 -6
- package/lib/types/index.js +0 -35
- package/lib/utils/content-types.js +0 -40
- package/lib/utils/knex.js +0 -22
- package/lib/validations/index.js +0 -20
- package/lib/validations/relations/bidirectional.js +0 -89
- package/lib/validations/relations/index.js +0 -14
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Database } from '..';
|
|
2
|
+
import type { Schema } from './types';
|
|
3
|
+
declare const _default: (db: Database) => {
|
|
4
|
+
read(): Promise<any>;
|
|
5
|
+
hashSchema(schema: Schema): string;
|
|
6
|
+
add(schema: Schema): Promise<void>;
|
|
7
|
+
clear(): Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/schema/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;6BAIlB,QAAQ;;uBAyCL,MAAM;gBAIP,MAAM;;;AA7C5B,wBAqEE"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export interface Schema {
|
|
2
|
+
tables: Table[];
|
|
3
|
+
}
|
|
4
|
+
export interface Table {
|
|
5
|
+
name: string;
|
|
6
|
+
columns: Column[];
|
|
7
|
+
indexes: Index[];
|
|
8
|
+
foreignKeys: ForeignKey[];
|
|
9
|
+
}
|
|
10
|
+
export interface Column {
|
|
11
|
+
type: string;
|
|
12
|
+
name: string;
|
|
13
|
+
args?: unknown[];
|
|
14
|
+
defaultTo?: any;
|
|
15
|
+
notNullable?: boolean | null;
|
|
16
|
+
unsigned?: boolean;
|
|
17
|
+
unique?: boolean;
|
|
18
|
+
primary?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export type IndexType = 'primary' | 'unique';
|
|
21
|
+
export interface Index {
|
|
22
|
+
columns: string[];
|
|
23
|
+
name: string;
|
|
24
|
+
type?: IndexType;
|
|
25
|
+
}
|
|
26
|
+
export interface ForeignKey {
|
|
27
|
+
name: string;
|
|
28
|
+
columns: string[];
|
|
29
|
+
referencedColumns: string[];
|
|
30
|
+
referencedTable: string;
|
|
31
|
+
onUpdate?: string | null;
|
|
32
|
+
onDelete?: string | null;
|
|
33
|
+
}
|
|
34
|
+
export interface IndexDiff {
|
|
35
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
36
|
+
diff: {
|
|
37
|
+
name: string;
|
|
38
|
+
object: Index;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface ColumnDiff {
|
|
42
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
43
|
+
diff: {
|
|
44
|
+
name: string;
|
|
45
|
+
object: Column;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export interface ColumnsDiff {
|
|
49
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
50
|
+
diff: {
|
|
51
|
+
added: Column[];
|
|
52
|
+
removed: Column[];
|
|
53
|
+
updated: ColumnDiff['diff'][];
|
|
54
|
+
unchanged: Column[];
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export interface ForeignKeyDiff {
|
|
58
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
59
|
+
diff: {
|
|
60
|
+
name: string;
|
|
61
|
+
object: ForeignKey;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface ForeignKeysDiff {
|
|
65
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
66
|
+
diff: {
|
|
67
|
+
added: ForeignKey[];
|
|
68
|
+
updated: ForeignKeyDiff['diff'][];
|
|
69
|
+
unchanged: ForeignKey[];
|
|
70
|
+
removed: ForeignKey[];
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export interface IndexesDiff {
|
|
74
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
75
|
+
diff: {
|
|
76
|
+
added: Index[];
|
|
77
|
+
updated: IndexDiff['diff'][];
|
|
78
|
+
unchanged: Index[];
|
|
79
|
+
removed: Index[];
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export interface TableDiff {
|
|
83
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
84
|
+
diff: {
|
|
85
|
+
name: string;
|
|
86
|
+
indexes: IndexesDiff['diff'];
|
|
87
|
+
columns: ColumnsDiff['diff'];
|
|
88
|
+
foreignKeys: ForeignKeysDiff['diff'];
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export interface TablesDiff {
|
|
92
|
+
added: Table[];
|
|
93
|
+
removed: Table[];
|
|
94
|
+
updated: Array<TableDiff['diff']>;
|
|
95
|
+
unchanged: Table[];
|
|
96
|
+
}
|
|
97
|
+
export interface SchemaDiff {
|
|
98
|
+
status: 'CHANGED' | 'UNCHANGED';
|
|
99
|
+
diff: {
|
|
100
|
+
tables: TablesDiff;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
export type Callback = (...args: any[]) => Promise<any> | any;
|
|
3
|
+
export interface TransactionObject {
|
|
4
|
+
commit: () => Promise<void>;
|
|
5
|
+
rollback: () => Promise<void>;
|
|
6
|
+
get: () => Knex.Transaction;
|
|
7
|
+
}
|
|
8
|
+
export interface Store {
|
|
9
|
+
trx: Knex.Transaction | null;
|
|
10
|
+
commitCallbacks: Callback[];
|
|
11
|
+
rollbackCallbacks: Callback[];
|
|
12
|
+
}
|
|
13
|
+
declare const transactionCtx: {
|
|
14
|
+
run<TCallback extends Callback>(store: Knex.Transaction, cb: TCallback): Promise<ReturnType<TCallback>>;
|
|
15
|
+
get(): Knex.Transaction<any, any[]> | null | undefined;
|
|
16
|
+
commit(trx: Knex.Transaction): Promise<void>;
|
|
17
|
+
rollback(trx: Knex.Transaction): Promise<void>;
|
|
18
|
+
onCommit(cb: Callback): void;
|
|
19
|
+
onRollback(cb: Callback): void;
|
|
20
|
+
};
|
|
21
|
+
export { transactionCtx };
|
|
22
|
+
//# sourceMappingURL=transaction-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-context.d.ts","sourceRoot":"","sources":["../src/transaction-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC;CAC7B;AACD,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,iBAAiB,EAAE,QAAQ,EAAE,CAAC;CAC/B;AAID,QAAA,MAAM,cAAc;2CAC2B,KAAK,WAAW;;gBAY3C,KAAK,WAAW;kBAoBd,KAAK,WAAW;iBAoBvB,QAAQ;mBAON,QAAQ;CAMxB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type { Action, SubscriberFn } from '../lifecycles';
|
|
2
|
+
import type { ForeignKey, Index } from '../schema/types';
|
|
3
|
+
export type ID = string | number;
|
|
4
|
+
export interface ColumnInfo {
|
|
5
|
+
unsigned?: boolean;
|
|
6
|
+
defaultTo?: unknown;
|
|
7
|
+
}
|
|
8
|
+
export type Attribute = ScalarAttribute | RelationalAttribute;
|
|
9
|
+
export type RelationalAttribute = Relation.OneToOne | Relation.OneToMany | Relation.ManyToOne | Relation.ManyToMany | Relation.MorphMany | Relation.MorphOne | Relation.MorphToOne | Relation.MorphToMany;
|
|
10
|
+
export interface BasAttribute {
|
|
11
|
+
type: string;
|
|
12
|
+
columnName?: string;
|
|
13
|
+
default?: any;
|
|
14
|
+
column?: ColumnInfo;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
unique?: boolean;
|
|
17
|
+
component?: string;
|
|
18
|
+
repeatable?: boolean;
|
|
19
|
+
columnType?: {
|
|
20
|
+
type: string;
|
|
21
|
+
args: unknown[];
|
|
22
|
+
};
|
|
23
|
+
searchable?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface ScalarAttribute extends BasAttribute {
|
|
26
|
+
type: 'increments' | 'password' | 'email' | 'string' | 'enumeration' | 'uid' | 'richtext' | 'text' | 'json' | 'integer' | 'biginteger' | 'float' | 'decimal' | 'boolean' | 'date' | 'time' | 'datetime' | 'timestamp' | 'blocks';
|
|
27
|
+
}
|
|
28
|
+
export interface JoinColumn {
|
|
29
|
+
name: string;
|
|
30
|
+
referencedColumn: string;
|
|
31
|
+
referencedTable?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface BaseJoinTable {
|
|
34
|
+
name: string;
|
|
35
|
+
joinColumn: JoinColumn;
|
|
36
|
+
orderBy?: Record<string, 'asc' | 'desc'>;
|
|
37
|
+
on?: Record<string, unknown>;
|
|
38
|
+
pivotColumns: string[];
|
|
39
|
+
inverseJoinColumn: {
|
|
40
|
+
name: string;
|
|
41
|
+
referencedColumn: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface JoinTable extends BaseJoinTable {
|
|
45
|
+
orderColumnName?: string;
|
|
46
|
+
inverseOrderColumnName?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface OrderedJoinTable extends BaseJoinTable {
|
|
49
|
+
orderColumnName: string;
|
|
50
|
+
inverseOrderColumnName: string;
|
|
51
|
+
}
|
|
52
|
+
export declare namespace Relation {
|
|
53
|
+
export type Owner = {
|
|
54
|
+
inversedBy: string;
|
|
55
|
+
};
|
|
56
|
+
export type WithTarget = {
|
|
57
|
+
target: string;
|
|
58
|
+
};
|
|
59
|
+
export type Bidirectional = OneToOne | OneToMany | ManyToOne | ManyToMany;
|
|
60
|
+
type BaseBidirectional = {
|
|
61
|
+
type: 'relation';
|
|
62
|
+
relation: 'oneToOne' | 'oneToMany' | 'manyToOne' | 'manyToMany';
|
|
63
|
+
target: string;
|
|
64
|
+
inversedBy?: string;
|
|
65
|
+
mappedBy?: string;
|
|
66
|
+
joinTable: BidirectionalAttributeJoinTable;
|
|
67
|
+
};
|
|
68
|
+
export type OneToOne = BaseBidirectional & {
|
|
69
|
+
relation: 'oneToOne';
|
|
70
|
+
useJoinTable?: boolean;
|
|
71
|
+
joinTable?: JoinTable;
|
|
72
|
+
joinColumn?: JoinColumn;
|
|
73
|
+
owner?: boolean;
|
|
74
|
+
};
|
|
75
|
+
export type OneToMany = BaseBidirectional & {
|
|
76
|
+
relation: 'oneToMany';
|
|
77
|
+
joinTable: OrderedJoinTable;
|
|
78
|
+
joinColumn?: JoinColumn;
|
|
79
|
+
owner?: boolean;
|
|
80
|
+
};
|
|
81
|
+
export type ManyToOne = BaseBidirectional & {
|
|
82
|
+
relation: 'manyToOne';
|
|
83
|
+
useJoinTable?: boolean;
|
|
84
|
+
joinTable?: JoinTable;
|
|
85
|
+
joinColumn?: JoinColumn;
|
|
86
|
+
owner?: boolean;
|
|
87
|
+
};
|
|
88
|
+
export type ManyToMany = BaseBidirectional & {
|
|
89
|
+
relation: 'manyToMany';
|
|
90
|
+
joinTable: OrderedJoinTable;
|
|
91
|
+
};
|
|
92
|
+
export type Morph = MorphMany | MorphOne | MorphToOne | MorphToMany;
|
|
93
|
+
export type MorphMany = {
|
|
94
|
+
type: 'relation';
|
|
95
|
+
relation: 'morphMany';
|
|
96
|
+
target: string;
|
|
97
|
+
morphBy: string;
|
|
98
|
+
joinTable: MorphJoinTable;
|
|
99
|
+
};
|
|
100
|
+
export type MorphOne = {
|
|
101
|
+
type: 'relation';
|
|
102
|
+
relation: 'morphOne';
|
|
103
|
+
target: string;
|
|
104
|
+
morphBy: string;
|
|
105
|
+
};
|
|
106
|
+
export type MorphToOne = {
|
|
107
|
+
type: 'relation';
|
|
108
|
+
relation: 'morphToOne';
|
|
109
|
+
owner?: boolean;
|
|
110
|
+
morphColumn: MorphColumn;
|
|
111
|
+
};
|
|
112
|
+
export type MorphToMany = {
|
|
113
|
+
type: 'relation';
|
|
114
|
+
relation: 'morphToMany';
|
|
115
|
+
joinTable: MorphJoinTable;
|
|
116
|
+
};
|
|
117
|
+
export {};
|
|
118
|
+
}
|
|
119
|
+
export interface BidirectionalAttributeJoinTable extends JoinTable {
|
|
120
|
+
orderColumnName: string;
|
|
121
|
+
inverseOrderColumnName: string;
|
|
122
|
+
}
|
|
123
|
+
export interface MorphColumn {
|
|
124
|
+
typeField?: string;
|
|
125
|
+
typeColumn: {
|
|
126
|
+
name: string;
|
|
127
|
+
};
|
|
128
|
+
idColumn: {
|
|
129
|
+
name: string;
|
|
130
|
+
referencedColumn: string;
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export interface MorphJoinTable {
|
|
134
|
+
name: string;
|
|
135
|
+
joinColumn: JoinColumn;
|
|
136
|
+
orderBy?: Record<string, 'asc' | 'desc'>;
|
|
137
|
+
on?: Record<string, unknown>;
|
|
138
|
+
pivotColumns: string[];
|
|
139
|
+
morphColumn: MorphColumn;
|
|
140
|
+
}
|
|
141
|
+
export interface BaseRelationalAttribute {
|
|
142
|
+
type: 'relation';
|
|
143
|
+
target: string;
|
|
144
|
+
useJoinTable?: boolean;
|
|
145
|
+
joinTable?: JoinTable | MorphJoinTable;
|
|
146
|
+
morphBy?: string;
|
|
147
|
+
inversedBy?: string;
|
|
148
|
+
owner?: boolean;
|
|
149
|
+
morphColumn?: MorphColumn;
|
|
150
|
+
joinColumn?: JoinColumn;
|
|
151
|
+
component?: string;
|
|
152
|
+
}
|
|
153
|
+
export interface MorphRelationalAttribute extends BaseRelationalAttribute {
|
|
154
|
+
relation: 'morphMany' | 'morphOne' | 'morphToOne' | 'morphToMany';
|
|
155
|
+
morphColumn: MorphColumn;
|
|
156
|
+
morphBy: string;
|
|
157
|
+
joinTable: MorphJoinTable;
|
|
158
|
+
target: string;
|
|
159
|
+
}
|
|
160
|
+
export interface Model {
|
|
161
|
+
uid: string;
|
|
162
|
+
tableName: string;
|
|
163
|
+
singularName: string;
|
|
164
|
+
attributes: Record<string, Attribute>;
|
|
165
|
+
indexes?: Index[];
|
|
166
|
+
foreignKeys?: ForeignKey[];
|
|
167
|
+
lifecycles?: Partial<Record<Action, SubscriberFn>>;
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Model } from '../types';
|
|
2
|
+
export interface Attribute {
|
|
3
|
+
type: string;
|
|
4
|
+
multiple?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface ContentType {
|
|
7
|
+
uid: string;
|
|
8
|
+
modelName: string;
|
|
9
|
+
collectionName: string;
|
|
10
|
+
attributes: Record<string, Attribute>;
|
|
11
|
+
}
|
|
12
|
+
export declare const transformContentTypes: (contentTypes: ContentType[]) => Model[];
|
|
13
|
+
//# sourceMappingURL=content-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-types.d.ts","sourceRoot":"","sources":["../../src/utils/content-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACvC;AAmBD,eAAO,MAAM,qBAAqB,iBAAkB,WAAW,EAAE,KAAG,KAAK,EAkBxE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
import type { Database } from '..';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare function isKnexQuery(value: unknown): value is Knex.Raw | Knex.QueryBuilder;
|
|
7
|
+
/**
|
|
8
|
+
* Adds the name of the schema to the table name if the schema was defined by the user.
|
|
9
|
+
* Users can set the db schema only for Postgres in strapi database config.
|
|
10
|
+
*/
|
|
11
|
+
export declare const addSchema: (db: Database, tableName: string) => string;
|
|
12
|
+
//# sourceMappingURL=knex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knex.d.ts","sourceRoot":"","sources":["../../src/utils/knex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAEnC;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAEjF;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,OAAQ,QAAQ,aAAa,MAAM,KAAG,MAG3D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Attribute, ScalarAttribute, RelationalAttribute } from '../types';
|
|
2
|
+
export declare const isString: (type: string) => boolean;
|
|
3
|
+
export declare const isNumber: (type: string) => boolean;
|
|
4
|
+
export declare const isScalar: (type: string) => boolean;
|
|
5
|
+
export declare const isComponent: (type: string) => boolean;
|
|
6
|
+
export declare const isDynamicZone: (type: string) => boolean;
|
|
7
|
+
export declare const isRelation: (type: string) => boolean;
|
|
8
|
+
export declare const isScalarAttribute: (attribute: Attribute) => attribute is ScalarAttribute;
|
|
9
|
+
export declare const isRelationalAttribute: (attribute: Attribute) => attribute is RelationalAttribute;
|
|
10
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AA2BhF,eAAO,MAAM,QAAQ,SAAU,MAAM,YAAgC,CAAC;AACtE,eAAO,MAAM,QAAQ,SAAU,MAAM,YAAgC,CAAC;AACtE,eAAO,MAAM,QAAQ,SAAU,MAAM,YAAgC,CAAC;AACtE,eAAO,MAAM,WAAW,SAAU,MAAM,YAAyB,CAAC;AAClE,eAAO,MAAM,aAAa,SAAU,MAAM,YAA2B,CAAC;AACtE,eAAO,MAAM,UAAU,SAAU,MAAM,YAAwB,CAAC;AAChE,eAAO,MAAM,iBAAiB,cAAe,SAAS,iCAC5B,CAAC;AAC3B,eAAO,MAAM,qBAAqB,cAAe,SAAS,qCAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validations/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAEnC;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,iBAElD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Database } from '../..';
|
|
2
|
+
/**
|
|
3
|
+
* Validates bidirectional relations before starting the server.
|
|
4
|
+
* - If both sides use inversedBy, one of the sides must switch to mappedBy.
|
|
5
|
+
* When this happens, two join tables exist in the database.
|
|
6
|
+
* This makes sure you switch the side which does not delete any data.
|
|
7
|
+
*
|
|
8
|
+
* @param {*} db
|
|
9
|
+
* @return {*}
|
|
10
|
+
*/
|
|
11
|
+
export declare const validateBidirectionalRelations: (db: Database) => Promise<void>;
|
|
12
|
+
//# sourceMappingURL=bidirectional.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bidirectional.d.ts","sourceRoot":"","sources":["../../../src/validations/relations/bidirectional.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AA8CtC;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,OAAc,QAAQ,kBA+BhE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validations/relations/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,OAAc,QAAQ,kBAEnD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/database",
|
|
3
|
-
"version": "4.14.
|
|
3
|
+
"version": "4.14.5",
|
|
4
4
|
"description": "Strapi's database layer",
|
|
5
5
|
"homepage": "https://strapi.io",
|
|
6
6
|
"bugs": {
|
|
@@ -23,17 +23,24 @@
|
|
|
23
23
|
"url": "https://strapi.io"
|
|
24
24
|
}
|
|
25
25
|
],
|
|
26
|
-
"main": "./
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
"main": "./dist/index.js",
|
|
27
|
+
"module": "./dist/index.mjs",
|
|
28
|
+
"source": "./src/index.ts",
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"files": [
|
|
31
|
+
"./dist"
|
|
32
|
+
],
|
|
30
33
|
"scripts": {
|
|
34
|
+
"build": "pack-up build",
|
|
35
|
+
"clean": "run -T rimraf ./dist",
|
|
36
|
+
"lint": "run -T tsc --noEmit && run -T eslint .",
|
|
37
|
+
"prepublishOnly": "yarn clean && yarn build",
|
|
31
38
|
"test:unit": "run -T jest",
|
|
32
39
|
"test:unit:watch": "run -T jest --watch",
|
|
33
|
-
"
|
|
40
|
+
"watch": "pack-up watch"
|
|
34
41
|
},
|
|
35
42
|
"dependencies": {
|
|
36
|
-
"@strapi/utils": "4.14.
|
|
43
|
+
"@strapi/utils": "4.14.5",
|
|
37
44
|
"date-fns": "2.30.0",
|
|
38
45
|
"debug": "4.3.4",
|
|
39
46
|
"fs-extra": "10.0.0",
|
|
@@ -42,9 +49,14 @@
|
|
|
42
49
|
"semver": "7.5.4",
|
|
43
50
|
"umzug": "3.2.1"
|
|
44
51
|
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@strapi/pack-up": "4.14.5",
|
|
54
|
+
"eslint-config-custom": "4.14.5",
|
|
55
|
+
"tsconfig": "4.14.5"
|
|
56
|
+
},
|
|
45
57
|
"engines": {
|
|
46
58
|
"node": ">=16.0.0 <=20.x.x",
|
|
47
59
|
"npm": ">=6.0.0"
|
|
48
60
|
},
|
|
49
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "a0400e4a0f47f8169b7ce31bc9087470c291209c"
|
|
50
62
|
}
|
package/.eslintignore
DELETED
package/.eslintrc.js
DELETED
package/jest.config.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { Database } = require('../index');
|
|
4
|
-
|
|
5
|
-
jest.mock('../connection', () =>
|
|
6
|
-
jest.fn(() => {
|
|
7
|
-
const trx = {
|
|
8
|
-
commit: jest.fn(),
|
|
9
|
-
rollback: jest.fn(),
|
|
10
|
-
};
|
|
11
|
-
return {
|
|
12
|
-
...trx,
|
|
13
|
-
transaction: jest.fn(async () => trx),
|
|
14
|
-
};
|
|
15
|
-
})
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
jest.mock('../dialects', () => ({
|
|
19
|
-
getDialect: jest.fn(() => ({
|
|
20
|
-
configure: jest.fn(),
|
|
21
|
-
initialize: jest.fn(),
|
|
22
|
-
})),
|
|
23
|
-
}));
|
|
24
|
-
|
|
25
|
-
jest.mock('../migrations', () => ({
|
|
26
|
-
createMigrationsProvider: jest.fn(),
|
|
27
|
-
}));
|
|
28
|
-
|
|
29
|
-
const config = {
|
|
30
|
-
models: [
|
|
31
|
-
{
|
|
32
|
-
tableName: 'strapi_core_store_settings',
|
|
33
|
-
},
|
|
34
|
-
],
|
|
35
|
-
connection: {
|
|
36
|
-
client: 'postgres',
|
|
37
|
-
connection: {
|
|
38
|
-
database: 'strapi',
|
|
39
|
-
user: 'strapi',
|
|
40
|
-
password: 'strapi',
|
|
41
|
-
port: 5432,
|
|
42
|
-
host: 'localhost',
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
describe('Database', () => {
|
|
48
|
-
describe('constructor', () => {
|
|
49
|
-
it('should throw an error if no config is provided', async () => {
|
|
50
|
-
expect(async () => Database.init()).rejects.toThrowError();
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
it('it should intialize if config is provided', async () => {
|
|
54
|
-
expect(() => Database.init(config)).toBeDefined();
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
describe('Transaction', () => {
|
|
59
|
-
it('transaction should be defined', async () => {
|
|
60
|
-
const db = await Database.init(config);
|
|
61
|
-
expect(db.transaction).toBeDefined();
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it('should return value if transaction is complete', async () => {
|
|
65
|
-
const db = await Database.init(config);
|
|
66
|
-
const result = await db.transaction(async () => 'test');
|
|
67
|
-
expect(result).toBe('test');
|
|
68
|
-
expect(db.connection.commit).toHaveBeenCalledTimes(1);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it('rollback is called incase of error', async () => {
|
|
72
|
-
const db = await Database.init(config);
|
|
73
|
-
try {
|
|
74
|
-
await db.transaction(async () => {
|
|
75
|
-
throw new Error('test');
|
|
76
|
-
});
|
|
77
|
-
} catch {
|
|
78
|
-
/* ignore */
|
|
79
|
-
}
|
|
80
|
-
expect(db.connection.rollback).toHaveBeenCalledTimes(1);
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
it('should throw error', async () => {
|
|
84
|
-
const db = await Database.init(config);
|
|
85
|
-
|
|
86
|
-
expect(async () => {
|
|
87
|
-
await db.transaction(async () => {
|
|
88
|
-
throw new Error('test');
|
|
89
|
-
});
|
|
90
|
-
}).rejects.toThrowError('test');
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
});
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const { createLifecyclesProvider } = require('../lifecycles');
|
|
4
|
-
|
|
5
|
-
describe('LifecycleProvider', () => {
|
|
6
|
-
describe('run', () => {
|
|
7
|
-
/** @type {import("../lifecycles").LifecycleProvider} */
|
|
8
|
-
let provider;
|
|
9
|
-
const dbMetadataGetStub = jest.fn((uid) => ({ uid, name: 'TestModel' }));
|
|
10
|
-
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
const db = {
|
|
13
|
-
metadata: {
|
|
14
|
-
get: dbMetadataGetStub,
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
provider = createLifecyclesProvider(db);
|
|
18
|
-
provider.clear();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it('store state', async () => {
|
|
22
|
-
const expectedState = new Date().toISOString();
|
|
23
|
-
|
|
24
|
-
const subscriber = {
|
|
25
|
-
async beforeEvent(event) {
|
|
26
|
-
event.state = expectedState;
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
provider.subscribe(subscriber);
|
|
30
|
-
|
|
31
|
-
const stateBefore = await provider.run('beforeEvent', 'test-model', { id: 'instance-id' });
|
|
32
|
-
|
|
33
|
-
expect(stateBefore.get(subscriber)).toEqual(expectedState);
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
it('use shared state', async () => {
|
|
37
|
-
const expectedState = { value: new Date().toISOString() };
|
|
38
|
-
let receivedState;
|
|
39
|
-
|
|
40
|
-
provider.subscribe({
|
|
41
|
-
async beforeEvent(event) {
|
|
42
|
-
event.state.value = expectedState.value;
|
|
43
|
-
},
|
|
44
|
-
async afterEvent(event) {
|
|
45
|
-
receivedState = event.state;
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
const stateBefore = await provider.run('beforeEvent', 'test-model', { id: 'instance-id' });
|
|
50
|
-
await provider.run('afterEvent', 'test-model', { id: 'instance-id' }, stateBefore);
|
|
51
|
-
|
|
52
|
-
expect(receivedState).toEqual(expectedState);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
});
|