aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/npm-install-checks/index.js
diff options
context:
space:
mode:
authorDanijel Andjelkovic <adanijel99@gmail.com>2022-03-01 21:54:41 +0100
committerDanijel Andjelkovic <adanijel99@gmail.com>2022-03-01 21:54:41 +0100
commit6c8128f9fd5a5d0be115806c35a21b3d683df8d6 (patch)
treef46c2f6b3b9b294ff32bd75c08ccdc9e7a8cc4ef /sandbox/testAppNevena/Front/node_modules/npm-install-checks/index.js
parent2400b84e95913665da6279114168148444b8f9ab (diff)
parent7d3640f824f46490b47bd95f1c5a16644f712068 (diff)
Merge branch 'dev' of http://gitlab.pmf.kg.ac.rs/igrannonica/neuronstellar into logo
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/npm-install-checks/index.js')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/npm-install-checks/index.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/npm-install-checks/index.js b/sandbox/testAppNevena/Front/node_modules/npm-install-checks/index.js
new file mode 100644
index 00000000..732888ef
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/npm-install-checks/index.js
@@ -0,0 +1,79 @@
+const {format} = require('util')
+const semver = require('semver')
+
+const checkEngine = (target, npmVer, nodeVer, force = false) => {
+ const nodev = force ? null : nodeVer
+ const eng = target.engines
+ const opt = { includePrerelease: true }
+ if (!eng) {
+ return
+ }
+
+ const nodeFail = nodev && eng.node && !semver.satisfies(nodev, eng.node, opt)
+ const npmFail = npmVer && eng.npm && !semver.satisfies(npmVer, eng.npm, opt)
+ if (nodeFail || npmFail) {
+ throw Object.assign(new Error('Unsupported engine'), {
+ pkgid: target._id,
+ current: { node: nodeVer, npm: npmVer },
+ required: eng,
+ code: 'EBADENGINE'
+ })
+ }
+}
+
+const checkPlatform = (target, force = false) => {
+ if (force) {
+ return
+ }
+
+ const platform = process.platform
+ const arch = process.arch
+ const osOk = target.os ? checkList(platform, target.os) : true
+ const cpuOk = target.cpu ? checkList(arch, target.cpu) : true
+
+ if (!osOk || !cpuOk) {
+ throw Object.assign(new Error('Unsupported platform'), {
+ pkgid: target._id,
+ current: {
+ os: platform,
+ cpu: arch
+ },
+ required: {
+ os: target.os,
+ cpu: target.cpu
+ },
+ code: 'EBADPLATFORM'
+ })
+ }
+}
+
+const checkList = (value, list) => {
+ if (typeof list === 'string') {
+ list = [list]
+ }
+ if (list.length === 1 && list[0] === 'any') {
+ return true
+ }
+ // match none of the negated values, and at least one of the
+ // non-negated values, if any are present.
+ let negated = 0
+ let match = false
+ for (const entry of list) {
+ const negate = entry.charAt(0) === '!'
+ const test = negate ? entry.slice(1) : entry
+ if (negate) {
+ negated ++
+ if (value === test) {
+ return false
+ }
+ } else {
+ match = match || value === test
+ }
+ }
+ return match || negated === list.length
+}
+
+module.exports = {
+ checkEngine,
+ checkPlatform
+}