mirror of
https://github.com/github/codeql.git
synced 2026-05-03 20:58:03 +02:00
refactor package export into a library, and add tests for the library
This commit is contained in:
1
javascript/ql/test/library-tests/PackageExports/index.js
Normal file
1
javascript/ql/test/library-tests/PackageExports/index.js
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = function notExporterAnyWhere() {}
|
||||
@@ -0,0 +1 @@
|
||||
module.exports = function notImportedAnywhere() {}
|
||||
@@ -0,0 +1,3 @@
|
||||
module.exports = function thisIsRequiredFromMain() {}
|
||||
|
||||
module.exports.foo = function alsoExported() {}
|
||||
@@ -0,0 +1 @@
|
||||
module.exports = function alsoNotExported() {}
|
||||
17
javascript/ql/test/library-tests/PackageExports/lib1/main.js
Normal file
17
javascript/ql/test/library-tests/PackageExports/lib1/main.js
Normal file
@@ -0,0 +1,17 @@
|
||||
module.exports = function isExported() {}
|
||||
|
||||
module.exports.foo = require("./foo.js")
|
||||
|
||||
module.exports.bar = class Bar {
|
||||
constructor() {} // all are exported
|
||||
static staticMethod() {}
|
||||
instanceMethod() {}
|
||||
}
|
||||
|
||||
class Baz {
|
||||
constructor() {} // not exported
|
||||
static staticMethod() {} // not exported
|
||||
instanceMethod() {} // exported
|
||||
}
|
||||
|
||||
module.exports.Baz = new Baz()
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "main.js"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"main": "sublib.js"
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
module.exports = function exportedInSublibButIsNotAMainPackageExport() {}
|
||||
@@ -0,0 +1,30 @@
|
||||
getTopmostPackageJSON
|
||||
getAValueExportedBy
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/foo.js:1:1:1:0 | this |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/foo.js:1:1:1:53 | module. ... in() {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/foo.js:1:18:1:53 | functio ... in() {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/foo.js:3:1:3:14 | module.exports |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/foo.js:3:1:3:18 | module.exports.foo |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/foo.js:3:22:3:21 | this |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/foo.js:3:22:3:47 | functio ... ed() {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:1:1:1:0 | this |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:1:1:1:41 | module. ... ed() {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:1:18:1:41 | functio ... ed() {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:3:1:3:14 | module.exports |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:3:1:3:18 | module.exports.foo |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:3:1:3:40 | module. ... oo.js") |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:3:22:3:40 | require("./foo.js") |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:5:1:5:14 | module.exports |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:5:1:5:18 | module.exports.bar |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:5:22:9:1 | class B ... () {}\\n} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:6:16:6:20 | () {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:7:5:7:28 | static ... od() {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:7:24:7:28 | () {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:8:19:8:23 | () {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:14:19:14:23 | () {} |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:17:1:17:14 | module.exports |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:17:1:17:18 | module.exports.Baz |
|
||||
| lib1/package.json:1:1:3:1 | {\\n " ... n.js"\\n} | lib1/main.js:17:22:17:30 | new Baz() |
|
||||
| lib1/sublib/package.json:1:1:3:1 | {\\n " ... b.js"\\n} | lib1/sublib/sublib.js:1:1:1:0 | this |
|
||||
| lib1/sublib/package.json:1:1:3:1 | {\\n " ... b.js"\\n} | lib1/sublib/sublib.js:1:1:1:73 | module. ... rt() {} |
|
||||
| lib1/sublib/package.json:1:1:3:1 | {\\n " ... b.js"\\n} | lib1/sublib/sublib.js:1:18:1:73 | functio ... rt() {} |
|
||||
12
javascript/ql/test/library-tests/PackageExports/tests.ql
Normal file
12
javascript/ql/test/library-tests/PackageExports/tests.ql
Normal file
@@ -0,0 +1,12 @@
|
||||
import javascript
|
||||
|
||||
import semmle.javascript.PackageExports as Exports
|
||||
|
||||
|
||||
query PackageJSON getTopmostPackageJSON() {
|
||||
result = Exports::getTopmostPackageJSON()
|
||||
}
|
||||
|
||||
query DataFlow::Node getAValueExportedBy(PackageJSON json) {
|
||||
result = Exports::getAValueExportedBy(json)
|
||||
}
|
||||
Reference in New Issue
Block a user