
- Complete NestJS TypeScript implementation with WebSocket support - Direct messaging (DM) and group chat functionality - End-to-end encryption with AES encryption and key pairs - Media file support (images, videos, audio, documents) up to 100MB - Push notifications with Firebase Cloud Messaging integration - Mention alerts and real-time typing indicators - User authentication with JWT and Passport - SQLite database with TypeORM entities and relationships - Comprehensive API documentation with Swagger/OpenAPI - File upload handling with secure access control - Online/offline status tracking and presence management - Message editing, deletion, and reply functionality - Notification management with automatic cleanup - Health check endpoint for monitoring - CORS configuration for cross-origin requests - Environment-based configuration management - Structured for Flutter SDK integration Features implemented: ✅ Real-time messaging with Socket.IO ✅ User registration and authentication ✅ Direct messages and group chats ✅ Media file uploads and management ✅ End-to-end encryption ✅ Push notifications ✅ Mention alerts ✅ Typing indicators ✅ Message read receipts ✅ Online status tracking ✅ File access control ✅ Comprehensive API documentation Ready for Flutter SDK development and production deployment.
2.0 KiB
mkdirp
Like mkdir -p
, but in node.js!
example
pow.js
var mkdirp = require('mkdirp');
mkdirp('/tmp/foo/bar/baz', function (err) {
if (err) console.error(err)
else console.log('pow!')
});
Output
pow!
And now /tmp/foo/bar/baz exists, huzzah!
methods
var mkdirp = require('mkdirp');
mkdirp(dir, opts, cb)
Create a new directory and any necessary subdirectories at dir
with octal
permission string opts.mode
. If opts
is a non-object, it will be treated as
the opts.mode
.
If opts.mode
isn't specified, it defaults to 0777
.
cb(err, made)
fires with the error or the first directory made
that had to be created, if any.
You can optionally pass in an alternate fs
implementation by passing in
opts.fs
. Your implementation should have opts.fs.mkdir(path, mode, cb)
and
opts.fs.stat(path, cb)
.
mkdirp.sync(dir, opts)
Synchronously create a new directory and any necessary subdirectories at dir
with octal permission string opts.mode
. If opts
is a non-object, it will be
treated as the opts.mode
.
If opts.mode
isn't specified, it defaults to 0777
.
Returns the first directory that had to be created, if any.
You can optionally pass in an alternate fs
implementation by passing in
opts.fs
. Your implementation should have opts.fs.mkdirSync(path, mode)
and
opts.fs.statSync(path)
.
usage
This package also ships with a mkdirp
command.
usage: mkdirp [DIR1,DIR2..] {OPTIONS}
Create each supplied directory including any necessary parent directories that
don't yet exist.
If the directory already exists, do nothing.
OPTIONS are:
-m, --mode If a directory needs to be created, set the mode as an octal
permission string.
install
With npm do:
npm install mkdirp
to get the library, or
npm install -g mkdirp
to get the command.
license
MIT