MDL-68390 aria: Add new core_aria module
[moodle.git] / lib / amd / src / normalise.js
1 // This file is part of Moodle - http://moodle.org/
2 //
3 // Moodle is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // Moodle is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16 /**
17  * Normalisation helpers.
18  *
19  * @module     core/normalise
20  * @class      normalise
21  * @package    core
22  * @copyright  2020 Andrew Nicols <andrew@nicols.co.uk>
23  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24  */
26 import jQuery from 'jquery';
28 export const getList = nodes => {
29     if (nodes instanceof HTMLElement) {
30         // A single record to conver to a NodeList.
31         return [nodes];
32     }
34     if (nodes instanceof Array) {
35         // A single record to conver to a NodeList.
36         return nodes;
37     }
39     if (nodes instanceof NodeList) {
40         // Already a NodeList.
41         return Array.from(nodes);
42     }
44     if (nodes instanceof jQuery) {
45         // A jQuery object to a NodeList.
46         return nodes.get();
47     }
49     // Fallback to just having a go.
50     return Array.from(nodes);
51 };