@@ -319,9 +319,17 @@ export interface AdapterClass {
319319 commandsPermissions : CommandsPermissions ,
320320 options ?: unknown ,
321321 ) : Promise < ioBroker . PermissionSet > ;
322- /** Creates or overwrites an object in the object db */
322+ /**
323+ * Creates or overwrites an object in the object db
324+ *
325+ * @deprecated use `adapter.setObject` without a callback instead
326+ */
323327 setObjectAsync ( id : string , obj : ioBroker . SettableObject , options ?: unknown ) : ioBroker . SetObjectPromise ;
324- /** Creates or overwrites an object (which might not belong to this adapter) in the object db */
328+ /**
329+ * Creates or overwrites an object (which might not belong to this adapter) in the object db
330+ *
331+ * @deprecated use `adapter.setForeignObject` without a callback instead
332+ */
325333 setForeignObjectAsync < T extends string > (
326334 id : T ,
327335 obj : ioBroker . SettableObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
@@ -2765,14 +2773,17 @@ export class AdapterClass extends EventEmitter {
27652773 this . _intervals . delete ( interval as NodeJS . Timeout ) ;
27662774 }
27672775
2768- setObject ( id : string , obj : ioBroker . SettableObject , callback ?: ioBroker . SetObjectCallback ) : Promise < void > ;
2776+ setObject (
2777+ id : string ,
2778+ obj : ioBroker . SettableObject ,
2779+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > > ;
2780+ setObject ( id : string , obj : ioBroker . SettableObject , callback : ioBroker . SetObjectCallback ) : void ;
2781+ setObject ( id : string , obj : ioBroker . SettableObject , options : unknown , callback : ioBroker . SetObjectCallback ) : void ;
27692782 setObject (
27702783 id : string ,
27712784 obj : ioBroker . SettableObject ,
27722785 options : unknown ,
2773- callback ?: ioBroker . SetObjectCallback ,
2774- ) : Promise < void > ;
2775- setObject ( id : string , obj : ioBroker . SettableObject , callback ?: ioBroker . SetObjectCallback ) : Promise < void > ;
2786+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > > ;
27762787 /**
27772788 * Creates or overwrites an object in objectDB.
27782789 *
@@ -2803,7 +2814,12 @@ export class AdapterClass extends EventEmitter {
28032814 * }
28042815 * ```
28052816 */
2806- setObject ( id : unknown , obj : unknown , options : unknown , callback ?: unknown ) : Promise < void > | void {
2817+ setObject (
2818+ id : unknown ,
2819+ obj : unknown ,
2820+ options ?: unknown ,
2821+ callback ?: unknown ,
2822+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > | void > {
28072823 if ( typeof options === 'function' ) {
28082824 callback = options ;
28092825 options = null ;
@@ -2819,7 +2835,9 @@ export class AdapterClass extends EventEmitter {
28192835 return this . _setObject ( { id, obj : obj as ioBroker . SettableObject , options, callback } ) ;
28202836 }
28212837
2822- private async _setObject ( options : InternalSetObjectOptions ) : Promise < void > {
2838+ private async _setObject (
2839+ options : InternalSetObjectOptions ,
2840+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > | void > {
28232841 if ( ! this . _defaultObjs ) {
28242842 this . _defaultObjs = ( await import ( './defaultObjs.js' ) ) . createDefaults ( ) ;
28252843 }
@@ -2844,6 +2862,7 @@ export class AdapterClass extends EventEmitter {
28442862 this . _utils . validateId ( options . id , false , null ) ;
28452863 } catch ( e ) {
28462864 this . _logger . error ( tools . appendStackTrace ( `${ this . namespaceLog } ${ e . message } ` ) ) ;
2865+ // Error is logged and silently ignored to not break older adapters
28472866 return ;
28482867 }
28492868 }
@@ -2921,11 +2940,11 @@ export class AdapterClass extends EventEmitter {
29212940 options . obj . user = options . obj . user || ( options . options ? options . options . user : '' ) || SYSTEM_ADMIN_USER ;
29222941 options . obj . ts = options . obj . ts || Date . now ( ) ;
29232942
2924- this . _setObjectWithDefaultValue ( options . id , options . obj , options . options , options . callback ) ;
2925- } else {
2926- this . _logger . error ( `${ this . namespaceLog } setObject ${ options . id } mandatory property type missing!` ) ;
2927- return tools . maybeCallbackWithError ( options . callback , 'mandatory property type missing!' ) ;
2943+ return this . _setObjectWithDefaultValue ( options . id , options . obj , options . options , options . callback ) ;
29282944 }
2945+
2946+ this . _logger . error ( `${ this . namespaceLog } setObject ${ options . id } mandatory property type missing!` ) ;
2947+ return tools . maybeCallbackWithError ( options . callback , 'mandatory property type missing!' ) ;
29292948 }
29302949
29312950 /**
@@ -3332,14 +3351,23 @@ export class AdapterClass extends EventEmitter {
33323351 setForeignObject < T extends string > (
33333352 id : T ,
33343353 obj : ioBroker . SettableObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
3335- callback ?: ioBroker . SetObjectCallback ,
3354+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > > ;
3355+ setForeignObject < T extends string > (
3356+ id : T ,
3357+ obj : ioBroker . SettableObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
3358+ callback : ioBroker . SetObjectCallback ,
33363359 ) : void ;
3360+ setForeignObject < T extends string > (
3361+ id : T ,
3362+ obj : ioBroker . SettableObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
3363+ options : unknown ,
3364+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > > ;
33373365 setForeignObject < T extends string > (
33383366 id : T ,
33393367 obj : ioBroker . SettableObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
33403368 options : unknown ,
33413369 callback ?: ioBroker . SetObjectCallback ,
3342- ) : void ;
3370+ ) : void | Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > > ;
33433371
33443372 /**
33453373 * Same as {@link AdapterClass.setObject}, but for any object.
@@ -3357,7 +3385,12 @@ export class AdapterClass extends EventEmitter {
33573385 * }
33583386 * ```
33593387 */
3360- setForeignObject ( id : unknown , obj : unknown , options : unknown , callback ?: unknown ) : MaybePromise {
3388+ setForeignObject (
3389+ id : unknown ,
3390+ obj : unknown ,
3391+ options ?: unknown ,
3392+ callback ?: unknown ,
3393+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > | void > | void {
33613394 if ( typeof options === 'function' ) {
33623395 callback = options ;
33633396 options = null ;
@@ -3386,7 +3419,9 @@ export class AdapterClass extends EventEmitter {
33863419 return this . _setForeignObject ( { id, obj : obj as ioBroker . SettableObject , options, callback } ) ;
33873420 }
33883421
3389- private _setForeignObject ( _options : InternalSetObjectOptions ) : MaybePromise {
3422+ private _setForeignObject (
3423+ _options : InternalSetObjectOptions ,
3424+ ) : Promise < ioBroker . NonNullCallbackReturnTypeOf < ioBroker . SetObjectCallback > | void > | void {
33903425 const { options, callback, obj } = _options ;
33913426 let { id } = _options ;
33923427
@@ -3426,21 +3461,30 @@ export class AdapterClass extends EventEmitter {
34263461 }
34273462 }
34283463
3429- this . _setObjectWithDefaultValue ( id , obj , options , callback ) ;
3464+ return this . _setObjectWithDefaultValue ( id , obj , options , callback ) ;
34303465 }
34313466
34323467 // external signatures
34333468 extendForeignObject < T extends string > (
34343469 id : T ,
34353470 objPart : ioBroker . PartialObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
3436- callback ?: ioBroker . SetObjectCallback ,
3471+ ) : Promise < ioBroker . CallbackReturnTypeOf < ioBroker . SetObjectCallback > > ;
3472+ extendForeignObject < T extends string > (
3473+ id : T ,
3474+ objPart : ioBroker . PartialObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
3475+ callback : ioBroker . SetObjectCallback ,
34373476 ) : void ;
34383477 extendForeignObject < T extends string > (
34393478 id : T ,
34403479 objPart : ioBroker . PartialObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
34413480 options : ioBroker . ExtendObjectOptions ,
3442- callback ? : ioBroker . SetObjectCallback ,
3481+ callback : ioBroker . SetObjectCallback ,
34433482 ) : void ;
3483+ extendForeignObject < T extends string > (
3484+ id : T ,
3485+ objPart : ioBroker . PartialObject < ioBroker . ObjectIdToObjectType < T , 'write' > > ,
3486+ options : ioBroker . ExtendObjectOptions ,
3487+ ) : Promise < ioBroker . CallbackReturnTypeOf < ioBroker . SetObjectCallback > > ;
34443488
34453489 /**
34463490 * Same as {@link AdapterClass.extendObject}, but for any object.
@@ -3461,7 +3505,7 @@ export class AdapterClass extends EventEmitter {
34613505 extendForeignObject (
34623506 id : unknown ,
34633507 obj : unknown ,
3464- options : unknown ,
3508+ options ? : unknown ,
34653509 callback ?: unknown ,
34663510 ) : Promise < ioBroker . CallbackReturnTypeOf < ioBroker . SetObjectCallback > | void > | void {
34673511 if ( typeof options === 'function' ) {
@@ -9316,7 +9360,7 @@ export class AdapterClass extends EventEmitter {
93169360 return tools . maybeCallbackWithError ( callback , e ) ;
93179361 }
93189362 }
9319- this . #states. delState ( id , callback ) ;
9363+ await this . #states. delState ( id , callback ) ;
93209364 }
93219365
93229366 // external signature
@@ -9784,7 +9828,7 @@ export class AdapterClass extends EventEmitter {
97849828
97859829 subs [ pattern ] [ this . namespace ] ++ ;
97869830 this . outputCount ++ ;
9787- this . #states. setState ( `system.adapter.${ autoSubEntry } .subscribes` , JSON . stringify ( subs ) ) ;
9831+ await this . #states. setState ( `system.adapter.${ autoSubEntry } .subscribes` , JSON . stringify ( subs ) ) ;
97889832 }
97899833 }
97909834
@@ -10013,7 +10057,7 @@ export class AdapterClass extends EventEmitter {
1001310057 delete subs [ pattern ] ;
1001410058 }
1001510059 this . outputCount ++ ;
10016- this . #states. setState ( `system.adapter.${ autoSub } .subscribes` , JSON . stringify ( subs ) ) ;
10060+ await this . #states. setState ( `system.adapter.${ autoSub } .subscribes` , JSON . stringify ( subs ) ) ;
1001710061 }
1001810062 }
1001910063 }
0 commit comments