mirror of
https://github.com/github/codeql.git
synced 2026-05-02 04:05:14 +02:00
Dynamic/JS: Add library for exporting models
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
typeModel
|
||||
| (reexport).func | reexport | Member[func] |
|
||||
summaryModel
|
||||
@@ -0,0 +1,6 @@
|
||||
extensions:
|
||||
- addsTo:
|
||||
pack: codeql/javascript-all
|
||||
extensible: typeModel
|
||||
data:
|
||||
- ["upstream-lib.XYZ", "upstream-lib", "Member[x].Member[y].Member[z]"]
|
||||
@@ -0,0 +1,17 @@
|
||||
private import javascript
|
||||
private import semmle.javascript.endpoints.EndpointNaming as EndpointNaming
|
||||
private import semmle.javascript.frameworks.data.internal.ApiGraphModels as Shared
|
||||
|
||||
module ModelExportConfig implements ModelExportSig {
|
||||
predicate shouldContain(API::Node node) {
|
||||
node.getAValueReachingSink() instanceof DataFlow::FunctionNode
|
||||
}
|
||||
|
||||
predicate mustBeNamed(API::Node node) { shouldContain(node) }
|
||||
}
|
||||
|
||||
module Exported = ModelExport<ModelExportConfig>;
|
||||
|
||||
query predicate typeModel = Exported::typeModel/3;
|
||||
|
||||
query predicate summaryModel = Exported::summaryModel/5;
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "reexport",
|
||||
"main": "reexport.js"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import * as lib from "upstream-lib";
|
||||
|
||||
export { lib };
|
||||
|
||||
export const x = lib.x;
|
||||
export const xy = lib.x.y;
|
||||
|
||||
export function func() {
|
||||
return lib;
|
||||
}
|
||||
Reference in New Issue
Block a user