From f62acc96734866f115a3e64e3b49c084afa6cf9b Mon Sep 17 00:00:00 2001 From: alin Date: Tue, 30 Jan 2024 11:53:02 +0100 Subject: [PATCH] Add docs for isConstructor() --- docs/.vuepress/archive/Version0x.ts | 1 + .../current/packages/support/reflections.md | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 docs/archive/current/packages/support/reflections.md diff --git a/docs/.vuepress/archive/Version0x.ts b/docs/.vuepress/archive/Version0x.ts index 9abec963..675ffe3e 100644 --- a/docs/.vuepress/archive/Version0x.ts +++ b/docs/.vuepress/archive/Version0x.ts @@ -38,6 +38,7 @@ export default PagesCollection.make('v0.x', '/v0x', [ 'packages/support/install', 'packages/support/meta', 'packages/support/objects', + 'packages/support/reflections', 'packages/support/misc', ] }, diff --git a/docs/archive/current/packages/support/reflections.md b/docs/archive/current/packages/support/reflections.md new file mode 100644 index 00000000..fb0b795d --- /dev/null +++ b/docs/archive/current/packages/support/reflections.md @@ -0,0 +1,31 @@ +--- +title: Reflections +description: Reflection utilities +sidebarDepth: 0 +--- + +# Reflections + +The `@aedart/support/reflections` submodule offers a few reflection related utilities. + +[[TOC]] + +## `isConstructor` + +Based on the [TC39 `Function.isCallable() / Function.isConstructor()`](https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md) proposal, the `isConstructor()` can determine if given argument is a constructor. + +```js{6,8-9} +import { isConstructor } from "@aedart/support/reflections"; + +isConstructor(null); // false +isConstructor({}); // false +isConstructor([]); // false +isConstructor(function() {}); // true +isConstructor(() => {}); // false +isConstructor(Array); // true +isConstructor(class {}); // true +``` + +**Acknowledgement** + +The source code of the above shown methods is heavily inspired by Denis Pushkarev's Core-js implementation of the [Function.isCallable / Function.isConstructor](https://github.com/zloirock/core-js#function-iscallable-isconstructor-) proposal (_License MIT_).