From 5d309ff52cd399a6b71968a6b9a70c8ac0b98981 Mon Sep 17 00:00:00 2001 From: Joel Kronqvist Date: Sat, 5 Mar 2022 19:02:27 +0200 Subject: Added node_modules for the updating to work properly. --- node_modules/get-package-type/async.cjs | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 node_modules/get-package-type/async.cjs (limited to 'node_modules/get-package-type/async.cjs') diff --git a/node_modules/get-package-type/async.cjs b/node_modules/get-package-type/async.cjs new file mode 100644 index 0000000..fa7fd5c --- /dev/null +++ b/node_modules/get-package-type/async.cjs @@ -0,0 +1,52 @@ +'use strict'; + +const path = require('path'); +const {promisify} = require('util'); +const readFile = promisify(require('fs').readFile); + +const isNodeModules = require('./is-node-modules.cjs'); +const resultsCache = require('./cache.cjs'); + +const promiseCache = new Map(); + +async function getDirectoryTypeActual(directory) { + if (isNodeModules(directory)) { + return 'commonjs'; + } + + try { + return JSON.parse(await readFile(path.resolve(directory, 'package.json'))).type || 'commonjs'; + } catch (_) { + } + + const parent = path.dirname(directory); + if (parent === directory) { + return 'commonjs'; + } + + return getDirectoryType(parent); +} + +async function getDirectoryType(directory) { + if (resultsCache.has(directory)) { + return resultsCache.get(directory); + } + + if (promiseCache.has(directory)) { + return promiseCache.get(directory); + } + + const promise = getDirectoryTypeActual(directory); + promiseCache.set(directory, promise); + const result = await promise; + resultsCache.set(directory, result); + promiseCache.delete(directory); + + return result; +} + +function getPackageType(filename) { + return getDirectoryType(path.resolve(path.dirname(filename))); +} + +module.exports = getPackageType; -- cgit v1.2.3