Skip to content

Commit 5e258d5

Browse files
author
Ravi Nadahar
committed
Work around circular dependencies
Signed-off-by: Ravi Nadahar <nadahar@rediffmail.com>
1 parent 948739e commit 5e258d5

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

src/utils.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ const OPENHAB_JS_VERSION = require('../package.json').version;
1010
const log = require('./log')('utils');
1111
const { _isZonedDateTime, _isInstant, _isDuration, _isItem, _isItemChannelLink, _isItemMetadata, _isThing, _isQuantity } = require('./helpers');
1212
const time = require('@js-joda/core');
13-
const { Item } = require('./items/items');
14-
const { ItemChannelLink } = require('./items/itemchannellink');
15-
const { ItemMetadata } = require('./items/metadata');
16-
const { Thing } = require('./things');
17-
const { Quantity } = require('./quantity');
1813

1914
const JSet = Java.type('java.util.Set');
2015
const HashSet = Java.type('java.util.HashSet');
@@ -269,6 +264,13 @@ function jsify (val) {
269264
return val;
270265
}
271266

267+
// Note: Inline requires are used here to prevent circular dependencies during startup, as utils.js is imported by these very classes.
268+
const { Item } = require('./items/items');
269+
const { ItemChannelLink } = require('./items/itemchannellink');
270+
const { ItemMetadata } = require('./items/metadata');
271+
const { Thing } = require('./things');
272+
const { Quantity } = require('./quantity');
273+
272274
if (val instanceof ZonedDateTime) {
273275
const epoch = val.toInstant().toEpochMilli();
274276
const instant = time.Instant.ofEpochMilli(epoch);

types/utils.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)