0.6.4 • Published 9 months ago

@astrouxds/mock-data v0.6.4

Weekly downloads
-
License
ISC
Repository
github
Last release
9 months ago

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

NameTypeDefaultDescription
lengthnumber100The total number of contacts to generate.
options{...}{}If no options are set, the defaults are used as described below.
options.alertsPercentageAlertsPercentage10The percentage of contacts which should have an alert connected to them.
options.secondAlertPercentageAlertsPercentage2The percentage of contacts which should have two alerts connected to them.
options.daysRangenumber1The range in days for the span between the start and end timestamps.
options.dateRefstring | number | DatenowThe date to reference when generating the contacts.
function

generateContact

Returns a single contact.

Parameters

NameTypeDefaultDescription
indexnumberrequiredThe 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

NameTypeDefaultDescription
lengthnumber40The total number of alerts to generate.
options{...}{}If no options are set, the defaults are used as described below.
options.contactRefIdstring''A contact reference id. Will be an empty string if not provided.
options.equipmentstringundefinedAn equipment config string. Will be generated if not provided.
options.createdRefstring | number | DateundefinedThe date to reference when generating the alerts. If provided, this will override any start and end options set.
options.startstring | number | DateundefinedThe starting timestamp for the alert timestamp boundry.
options.endstring | number | DateundefinedThe ending timestamp for the alert timestamp boundry.
function

generateAlert

Returns a single alert.

Parameters

NameTypeDefaultDescription
options{...}{}The same options from generateAlerts

generateMnemonics

Returns an array of menmonics.

Parameters

NameTypeDefaultDescription
lengthnumber9The total number of alerts to generate.
options{...}{}If no options are set, the defaults are used as described below.
options.contactRefIdstring''A contact reference id. Will be an empty string if not provided.
options.thresholdMinnumber0The minimum threshold for the mnemonic value.
options.thresholdMaxnumber110The maximum threshold for the mnemonic value.
options.deviationnumber20The amount the mnemonic value is allow to exceed the threshold maximum or subceed the threshold minimum.
options.precisionnumber0.1The number of decimal places the mnemonic value will include.
function

generateMnemonic

Returns a single mnemonic.

Parameters

NameTypeDefaultDescription
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

NameTypeDefaultDescription
callback(contacts: Contact[]) => voidrequiredA callback function which receives the latest contacts array.
optionsOnContactChangeOptions{}If no options are set, the defaults are used as described below.
options.alertsPercentageAlertsPercentage10The percentage of contacts which should have an alert connected to them.
options.secondAlertPercentageAlertsPercentage2The percentage of contacts which should have two alerts connected to them.
options.daysRangenumber1The range in days for the span between the start and end timestamps.
options.dateRefstring | number | DatenowThe date to reference when generating the contacts.
options.initialnumber100The initial number of contacts generated on subscribe.
options.intervalnumber5The interval in seconds which new contacts are generated and published.
options.limitnumber200The 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
NameTypeDefaultDescription
optionsContactsServiceOptions{}If no options are set, the defaults are used as described below.
options.alertsPercentageAlertsPercentage10The percentage of contacts which should have an alert connected to them.
options.secondAlertPercentageAlertsPercentage2The percentage of contacts which should have two alerts connected to them.
options.daysRangenumber1The range in days for the span between the start and end timestamps.
options.dateRefstring | number | DatenowThe date to reference when generating the contacts.
options.initialnumber100The initial number of contacts generated on subscribe.
options.intervalnumber5The interval in seconds which new contacts are generated and published.
options.limitnumber200The limit of new contacts to generate and publish.

Methods

subscribe

Subscribes to received published contacts.

Returns a function to unsubscribe.

Parameters
NameTypeDefaultDescription
callback(contacts: Contact[]) => voidrequiredA callback function which receives the latest contacts array.

addContact

Adds a newly generated contact.

Returns the added contact.

Parameters
NameTypeDefaultDescription

updateContact

Updates the specified contact.

Returns a success message.

Parameters
NameTypeDefaultDescription
iduuidrequiredThe id of the contact to modify.
paramsUpdateContactParams{}An optional params object.
params.groundContactGroundundefinedOptional property to modify.
params.satellitestringundefinedOptional property to modify.
params.equipmentstringundefinedOptional property to modify.
params.stateContactStateundefinedOptional property to modify.
params.stepContactStepundefinedOptional property to modify.
params.detailstringundefinedOptional property to modify.
params.beginTimestampnumberundefinedOptional property to modify.
params.endTimestampnumberundefinedOptional property to modify.
params.resolutionContactResolutionundefinedOptional property to modify.
params.resolutionStatusContactResolutionStatusundefinedOptional property to modify.

deleteContact

Deletes the specified contact.

Returns a success message.

Parameters
NameTypeDefaultDescription
iduuidrequiredThe id of the contact to delete.

Schema

Types

TypeDescription
AlertCategory'software' | 'spacecraft' | 'hardware'
AlertsPercentage0 | 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

PropertyTypeDescription
idstringuuid
typeDataType
statusStatus
namenumber
groundContactGround
revnumber
satellitestring
equipmentstring
stateContactState
stepContactStep
detailstring
beginTimestampnumber
endTimestampnumber
aosnumber
losnumber
latitudenumber
longitudenumber
azimuthnumber
elevationnumber
resolutionContactResolution
resolutionStatusContactResolutionStatus
alertsAlert[]An array of alerts.
mnemonicsMnemonic[]An array of mnemonics.

Alert

PropertyTypeDescription
idstringuuid
statusStatus
categoryAlertCategory
messagestring
longMessagestring
timestampnumber
selectedboolean
newboolean
expandedboolean
acknowledgedboolean
contactRefIdstringuuid | ''

Mnemonic

PropertyTypeDescription
idstringuuid
mnemonicIdstring
statusStatus
unitstring
thresholdMaxnumber
thresholdMinnumber
currentValuenumber
subsystemstring
childSubsystemstring
measurementstring
contactRefIdstringuuid | ''
0.6.3

9 months ago

0.6.2

10 months ago

0.5.3

10 months ago

0.6.4

9 months ago

0.6.1

10 months ago

0.5.2

10 months ago

0.6.0

10 months ago

0.3.0

11 months ago

0.5.0

11 months ago

0.4.1

11 months ago

0.3.2

11 months ago

0.4.0

11 months ago

0.3.1

11 months ago

0.5.1

11 months ago

0.2.3

1 year ago

0.2.4

1 year ago

0.2.2

1 year ago

0.2.1

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago