Generate "contacts", "alerts" and "mnemonics" data for testing Astro Web Components and building demo applications.
npm install @astrouxds/mock-data
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 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
});
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
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
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
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;
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
Returns an array of contacts.
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. |
Returns a single contact.
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 |
Returns an array of alerts.
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. |
Returns a single alert.
Name | Type | Default | Description |
---|---|---|---|
options | {...} | {} | The same options from generateAlerts |
Returns an array of menmonics.
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. |
Returns a single mnemonic.
Name | Type | Default | Description |
---|---|---|---|
options | {...} | {} | The same options from generateMnemonics |
Publishes 100 contacts and generates a new contact every 5 seconds up to 200 contacts by default.
Returns an unsubscribe function.
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. |
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.
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. |
subscribe
Subscribes to received published contacts.
Returns a function to unsubscribe.
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.
Name | Type | Default | Description |
---|---|---|---|
updateContact
Updates the specified contact.
Returns a success message.
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.
Name | Type | Default | Description |
---|---|---|---|
id | uuid | required | The id of the contact to delete. |
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' |
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. |
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 | '' |
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 | '' |