particle-cli
Version:
Simple Node commandline application for working with your Particle devices and using the Particle Cloud
63 lines (57 loc) • 1.44 kB
JavaScript
const { platforms } = require('@particle/device-constants');
/**
* Array of description objects for all supported platforms.
*/
const PLATFORMS = Object.values(platforms).filter(p => p.public);
const PLATFORMS_BY_ID = PLATFORMS.reduce((map, p) => map.set(p.id, p), new Map());
/**
* Supported platform IDs.
*
* @enum {Number}
* @property {Number} CORE
* @property {Number} PHOTON
* @property {Number} P1
* @property {Number} ELECTRON
* @property {Number} ARGON
* @property {Number} BORON
* @property {Number} XENON
* @property {Number} ESOMX
* @property {Number} BSOM
* @property {Number} B5SOM
* @property {Number} TRACKER
* @property {Number} TRACKERM
* @property {Number} P2
* @property {Number} MSOM
*/
const PlatformId = PLATFORMS.reduce((out, p) => {
out[p.name.toUpperCase()] = p.id;
return out;
}, {});
/**
* Get the platform description.
*
* @param {Number} id The platform ID.
* @throws Throws an error if `id` is not a known platform ID.
*/
function platformForId(id) {
const p = PLATFORMS_BY_ID.get(id);
if (!p) {
throw new Error(`Unknown platform ID: ${id}`);
}
return p;
}
/**
* Check if a platform ID is known.
*
* @param {Number} id The platform ID.
* @returns {Boolean} `true` if the platform ID is known, otherwise `false`.
*/
function isKnownPlatformId(id) {
return PLATFORMS_BY_ID.has(id);
}
module.exports = {
PLATFORMS,
PlatformId,
platformForId,
isKnownPlatformId
};