Better JS language integration for Pre-Request scripts and Test scripts (#1422)

* Add tern as dependency

* Add build rule to transpile mjs

* Initial implementation of the auto complete engine

* Separate out the tern server code to separate file

* Added extra type defs for tern server

* Boost the pw completion result to the top of the list

* Added acorn and acorn-walk as dependency

* Semantic linting powered by tern

* Fix DeepCode warnings for js-editor

* Remove unused registerLint tern extension

Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
This commit is contained in:
Andrew Bastin
2021-01-21 20:34:02 -05:00
committed by GitHub
parent ff418ad55f
commit c5dff96f57
11 changed files with 2433 additions and 35 deletions

1284
helpers/terndoc/ecma.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,51 @@
{
"!name": "pw-extra",
"console": {
"assert": {
"!type": "fn(assertion: bool, text: string)"
},
"clear": {
"!type": "fn()"
},
"count": {
"!type": "fn(label?: string)"
},
"debug": "console.log",
"dir": {
"!type": "fn(object: ?)"
},
"error": {
"!type": "fn(...msg: ?)"
},
"group": {
"!type": "fn(label?: string)"
},
"groupCollapsed": {
"!type": "fn(label?: string)"
},
"groupEnd": {
"!type": "fn()"
},
"info": {
"!type": "fn(...msg: ?)"
},
"log": {
"!type": "fn(...msg: ?)"
},
"table": {
"!type": "fn(data: []|?, columns?: [])"
},
"time": {
"!type": "fn(label: string)"
},
"timeEnd": {
"!type": "fn(label: string)"
},
"trace": {
"!type": "fn()"
},
"warn": {
"!type": "fn(...msg: ?)"
}
}
}

View File

@@ -0,0 +1,8 @@
{
"!name": "pw-pre",
"pw": {
"env": {
"set": "fn(key: string, value: string)"
}
}
}

View File

@@ -0,0 +1,24 @@
{
"!name": "pw-test",
"!define": {
"Expectation": {
"not": "Expectation",
"toBe": "fn(value: ?)",
"toBeLevel2xx": "fn()",
"toBeLevel3xx": "fn()",
"toBeLevel4xx": "fn()",
"toBeLevel5xx": "fn()",
"toBeType": "fn(type: string)",
"toHaveLength": "fn(length: number)"
}
},
"pw": {
"expect": "fn(value: ?) -> Expectation",
"response": {
"status": "number",
"headers": "?",
"body": "?"
},
"test": "fn(name: string, func: fn())"
}
}