Closed PeterVoronov closed 6 months ago
JavaScript
From version v7.10.2 this functions from the node:fs is not availabe.
node:fs
This simple code doesn't work with mkdtemp and mkdtempSync:
mkdtemp
mkdtempSync
// @ts-ignore const nodeOS = require('node:os'); // @ts-ignore const nodeFS = require('node:fs'); // @ts-ignore const nodePath = require('node:path'); /*** Test node:fs mkdtemp ***/ nodeFS.mkdtemp(nodePath.join(nodeOS.tmpdir(), 'test'), (err, tmpDirectory) => { if (err) { log(`mkdtemp: Can't create temporary directory! Error: '${JSON.stringify(err)}'.`); } else { log(`mkdtemp: Temporary directory '${tmpDirectory}' created.`); nodeFS.rm(tmpDirectory, {recursive: true, force: true}, (err) => { if (err) { log(`rm: Can't remove temporary directory '${tmpDirectory}'! Error: '${JSON.stringify(err)}'.`) } else { log(`rm: Temporary directory '${tmpDirectory}' removed.`); } }); } }); /*** Test node:fs mkdir ***/ let tmpDirectory123 = nodePath.join(nodeOS.tmpdir(), 'test123'); nodeFS.mkdir(tmpDirectory123, (err) => { if (err) { log(`mkdir: Can't create temporary directory '${tmpDirectory123}'! Error: '${JSON.stringify(err)}'.`); } else { log(`mkdir: Temporary directory '${tmpDirectory123}' created.`); nodeFS.rm(tmpDirectory123, {recursive: true, force: true}, (err) => { if (err) { log(`rm: Can't remove temporary directory '${tmpDirectory123}'! Error: '${JSON.stringify(err)}'.`) } else { log(`rm: Temporary directory '${tmpDirectory123}' removed.`); } }); } }); /*** Test node:fs mkdtempSync ***/ let tmpDirectorySync; try { tmpDirectorySync = nodeFS.mkdtempSync(nodePath.join(nodeOS.tmpdir(), 'test')); console.log(`mkdtempSync: Temporary directory '${tmpDirectorySync}' created.`); } catch (err) { console.error(`mkdtempSync: Can't create temporary directory '${tmpDirectorySync}'! Error: '${JSON.stringify(err)}'.`); tmpDirectorySync = undefined } if (tmpDirectorySync) { try { nodeFS.rmSync(tmpDirectorySync, {recursive: true, force: true}); console.log(`rmSync: Temporary directory '${tmpDirectorySync}' removed.`); } catch (err) { console.error(`rmSync: Can't remove temporary directory '${tmpDirectorySync}'! Error: '${JSON.stringify(err)}'.`); tmpDirectorySync = undefined } } /*** Test node:fs mkdirSync ***/ let tmpDirectory456 = nodePath.join(nodeOS.tmpdir(), 'test456'); try { nodeFS.mkdirSync(tmpDirectory456); console.log(`mkdirSync: Temporary directory '${tmpDirectory456}' created.`); } catch (err) { console.error(`mkdirSync: Can't create temporary directory '${tmpDirectory456}'! Error: '${JSON.stringify(err)}'.`); tmpDirectory456 = undefined } if (tmpDirectory456) { try { nodeFS.rmSync(tmpDirectory456, {recursive: true, force: true}); console.log(`rmSync: Temporary directory '${tmpDirectory456}' removed.`); } catch (err) { console.error(`rmSync: Can't remove temporary directory '${tmpDirectory456}'! Error: '${JSON.stringify(err)}'.`); tmpDirectory456 = undefined } }
The current behavior is on next field (log). Expected behaviour is (after roll-back to v7.9.4):
nfo: javascript.0 (140158) Start javascript script.js.Test.mkdtemp info: javascript.0 (140158) script.js.Test.mkdtemp: mkdtempSync: Temporary directory '/tmp/testx5HgEW' created. info: javascript.0 (140158) script.js.Test.mkdtemp: rmSync: Temporary directory '/tmp/testx5HgEW' removed. info: javascript.0 (140158) script.js.Test.mkdtemp: mkdirSync: Temporary directory '/tmp/test456' created. info: javascript.0 (140158) script.js.Test.mkdtemp: rmSync: Temporary directory '/tmp/test456' removed. info: javascript.0 (140158) script.js.Test.mkdtemp: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions info: javascript.0 (140158) script.js.Test.mkdtemp: mkdtemp: Temporary directory '/tmp/testGIKnjQ' created. info: javascript.0 (140158) script.js.Test.mkdtemp: mkdir: Temporary directory '/tmp/test123' created. info: javascript.0 (140158) script.js.Test.mkdtemp: rm: Temporary directory '/tmp/testGIKnjQ' removed. info: javascript.0 (140158) script.js.Test.mkdtemp: rm: Temporary directory '/tmp/test123' removed.
info: javascript.0 (270665) Start javascript script.js.Test.mkdtemp info: javascript.0 (270665) script.js.Test.mkdtemp: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions error: javascript.0 (270665) script.js.Test.mkdtemp: TypeError: nodeFS.mkdtemp is not a function error: javascript.0 (270665) at script.js.Test.mkdtemp:10:8 error: javascript.0 (270665) at script.js.Test.mkdtemp:84:3
and if mkdtemp is commented:
info: javascript.0 (270665) Start javascript script.js.Test.mkdtemp error: javascript.0 (270665) script.js.Test.mkdtemp: mkdtempSync: Can't create temporary directory 'undefined'! Error: '{}'. info: javascript.0 (270665) script.js.Test.mkdtemp: mkdirSync: Temporary directory '/tmp/test456' created. error: javascript.0 (270665) script.js.Test.mkdtemp: rmSync: Can't remove temporary directory '/tmp/test456'! Error: '{}'. info: javascript.0 (270665) script.js.Test.mkdtemp: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions info: javascript.0 (270665) script.js.Test.mkdtemp: mkdir: Temporary directory '/tmp/test123' created. error: javascript.0 (270665) script.js.Test.mkdtemp: TypeError: nodeFS.rm is not a function error: javascript.0 (270665) at script.js.Test.mkdtemp:35:12
v18.19.1
5.0.19
v7.10.2 and v7.11 and v.7.11.1
I'm sure that
Script type
JavaScript
The problem
From version v7.10.2 this functions from the
node:fs
is not availabe.This simple code doesn't work with
mkdtemp
andmkdtempSync
:The current behavior is on next field (log). Expected behaviour is (after roll-back to v7.9.4):
iobroker.current.log (in debug mode!)
info: javascript.0 (270665) Start javascript script.js.Test.mkdtemp info: javascript.0 (270665) script.js.Test.mkdtemp: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions error: javascript.0 (270665) script.js.Test.mkdtemp: TypeError: nodeFS.mkdtemp is not a function error: javascript.0 (270665) at script.js.Test.mkdtemp:10:8 error: javascript.0 (270665) at script.js.Test.mkdtemp:84:3
and if
mkdtemp
is commented:info: javascript.0 (270665) Start javascript script.js.Test.mkdtemp error: javascript.0 (270665) script.js.Test.mkdtemp: mkdtempSync: Can't create temporary directory 'undefined'! Error: '{}'. info: javascript.0 (270665) script.js.Test.mkdtemp: mkdirSync: Temporary directory '/tmp/test456' created. error: javascript.0 (270665) script.js.Test.mkdtemp: rmSync: Can't remove temporary directory '/tmp/test456'! Error: '{}'. info: javascript.0 (270665) script.js.Test.mkdtemp: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions info: javascript.0 (270665) script.js.Test.mkdtemp: mkdir: Temporary directory '/tmp/test123' created. error: javascript.0 (270665) script.js.Test.mkdtemp: TypeError: nodeFS.rm is not a function error: javascript.0 (270665) at script.js.Test.mkdtemp:35:12
Version of nodejs
v18.19.1
Version of ioBroker js-controller
5.0.19
Version of adapter
v7.10.2 and v7.11 and v.7.11.1