aboutsummaryrefslogtreecommitdiff
path: root/node_modules/fbjs/lib/compactArray.js.flow
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/fbjs/lib/compactArray.js.flow')
-rw-r--r--node_modules/fbjs/lib/compactArray.js.flow28
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/fbjs/lib/compactArray.js.flow b/node_modules/fbjs/lib/compactArray.js.flow
new file mode 100644
index 000000000..5b8ccbecb
--- /dev/null
+++ b/node_modules/fbjs/lib/compactArray.js.flow
@@ -0,0 +1,28 @@
+/**
+ * Copyright 2015-present Facebook. All Rights Reserved.
+ *
+ * @providesModule compactArray
+ * @typechecks
+ * @flow
+ */
+
+'use strict';
+
+/**
+ * Returns a new Array containing all the element of the source array except
+ * `null` and `undefined` ones. This brings the benefit of strong typing over
+ * `Array.prototype.filter`.
+ */
+
+function compactArray<T>(array: Array<T | null | void>): Array<T> {
+ var result = [];
+ for (var i = 0; i < array.length; ++i) {
+ var elem = array[i];
+ if (elem != null) {
+ result.push(elem);
+ }
+ }
+ return result;
+}
+
+module.exports = compactArray; \ No newline at end of file