@astrouxds/mock-data
v0.6.5
Published
Mock data for use with Astro UXDS demo apps.
Downloads
533
Keywords
Readme
Astro UXDS Mock Data
Generate "contacts", "alerts" and "mnemonics" data for testing Astro Web Components and building demo applications.
Install
npm install @astrouxds/mock-data
Getting Started
The example below creates a state object with the generated contacts and maps the alerts and mnemonics connected to those contacts on their respective properties.
import { generateContacts } from '@astrouxds/mock-data';
const contacts = generateContacts();
const state = {
contacts,
alerts: contacts.flatMap(({ alerts }) => alerts),
mnemonics: contacts.flatMap(({ mnemonics }) => mnemonics),
};
console.log(state);
Contacts
Contacts include alerts with a "contact ref" on the alert based on where in the array (the index) a contact is. Meaning not all contacts will have alerts, only a percentage of them will.
All contacts will have mnemonics as an array property on the contact object.
import { generateContacts } from '@astrouxds/mock-data';
const contacts = generateContacts(); // returns 100 contacts by default
const contacts = generateContacts(300); // returns 300 contacts
// returns 200 contacts with options provided below
const contacts = generateContacts(200, {
alertsPercentage: 5, // percentage of the 200 contacts to have an alert @default 10%
secondAlertPercentage: 3, // percentage of the 200 contacts to have 2 alerts @default 2%
daysRange: 2, // range of the start and end timestamps @default 1 day
dateRef: '3/17/2008', // date reference for timestamps @default now
});
Alerts
If you just want alerts without any contact ref you can generate just an array of alerts.
import { generateAlerts } from '@astrouxds/mock-data';
const alerts = generateAlerts(5); // returns 5 alerts
Mnemonics
If you just want mnemonics without any contact ref you can generate just an array of alerts.
import { generateMnemonics } from '@astrouxds/mock-data';
const mnemonics = generateMnemonics(5); // returns 5 mnemonics
Contacts Subscriber
Publishes 100 contacts and generates a new contact every 5 seconds up to 200 contacts by default.
import { onContactsChange } from '@astrouxds/mock-data';
const unsubscribe = onContactsChange((contacts) => {
console.log(contacts);
});
With options as second argument
const unsubscribe = onContactsChange(
(contacts) => console.log(contacts),
{ limit: 50 }, // options with a limit of 50
);
Use the unsubscribe function returned from onContactsChange to unsubscribe
setTimeout(() => {
unsubscribe();
}, 1000 * 60 * 5); // unsubscribe after 5 mins
Contacts Subscriber Example With React
import { useEffect, useState } from 'react';
import { onContactsChange, Contact } from '@astrouxds/mock-data';
const App = () => {
const [contacts, setContacts] = useState<Contact[]>([]);
useEffect(() => {
const unsubscribe = onContactsChange((contacts) => {
setContacts(contacts);
});
return () => {
unsubscribe();
};
}, []);
return (
<ul>
{contacts.map(({ id, equipment }) => (
<li key={id}>{equipment}</li>
))}
</ul>
);
};
export default App;
Contacts Service
Class based store for instaciating then subscribing to an auto-generate contacts state
import { ContactsService } from '@astrouxds/mock-data';
// with manually set options
const contactsService = new ContactsService({
initial: 10,
interval: 2,
limit: 20,
});
let contacts: Contact[] = [];
const unsubscribe = contactsService.subscribe((data) => {
contacts = data;
});
Use the unsubscribe function returned from contactsService.subscribe to unsubscribe
setTimeout(() => {
unsubscribe();
}, 1000 * 60 * 5); // unsubscribe after 5 mins
API
function
generateContacts
Returns an array of contacts.
Parameters
| Name | Type | Default | Description | | ----------------------------- | -------------------------------- | ------- | -------------------------------------------------------------------------- | | length | number | 100 | The total number of contacts to generate. | | options | {...} | {} | If no options are set, the defaults are used as described below. | | options.alertsPercentage | AlertsPercentage | 10 | The percentage of contacts which should have an alert connected to them. | | options.secondAlertPercentage | AlertsPercentage | 2 | The percentage of contacts which should have two alerts connected to them. | | options.daysRange | number | 1 | The range in days for the span between the start and end timestamps. | | options.dateRef | string | number | Date | now | The date to reference when generating the contacts. |
function
generateContact
Returns a single contact.
Parameters
| Name | Type | Default | Description | | ------- | ------ | -------- | ----------------------------------------------------------------------- | | index | number | required | The index is used to determine if an alert(s) is connected the contact. | | options | {...} | {} | The same options from generateContacts |
function
generateAlerts
Returns an array of alerts.
Parameters
| Name | Type | Default | Description | | -------------------- | -------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------- | | length | number | 40 | The total number of alerts to generate. | | options | {...} | {} | If no options are set, the defaults are used as described below. | | options.contactRefId | string | '' | A contact reference id. Will be an empty string if not provided. | | options.equipment | string | undefined | An equipment config string. Will be generated if not provided. | | options.createdRef | string | number | Date | undefined | The date to reference when generating the alerts. If provided, this will override any start and end options set. | | options.start | string | number | Date | undefined | The starting timestamp for the alert timestamp boundry. | | options.end | string | number | Date | undefined | The ending timestamp for the alert timestamp boundry. |
function
generateAlert
Returns a single alert.
Parameters
| Name | Type | Default | Description | | ------- | ----- | ------- | ------------------------------------------- | | options | {...} | {} | The same options from generateAlerts |
generateMnemonics
Returns an array of menmonics.
Parameters
| Name | Type | Default | Description | | -------------------- | ------ | ------- | -------------------------------------------------------------------------------------------------------- | | length | number | 9 | The total number of alerts to generate. | | options | {...} | {} | If no options are set, the defaults are used as described below. | | options.contactRefId | string | '' | A contact reference id. Will be an empty string if not provided. | | options.thresholdMin | number | 0 | The minimum threshold for the mnemonic value. | | options.thresholdMax | number | 110 | The maximum threshold for the mnemonic value. | | options.deviation | number | 20 | The amount the mnemonic value is allow to exceed the threshold maximum or subceed the threshold minimum. | | options.precision | number | 0.1 | The number of decimal places the mnemonic value will include. |
function
generateMnemonic
Returns a single mnemonic.
Parameters
| Name | Type | Default | Description | | ------- | ----- | ------- | ---------------------------------------------- | | options | {...} | {} | The same options from generateMnemonics |
function
onContactsChange
Publishes 100 contacts and generates a new contact every 5 seconds up to 200 contacts by default.
Returns an unsubscribe function.
Parameters
| Name | Type | Default | Description | | ----------------------------- | -------------------------------- | -------- | -------------------------------------------------------------------------- | | callback | (contacts: Contact[]) => void | required | A callback function which receives the latest contacts array. | | options | OnContactChangeOptions | {} | If no options are set, the defaults are used as described below. | | options.alertsPercentage | AlertsPercentage | 10 | The percentage of contacts which should have an alert connected to them. | | options.secondAlertPercentage | AlertsPercentage | 2 | The percentage of contacts which should have two alerts connected to them. | | options.daysRange | number | 1 | The range in days for the span between the start and end timestamps. | | options.dateRef | string | number | Date | now | The date to reference when generating the contacts. | | options.initial | number | 100 | The initial number of contacts generated on subscribe. | | options.interval | number | 5 | The interval in seconds which new contacts are generated and published. | | options.limit | number | 200 | The limit of new contacts to generate and publish. |
class
ContactsService
Generates initial contacts, publishes a new contact every x amount of seconds, and has methods to add, update, and delete a contact.
Returns an instance a ContactsService.
Parameters
| Name | Type | Default | Description | | ----------------------------- | -------------------------------- | ------- | -------------------------------------------------------------------------- | | options | ContactsServiceOptions | {} | If no options are set, the defaults are used as described below. | | options.alertsPercentage | AlertsPercentage | 10 | The percentage of contacts which should have an alert connected to them. | | options.secondAlertPercentage | AlertsPercentage | 2 | The percentage of contacts which should have two alerts connected to them. | | options.daysRange | number | 1 | The range in days for the span between the start and end timestamps. | | options.dateRef | string | number | Date | now | The date to reference when generating the contacts. | | options.initial | number | 100 | The initial number of contacts generated on subscribe. | | options.interval | number | 5 | The interval in seconds which new contacts are generated and published. | | options.limit | number | 200 | The limit of new contacts to generate and publish. |
Methods
subscribe
Subscribes to received published contacts.
Returns a function to unsubscribe.
Parameters
| Name | Type | Default | Description | | -------- | ----------------------------- | -------- | ------------------------------------------------------------- | | callback | (contacts: Contact[]) => void | required | A callback function which receives the latest contacts array. |
addContact
Adds a newly generated contact.
Returns the added contact.
Parameters
| Name | Type | Default | Description | | ---- | ---- | ------- | ----------- | | | | | |
updateContact
Updates the specified contact.
Returns a success message.
Parameters
| Name | Type | Default | Description | | ----------------------- | ----------------------- | --------- | -------------------------------- | | id | uuid | required | The id of the contact to modify. | | params | UpdateContactParams | {} | An optional params object. | | params.ground | ContactGround | undefined | Optional property to modify. | | params.satellite | string | undefined | Optional property to modify. | | params.equipment | string | undefined | Optional property to modify. | | params.state | ContactState | undefined | Optional property to modify. | | params.step | ContactStep | undefined | Optional property to modify. | | params.detail | string | undefined | Optional property to modify. | | params.beginTimestamp | number | undefined | Optional property to modify. | | params.endTimestamp | number | undefined | Optional property to modify. | | params.resolution | ContactResolution | undefined | Optional property to modify. | | params.resolutionStatus | ContactResolutionStatus | undefined | Optional property to modify. |
deleteContact
Deletes the specified contact.
Returns a success message.
Parameters
| Name | Type | Default | Description | | ---- | ---- | -------- | -------------------------------- | | id | uuid | required | The id of the contact to delete. |
Schema
Types
| Type | Description | | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | AlertCategory | 'software' | 'spacecraft' | 'hardware' | | AlertsPercentage | 0 | 2 | 3 | 4 | 5 | 10 | 12 | 15 | 20 | 25 | 34 | 50 | | ContactGround | 'CTS' | 'DGS' | 'GTS' | 'TCS' | 'VTS' | 'NHS' | 'TTS' | 'HTS' | | ContactState | 'executing' | 'failed' | 'ready' | 'updating' | | ContactStep | 'AOS' | 'Command' | 'Configure Operation' | 'Critical Health' | 'DCC' | 'Downlink' | 'Lock' | 'LOS' | 'SARM'| 'Uplink' | | ContactResolution | 'complete' | 'failed' | 'pass' | 'prepass' | 'scheduled' | | ContactResolutionStatus | 'normal' | 'critical' | 'off' | 'standby' | | DataType | 'contact' | 'alert' | 'mnemonic' | | Status | 'caution' | 'critical' | 'normal' | 'off' | 'serious' | 'standby' |
Contact
| Property | Type | Description | | ---------------- | ----------------------- | ---------------------- | | id | string | uuid | | type | DataType | | | status | Status | | | name | number | | | ground | ContactGround | | | rev | number | | | satellite | string | | | equipment | string | | | state | ContactState | | | step | ContactStep | | | detail | string | | | beginTimestamp | number | | | endTimestamp | number | | | aos | number | | | los | number | | | latitude | number | | | longitude | number | | | azimuth | number | | | elevation | number | | | resolution | ContactResolution | | | resolutionStatus | ContactResolutionStatus | | | alerts | Alert[] | An array of alerts. | | mnemonics | Mnemonic[] | An array of mnemonics. |
Alert
| Property | Type | Description | | ------------ | ------------- | -------------- | | id | string | uuid | | status | Status | | | category | AlertCategory | | | message | string | | | longMessage | string | | | timestamp | number | | | selected | boolean | | | new | boolean | | | expanded | boolean | | | acknowledged | boolean | | | contactRefId | string | uuid | '' |
Mnemonic
| Property | Type | Description | | -------------- | ------ | -------------- | | id | string | uuid | | mnemonicId | string | | | status | Status | | | unit | string | | | thresholdMax | number | | | thresholdMin | number | | | currentValue | number | | | subsystem | string | | | childSubsystem | string | | | measurement | string | | | contactRefId | string | uuid | '' |