summaryrefslogtreecommitdiff
path: root/std/node/_util/_util_promisify.ts
diff options
context:
space:
mode:
authorWJH <hou32hou@gmail.com>2020-07-03 00:03:15 +0800
committerGitHub <noreply@github.com>2020-07-02 18:03:15 +0200
commit538504f57c206cb3d10f9fd53bd0c3fc4bef4e6f (patch)
tree3bb0e6e1f4599b28aa528eecc7c4d2bb77b97341 /std/node/_util/_util_promisify.ts
parentcc12e86fe36a77ecb0bb836ba82e823ca26abdc2 (diff)
improve(std/asserts): allow assert functions to specify type parameter (#6413)
Diffstat (limited to 'std/node/_util/_util_promisify.ts')
-rw-r--r--std/node/_util/_util_promisify.ts25
1 files changed, 21 insertions, 4 deletions
diff --git a/std/node/_util/_util_promisify.ts b/std/node/_util/_util_promisify.ts
index e3cc36a0c..ea2fb6a5e 100644
--- a/std/node/_util/_util_promisify.ts
+++ b/std/node/_util/_util_promisify.ts
@@ -21,13 +21,30 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
+// Hack: work around the following TypeScript error:
+// error: TS2345 [ERROR]: Argument of type 'typeof kCustomPromisifiedSymbol'
+// is not assignable to parameter of type 'typeof kCustomPromisifiedSymbol'.
+// assertStrictEquals(kCustomPromisifiedSymbol, promisify.custom);
+// ~~~~~~~~~~~~~~~~
+declare const _CustomPromisifiedSymbol: unique symbol;
+declare const _CustomPromisifyArgsSymbol: unique symbol;
+declare let Symbol: SymbolConstructor;
+interface SymbolConstructor {
+ for(key: "nodejs.util.promisify.custom"): typeof _CustomPromisifiedSymbol;
+ for(
+ key: "nodejs.util.promisify.customArgs"
+ ): typeof _CustomPromisifyArgsSymbol;
+}
+// End hack.
+
// In addition to being accessible through util.promisify.custom,
-// this symbol is registered globally and can be accessed in any environment as Symbol.for('nodejs.util.promisify.custom')
+// this symbol is registered globally and can be accessed in any environment as
+// Symbol.for('nodejs.util.promisify.custom').
const kCustomPromisifiedSymbol = Symbol.for("nodejs.util.promisify.custom");
-// This is an internal Node symbol used by functions returning multiple arguments
-// e.g. ['bytesRead', 'buffer'] for fs.read.
+// This is an internal Node symbol used by functions returning multiple
+// arguments, e.g. ['bytesRead', 'buffer'] for fs.read().
const kCustomPromisifyArgsSymbol = Symbol.for(
- "deno.nodejs.util.promisify.customArgs"
+ "nodejs.util.promisify.customArgs"
);
class NodeInvalidArgTypeError extends TypeError {