Adrien de Peretti
52e394055c
fix(utils): DML hasOne - belongsTo not behaving correctly ( #8813 )
...
FIXES FRMW-2676
**What**
ref: https://discord.com/channels/876835651130097704/1023889804544458752/threads/1276979858781503528
Currently, when providing the following
```ts
const user1 = manager.create(User, {
username: "User 1",
team: {
name: "Team 1",
},
})
```
It would result in an error inserting into the database because the foreign key will be sent twice as part of the insert, one for the relation and one for the foreign key that both relate to the foreign key property.
To fix that and allow both approaches (providing the entity to cascade persist or just providing the foreign key in case of another side nullable relation) we need to handle it a bit differently.
now both approaches would be valid. the entities for the example might not be the best ones but it is just to illustrate
option 1 - we create both the user and the team:
```ts
const user1 = manager.create(User, {
username: "User 1",
team: {
name: "Team 1",
},
})
```
option 2 - the team already exists (for example the previous user have been detached from the team but we kept the team alive and assign a new user to that team) :
```ts
const user1 = manager.create(User, {
username: "User 1",
team_id: team.id
})
```
2024-08-28 15:45:48 +00:00
Oli Juhl
2bacf86d3c
chore: Remove prepublishOnly script ( #8699 )
...
* wip
* wip
* verbose logging
* remove prepublish scripts
* chore: add back prepublish scripts
* wip
* remove prepublishOnly script
* chore: Clean up rest of build scripts
* add back build script
* feedback
---------
Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com >
2024-08-27 10:31:38 +02:00
Carlos R. L. Rodrigues
058378970a
chore: dependecies reorg ( #8535 )
2024-08-23 07:16:04 -03:00
Adrien de Peretti
136da3f3ce
fix: Handle multiple id prop generation ( #8097 )
...
* fix: Handle multiple id prop generation
* throw on duplicate id + cleanup
* fix mistakenly removed files
* fix
* fix
* passzord string
* passzord string
2024-07-12 16:41:19 +02:00
Adrien de Peretti
79ec2bcfe2
fix: Migration generator and generated migrations ( #8090 )
2024-07-11 18:21:09 +02:00
Adrien de Peretti
41c4307fc7
feat: define link util ( #7931 )
...
* feat: define link util
* handle pluralized fieldAlias for isList
* serviceName ar reference
* finalize
* todo
* WIP
* finalize
* fix tests
* update typings
* fix Module
* linkable
* update errors
2024-07-04 10:37:30 +02:00
Adrien de Peretti
617a5972bf
feat: refactor module joiner config and links generation ( #7859 )
...
* feat: refactor module joiner config and links generation
* improve typings
* WIP
* WIP
* WIP
* rename type file
* create link config
* finish typings and add utils
* improve links
* WIP typings
* finalize ExportModule utils
* finalize ExportModule utils
* fix: dml tests
* improve and fixes
* simplify typings with id changes
* add toJSON
* multiple fixes and entity builder fixes
* fix currency searchable
* fix tests
* medusa service refactoring
* cleanup
* cleanup and fixes
* make module name optional
* renaming
---------
Co-authored-by: Harminder Virk <virk.officials@gmail.com >
2024-07-03 13:12:49 +02:00
Harminder Virk
46f15b4909
fix: inferring of relationship types ( #7913 )
...
FIXES: CORE-2448
2024-07-03 13:29:27 +05:30
Harminder Virk
b3236ff31c
Add support for native enums ( #7903 )
2024-07-02 15:22:09 +05:30
Harminder Virk
074e4a888e
Mark keys as primary with explicit method call ( #7900 )
2024-07-02 13:27:21 +05:30
Shahed Nasser
72f7500c84
chore(docs): DML API Reference ( #7863 )
...
* added dml options
* added tsdocs + configurations
2024-07-01 10:21:56 +03:00
Oli Juhl
fa6cd84049
chore: Migrate region module to use DML ( #7837 )
2024-06-29 13:14:52 +00:00
Riqwan Thamir
789d545b9e
feat(utils,types): infer keys in query builder from schema ( #7861 )
2024-06-27 20:38:06 +02:00
Riqwan Thamir
91098877c2
fix(utils): always apply default indexes ( #7858 )
...
what:
- fixes default indexes not being applied always
2024-06-27 16:05:28 +00:00
Riqwan Thamir
91faa5ffdb
feat(utils): DML generates foreign key indexes by default ( #7855 )
...
**what:**
- adds default indexes on foreign keys when belongs to relationship is present
RESOLVES CORE-2404
2024-06-27 14:45:27 +00:00
Riqwan Thamir
3f16b011fa
feat(utils,types): DML Index can generate where SQL from a query builder ( #7849 )
...
what:
- introduces a simple query builder
- uses the query builder to tranform an object in where to SQL when applying indexes
```
Examples:
{ where: { column: null } } -> column IS NULL
{ where: { column: { $ne: null } } } -> column IS NOT NULL
{ where: { boolean_column: true } } -> boolean_column IS TRUE
{ where: { column: "value", another_column: { $ne: 30 } } } -> column = "value" AND another_column != 30
```
```
const user = model
.define("user", {
email: model.text(),
account: model.text(),
organization: model.text(),
})
.indexes([
{
on: ["organization", "account"],
where: { email: { $ne: null } },
},
{
name: "IDX-email-account-special",
on: ["organization", "account"],
where: {
email: { $ne: null },
account: null,
},
},
```
RESOLVES CORE-2392
2024-06-27 10:24:34 +00:00
Riqwan Thamir
5ee97d0e97
feat(utils,types): DML can apply composite indexes ( #7842 )
...
**what:**
- DML can apply composite indexes
- Where clause is currently a string, QB version will come as a follow up
```
model.define("user", {
email: model.text(),
account: model.text(),
}).indexes([
{
name: "IDX-unique-name",
unique: true,
on: ["email", "account"],
where: "email is NOT NULL",
},
])
```
RESOLVES CORE-2391
2024-06-26 15:39:04 +00:00
Adrien de Peretti
68dbcda84c
fix: DML Enum property ( #7846 )
...
* fix: DML Enum property
* add more tests
* fix unit tests
2024-06-26 17:01:57 +02:00
Riqwan Thamir
4945c79818
feat(utils): infer primaryKeys from a DML model ( #7839 )
...
what:
- depending on other properties in a DML model, we infer primaryKeys between id properties and primaryKey-able properties.
```
Example:
Model 1:
id: model.id() -> primary key
code: model.text()
Model 2:
id: model.id()
code: model.text().primaryKey() -> primary key
Model 3:
id: model.id()
code: model.text().primaryKey() -> composite primary key
name: model.text().primaryKey() -> composite primary key
```
2024-06-26 09:26:09 +00:00
Adrien de Peretti
dc307c658d
feat: Add support for array properties DML ( #7836 )
2024-06-25 20:51:14 +02:00
Adrien de Peretti
39038ddb0a
chore: various DML improvements ( #7833 )
...
* chore: various DML improvements
* Check is something through static utils
* Check is something through static utils
* allow to define a schema with table name
* restrict searchable to text only
* rm searchable modifier
* extract constructor logic into separate function
2024-06-25 18:00:39 +02:00
Adrien de Peretti
34c44078e7
fix: DML relation management for many to one relation ship foreign keys ( #7790 )
...
FIXES CORE-2369
cc @thetutlage
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com >
2024-06-24 18:54:54 +00:00
Riqwan Thamir
96fb7a962e
feat(utils,currency): Migrate currency to use DML ( #7807 )
2024-06-24 19:07:26 +02:00
Riqwan Thamir
5c944ae5d0
feat(types,utils): DML can create a bigNumber property ( #7801 )
...
what:
- adds bigNumber as a property to DML
- creates a bigNumber options field (`raw_{{ field }}`) as a part of the schema
RESOLVES CORE-2375
2024-06-24 08:29:18 +00:00
Adrien de Peretti
ae6dbc06be
chore: Update module test runner to support DmlEntities when needed ( #7799 )
...
* chore: Update module test runner to support DmlEntities when needed
* update es version for core test utils
* fix test
* update swc config
2024-06-24 09:44:01 +02:00
Adrien de Peretti
8fa43a6db3
Feat/define mikro orm configuration dev ( #7798 )
...
* chore: define mikro orm config for CLI
* add tests
* fix types
* fix import
---------
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com >
2024-06-24 09:10:54 +02:00
Harminder Virk
d122b678a8
feat: initialize nullable properties with null value ( #7795 )
2024-06-21 16:41:26 +05:30
Adrien de Peretti
90e6ca0e9e
chore: Internal medusa service proper typings with DML ( #7792 )
2024-06-21 12:36:54 +02:00
Adrien de Peretti
937a632eb6
chore: make module loaders DML aware and auto generate joiner config ( #7781 )
...
* chore: make module loaders DML aware and auto generate joiner config
* fixes and cleanup
* improve dml entity check
* add unit tests on load resources
* cleanup deps
* cleanup deps
* cleanup Modules
* finalise
* fix modules-sdk jest
* fix modules-sdk jest
* fix import
* fix import
2024-06-20 18:18:07 +02:00
Riqwan Thamir
33c4cd34cc
chore: export DML builders + fix default undefined values in SQL ( #7776 )
...
* chore: export dml builders through utils
* chore: fix undefined sql error
* chore: upgrade to ts 5
* chore: use isDefined
2024-06-20 10:45:49 +02:00
Harminder Virk
45ad70e96b
Add support for pivot table and entity in manyToMany relationships ( #7779 )
2024-06-20 14:13:31 +05:30
Harminder Virk
2895ccfba8
Add support for id property type ( #7775 )
2024-06-19 17:59:03 +05:30
Harminder Virk
fd87858bd9
Handle embedded pg schema name inside the table name when generating indexes ( #7774 )
2024-06-19 16:48:44 +05:30
Harminder Virk
0b623fa27a
Allow entities to contain pg schema name in their name ( #7773 )
2024-06-19 14:39:33 +05:30
Harminder Virk
1451112f08
Add support for created and updated at timestamps ( #7765 )
2024-06-18 21:22:31 +05:30
Harminder Virk
8410592239
Rename schema to property ( #7761 )
2024-06-18 16:14:09 +05:30
Harminder Virk
4f7bbf1f29
feat: add support for indexes ( #7756 )
2024-06-18 13:41:16 +05:30
Harminder Virk
0886869148
feat: mark all DML entities as soft delete-able by default ( #7744 )
2024-06-17 16:16:56 +05:30
Harminder Virk
0b9a6d5a52
Identify the owner when both sides defines a many to many relationship ( #7741 )
2024-06-17 14:47:14 +05:30
Harminder Virk
2af3f9e954
Add support for cascades to DML ( #7721 )
2024-06-14 13:45:11 +05:30
Harminder Virk
fbd8eef18b
Overall revamp of relationships ( #7690 )
2024-06-13 11:19:53 +05:30
Harminder Virk
6d43daa930
Code cleanup and add support for default values and nullable relationships ( #7687 )
2024-06-12 14:39:03 +05:30
Harminder Virk
5f348d88f4
Initial implementation of DML to Mikro ORM entity generation ( #7667 )
...
* feat: initial implementation of DML to Mikro ORM entity generation
CORE-2279
* test: fix breaking tests
* refactor: cleanup code for defining properties and relationships
* feat: finish initial implementation of relationships
2024-06-11 21:00:36 +05:30
Harminder Virk
7f53fe06b6
Initial implementation of data types and base schema ( #7644 )
2024-06-10 14:31:42 +05:30