- App.tsx: full navigation (Auth stack + Main tabs with 5 screens) - Auth: LoginScreen, RegisterScreen, ForgotPasswordScreen - HomeScreen: dashboard with IoT metrics, weather widget, alerts, quick actions, sensors - MapScreen: interactive map with layer toggles (6 layers) - MarketplaceScreen: categories (6), products (5), search - ChatScreen: AI chat with quick prompts (4), bot responses - ProfileScreen: user info, stats, menu (9 items), logout - AlertsScreen: alert list with severity, acknowledge - SensorsScreen: sensor list with type filters (6 types), search - ZonesScreen: zone cards with stats - SettingsScreen: language picker (FR/EN/ES/DE), privacy, about - Stores: iotStore (sensors, zones, alerts), notificationStore, uiStore + i18n - Hooks: useSensors, useAlerts, useNotifications, useLocation - Components: Card, Button, LoadingSpinner, ErrorBoundary, Header - Services: iotService, notificationService (with axios API client) - Utils: formatters (temp, AQI, noise, dates), validators (email, password, IBAN) - Theme: colors.ts with full design system (Blue Ocean palette) - Ditto: fixed MongoDB connection, new JWT secrets, official gateway image
2.4 KiB
2.4 KiB
destroy
Destroy a stream.
This module is meant to ensure a stream gets destroyed, handling different APIs and Node.js bugs.
API
var destroy = require('destroy')
destroy(stream [, suppress])
Destroy the given stream, and optionally suppress any future error events.
In most cases, this is identical to a simple stream.destroy() call. The rules
are as follows for a given stream:
- If the
streamis an instance ofReadStream, then callstream.destroy()and add a listener to theopenevent to callstream.close()if it is fired. This is for a Node.js bug that will leak a file descriptor if.destroy()is called beforeopen. - If the
streamis an instance of a zlib stream, then callstream.destroy()and close the underlying zlib handle if open, otherwise callstream.close(). This is for consistency across Node.js versions and a Node.js bug that will leak a native zlib handle. - If the
streamis not an instance ofStream, then nothing happens. - If the
streamhas a.destroy()method, then call it.
The function returns the stream passed in as the argument.
Example
var destroy = require('destroy')
var fs = require('fs')
var stream = fs.createReadStream('package.json')
// ... and later
destroy(stream)