Skip to content

Commit 9dbeeb6

Browse files
authored
[feature]: Refactor common-db and common logic (#2772)
* on windows setup first replace the root controller.js with the current content - to allow ESM and avoid additional fixer run * added todo * swapped the logic of common packages - common-db is now the package for the database packages - common is now the general package * fix the exports * refactor zipFiles * fix import * move constants to non-db package to allow subpath export * more refactoring * next fix * next fix * more fixes * more fixes * fix * more refactor and added example to for types usage * also allow console to be passed as logger * fix import * adapter-core to latest as peerDep * rm peer should be fine now without * lint
1 parent bcc9490 commit 9dbeeb6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+9226
-17797
lines changed

package-lock.json

Lines changed: 4855 additions & 13441 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/adapter/src/lib/adapter/adapter.ts

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@ import fs from 'fs-extra';
33
import os from 'node:os';
44
import jwt from 'jsonwebtoken';
55
import { EventEmitter } from 'node:events';
6-
import { tools, EXIT_CODES, password, logger } from '@iobroker/js-controller-common';
76
import pidUsage from 'pidusage';
87
import deepClone from 'deep-clone';
98
import { PluginHandler } from '@iobroker/plugin-base';
109
import semver from 'semver';
1110
import path from 'node:path';
12-
import { getObjectsConstructor, getStatesConstructor } from '@iobroker/js-controller-common-db';
11+
import {
12+
getObjectsConstructor,
13+
getStatesConstructor,
14+
tools,
15+
EXIT_CODES,
16+
password,
17+
logger
18+
} from '@iobroker/js-controller-common';
1319
import {
1420
decryptArray,
1521
encryptArray,
@@ -127,7 +133,7 @@ import type {
127133
InternalStopParameters
128134
} from '@/lib/_Types.js';
129135
import { UserInterfaceMessagingController } from '@/lib/adapter/userInterfaceMessagingController.js';
130-
import { SYSTEM_ADAPTER_PREFIX } from '@iobroker/js-controller-common/constants';
136+
import { SYSTEM_ADAPTER_PREFIX } from '@iobroker/js-controller-common-db/constants';
131137
import type { CommandResult } from '@alcalzone/pak';
132138

133139
import * as url from 'node:url';
@@ -847,8 +853,8 @@ export class AdapterClass extends EventEmitter {
847853
this._options.compactInstance !== undefined
848854
? this._options.compactInstance
849855
: this._options.instance !== undefined
850-
? this._options.instance
851-
: this._config.instance || 0,
856+
? this._options.instance
857+
: this._config.instance || 0,
852858
10
853859
);
854860

@@ -2270,27 +2276,24 @@ export class AdapterClass extends EventEmitter {
22702276

22712277
// Even if the developer forgets to call the unload callback, we need to stop the process.
22722278
// Therefore, wait a short while and then force the unload procedure
2273-
setTimeout(
2274-
() => {
2275-
if (this.#states) {
2276-
finishUnload();
2279+
setTimeout(() => {
2280+
if (this.#states) {
2281+
finishUnload();
22772282

2278-
// Give 1 second to write the value
2279-
setTimeout(() => {
2280-
if (!isPause) {
2281-
this._logger.info(`${this.namespaceLog} terminating with timeout`);
2282-
}
2283-
this.terminate(exitCode);
2284-
}, 1_000);
2285-
} else {
2283+
// Give 1 second to write the value
2284+
setTimeout(() => {
22862285
if (!isPause) {
2287-
this._logger.info(`${this.namespaceLog} terminating`);
2286+
this._logger.info(`${this.namespaceLog} terminating with timeout`);
22882287
}
22892288
this.terminate(exitCode);
2289+
}, 1_000);
2290+
} else {
2291+
if (!isPause) {
2292+
this._logger.info(`${this.namespaceLog} terminating`);
22902293
}
2291-
},
2292-
this.common?.stopTimeout || 500
2293-
);
2294+
this.terminate(exitCode);
2295+
}
2296+
}, this.common?.stopTimeout || 500);
22942297
}
22952298
}
22962299

@@ -7004,8 +7007,8 @@ export class AdapterClass extends EventEmitter {
70047007
? this.isFloatComma === undefined
70057008
? '.,'
70067009
: this.isFloatComma
7007-
? '.,'
7008-
: ',.'
7010+
? '.,'
7011+
: ',.'
70097012
: _format;
70107013

70117014
if (typeof value !== 'number') {
@@ -11612,8 +11615,8 @@ export class AdapterClass extends EventEmitter {
1161211615
this.version = this.pack?.version
1161311616
? this.pack.version
1161411617
: this.ioPack?.common
11615-
? this.ioPack.common.version
11616-
: 'unknown';
11618+
? this.ioPack.common.version
11619+
: 'unknown';
1161711620
// display if it's a non-official version - only if installedFrom is explicitly given and differs it's not npm
1161811621
const isNpmVersion =
1161911622
!this.ioPack ||

packages/adapter/src/lib/adapter/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
decrypt,
66
appNameLowerCase,
77
getRootDir
8-
} from '@iobroker/js-controller-common/tools';
8+
} from '@iobroker/js-controller-common-db/tools';
99
import { SUPPORTED_FEATURES, type SupportedFeature } from '@/lib/adapter/constants.js';
1010
import path from 'node:path';
1111
import fs from 'fs-extra';

packages/cli/src/lib/cli/cliProcess.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ import { spawn } from 'node:child_process';
55
import deepClone from 'deep-clone';
66
import { setTimeout as wait } from 'node:timers/promises';
77

8-
import { isLocalStatesDbServer, isLocalObjectsDbServer } from '@iobroker/js-controller-common-db';
8+
import {
9+
isLocalStatesDbServer,
10+
isLocalObjectsDbServer,
11+
getInstancesOrderedByStartPrio
12+
} from '@iobroker/js-controller-common';
913
import { tools, EXIT_CODES } from '@iobroker/js-controller-common';
1014
import * as CLI from '@/lib/cli/messages.js';
1115
import { CLICommand } from '@/lib/cli/cliCommand.js';
@@ -94,7 +98,7 @@ export class CLIProcess extends CLICommand {
9498
dbConnect(async params => {
9599
const { objects } = params;
96100
// Enumerate all adapter instances
97-
const instances = await tools.getInstancesOrderedByStartPrio(objects, console);
101+
const instances = await getInstancesOrderedByStartPrio(objects, console);
98102
// Create a promise for each. setInstanceEnabled only starts/stops when necessary
99103
const instancePromises = instances
100104
.filter(obj => obj.common.enabled !== enabled)

packages/cli/src/lib/setup.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { EXIT_CODES } from '@iobroker/js-controller-common';
44
import deepClone from 'deep-clone';
55
import { isDeepStrictEqual } from 'node:util';
66
import Debug from 'debug';
7-
import { objectsDbHasServer, isLocalObjectsDbServer, isLocalStatesDbServer } from '@iobroker/js-controller-common-db';
7+
import { objectsDbHasServer, isLocalObjectsDbServer, isLocalStatesDbServer } from '@iobroker/js-controller-common';
88
import path from 'node:path';
99
import yargs from 'yargs/yargs';
1010
import * as CLITools from '@/lib/cli/cliTools.js';
@@ -735,7 +735,7 @@ async function processCommand(
735735
}
736736

737737
if (migrated) {
738-
const { NotificationHandler } = await import('@iobroker/js-controller-common-db');
738+
const { NotificationHandler } = await import('@iobroker/js-controller-common');
739739

740740
const hostname = tools.getHostName();
741741

packages/cli/src/lib/setup/dbConnection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
getStatesConstructor,
66
objectsDbHasServer,
77
statesDbHasServer
8-
} from '@iobroker/js-controller-common-db';
8+
} from '@iobroker/js-controller-common';
99
import { EXIT_CODES } from '@iobroker/js-controller-common';
1010
import { tools } from '@iobroker/js-controller-common';
1111
import { setTimeout as wait } from 'node:timers/promises';

packages/cli/src/lib/setup/setupInstall.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';
2222
import type { ProcessExitCallback } from '@/lib/_Types.js';
2323
import { IoBrokerError } from '@/lib/setup/customError.js';
2424
import type { CommandResult } from '@alcalzone/pak';
25-
import { SYSTEM_ADAPTER_PREFIX } from '@iobroker/js-controller-common/constants';
25+
import { SYSTEM_ADAPTER_PREFIX } from '@iobroker/js-controller-common-db/constants';
2626
import { createRequire } from 'node:module';
2727

2828
// eslint-disable-next-line unicorn/prefer-module
@@ -906,8 +906,8 @@ export class Install {
906906
options.enabled === true || options.enabled === false
907907
? options.enabled
908908
: instanceObj.common.enabled === true || instanceObj.common.enabled === false
909-
? instanceObj.common.enabled
910-
: false;
909+
? instanceObj.common.enabled
910+
: false;
911911

912912
if (options.port) {
913913
instanceObj.native = instanceObj.native || {};

packages/cli/src/lib/setup/setupMultihost.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import fs from 'fs-extra';
22
import path from 'node:path';
33
import { tools } from '@iobroker/js-controller-common';
4-
import { isLocalObjectsDbServer, isLocalStatesDbServer } from '@iobroker/js-controller-common-db';
4+
import { isLocalObjectsDbServer, isLocalStatesDbServer } from '@iobroker/js-controller-common';
55
import type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';
66
import { MHClient, type BrowseResultEntry } from './multihostClient.js';
77
import readline from 'node:readline';

packages/cli/src/lib/setup/setupPacketManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { execAsync, type InternalLogger } from '@iobroker/js-controller-common/tools';
1+
import { execAsync, type InternalLogger } from '@iobroker/js-controller-common-db/tools';
22

33
enum LOG_LEVELS {
44
silly = 5,

packages/cli/src/lib/setup/setupSetup.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ import {
2121
objectsDbHasServer,
2222
performObjectsInterview,
2323
performStatesInterview
24-
} from '@iobroker/js-controller-common-db';
24+
} from '@iobroker/js-controller-common';
2525
import { resetDbConnect, dbConnectAsync } from '@/lib/setup/dbConnection.js';
2626
import { BackupRestore } from '@/lib/setup/setupBackup.js';
2727
import crypto from 'node:crypto';
2828
import deepClone from 'deep-clone';
2929
import * as pluginInfos from '@/lib/setup/pluginInfos.js';
3030
import rl from 'readline-sync';
31-
import { FORBIDDEN_CHARS, getHostObject } from '@iobroker/js-controller-common/tools';
31+
import { FORBIDDEN_CHARS, getHostObject } from '@iobroker/js-controller-common-db/tools';
3232
import os from 'node:os';
33-
import { SYSTEM_ADAPTER_PREFIX, SYSTEM_HOST_PREFIX } from '@iobroker/js-controller-common/constants';
33+
import { SYSTEM_ADAPTER_PREFIX, SYSTEM_HOST_PREFIX } from '@iobroker/js-controller-common-db/constants';
3434
import { Upload } from '@/lib/setup/setupUpload.js';
3535
import { createRequire } from 'node:module';
3636
import * as url from 'node:url';
@@ -962,8 +962,8 @@ Please DO NOT copy files manually into ioBroker storage directories!`
962962
const defaultSentinelName = originalConfig.states.sentinelName
963963
? originalConfig.states.sentinelName
964964
: oSentinelName && oPort === sPort
965-
? oSentinelName
966-
: 'mymaster';
965+
? oSentinelName
966+
: 'mymaster';
967967
sSentinelName = rl.question(`States Redis Sentinel Master Name [${defaultSentinelName}]: `, {
968968
defaultInput: defaultSentinelName
969969
});

0 commit comments

Comments
 (0)