@@ -6,9 +6,9 @@ import { Model, Transaction } from "sequelize";
66import { KeyGenerator , SequelizeManager } from "./SequelizeManager" ;
77let toposort = require ( "toposort" ) as ( ar : any [ ] ) => any [ ] ;
88
9-
9+ /** Save bundle from breeze client */
1010export interface SaveRequest {
11- body : { entities : Entity [ ] , saveOptions : SaveOptions }
11+ body : { entities : Entity [ ] , saveOptions ? : SaveOptions }
1212}
1313
1414interface EntityGroup {
@@ -18,15 +18,18 @@ interface EntityGroup {
1818
1919/** Handles saving entities from Breeze SaveChanges requests */
2020export class SequelizeSaveHandler {
21- sequelizeManager : SequelizeManager ;
22- metadataStore : MetadataStore ;
23- entitiesFromClient : Entity [ ] ;
21+ readonly sequelizeManager : SequelizeManager ;
22+ readonly metadataStore : MetadataStore ;
23+ readonly entitiesFromClient : Entity [ ] ;
2424 saveOptions : SaveOptions ;
2525 private _keyMappings : KeyMapping [ ] ;
2626 private _fkFixupMap : { [ entityKeyName : string ] : any } ;
2727 private _savedEntities : Entity [ ] ;
28+ /** Generates keys for entity types where autoGeneratedKeyType = "KeyGenerator" */
2829 keyGenerator : KeyGenerator ;
29- beforeSaveEntity : ( ei : EntityInfo ) => EntityInfo ;
30+ /** Process an entity before save. If false is returned, entity is not saved. */
31+ beforeSaveEntity : ( ei : EntityInfo ) => boolean ;
32+ /** Process all entities before save. The entities in the returned SaveMap are saved. */
3033 beforeSaveEntities : ( sm : SaveMap , trx ?: Transaction ) => SaveMap ;
3134
3235 /** Create an instance for the given save request */
@@ -44,7 +47,7 @@ export class SequelizeSaveHandler {
4447
4548 }
4649
47- /** Save the entities in the save request */
50+ /** Save the entities in the save request, returning either the saved entities or an error collection */
4851 save ( ) : Promise < { errors : ServerEntityError [ ] , message : string } > | Promise < Entity [ ] > {
4952 let beforeSaveEntity = ( this . beforeSaveEntity || noopBeforeSaveEntity ) . bind ( this ) ;
5053 let entityTypeMap = { } ;
0 commit comments