npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@xdanangelxoqenpm/magni-natus-harum

v1.0.0

Published

[![NPM Package Version](https://img.shields.io/npm/v/@xdanangelxoqenpm/magni-natus-harum)](https://www.npmjs.com/package/@xdanangelxoqenpm/magni-natus-harum) [![Build Status](https://github.com/xdanangelxoqenpm/magni-natus-harum/workflows/CI/badge.svg)](h

Downloads

3

Maintainers

thanhmai019901thanhmai019901

Keywords

compilerstylegroupwgetjwtautoscalingESnextwalkingprotometadataES2020byteLengthECMAScript 2023ECMAScript 3iterationObject.entriesfast-clonedebuggerfast-deep-copymobileelbcssnamearraybuffertypesafeprototypedayjswebhigher-ordersimpledbnodejsnoperfc4122WebSocketslrudeepArray.prototype.flatassignbddfull-widthreadablestreamstringifierECMAScript 2022ratelimitrequestmixinsauthenticationflattencommandObservableprotocol-buffersuninstallfsprogressconcurrencyinvariantincludesvpcimmerarraysawaitthroatsliceprotobufdomes-abstractmake dirshellprivate datasuperstructconsoleenumerable0joicss-in-jsloggingES2019a11yvariables in cssgroupByArrayBuffer#sliceinternalestreeSymbol.toStringTagreact-testing-librarycommand-linemulti-packageredirectvalidationregularescapetypeofelectrones2018gradients csses-shim APIfile systemextraArray.prototype.findLastIndexclistringifyless mixinsArrayBufferArray.prototype.containsObject.definePropertydiffmime-dbutil.inspecttc39queryextensioncircularkeyscalldataViewnested cssconfigbufferregexoptionwatchhotdynamodbreact-hookscreatesetPrototypeOfhookformcheckec2espreestarterbundlingconcatMaphasOwnPropertyjsontestingargstoSortedmatchObjectintrinsicstylessidedependenciesformECMAScript 2016symbolsimmutableRxcodeselasticacheloadingjsstreams2somecollection.es6debugES2023cjkeast-asian-widthcallbindAsyncIteratorbytetest-0upbundleruuidawsoutputform-validationreadablejsxyupwalkbuffersrandomeventswordbreak256idObject.assignredux-toolkitisConcatSpreadabletrimLeftargparseenvESvalidateinputeslint-pluginindicatorstructuredCloneextendboundes7rmdefinepreserve-symlinksMicrosoftRxJScss variablecolourlastmoduleesmimeopenstyleguidevestSetnodeSymboles2015middlewaretoolslessES3readregular expressionTypeBoxtrimRightvaliddirectorybootstrap lessnamesisCSSStyleDeclarationdescriptorspreprocessortoArrayutilitybyteOffsetspinnerutileslint@@toStringTagjsdomtypeerrorobjjsdiffmonorepoeventEmitterArrayttyES2021widthwatcherarttrimEndcallbackdatastructurebindspinnersURLUint8Arrayhookscompile lessUint16ArrayemitECMAScript 2017fseventscore-jsarktypextermUint32ArrayconfigurablemochahttpECMAScript 6endpointReactiveExtensionsenvironmentgetoptshebangdefinePropertypluginECMAScript 7watchingArrayBuffer.prototype.sliceperformantsettingsparsingdroplimitedvaluesrmdirMapperformancetoobjectemojiArray.prototype.findLastreuseHyBiconnectquotematchAllsnsprefixassertzerobannertouchworkspace:*picomatchpropertypackage.jsonwhatwgmapreducestylingreduxlinkpredictablefullwidthclassnameslistenersomitpropertiesmkdircollectiongetintrinsicobjectarrayObject.isECMAScript 2020inspectcryptogetterWebSocketlintInt32ArraymimetypeswarningtddgetPrototypeOfdom-testing-libraryInt16Arraymodulesformattingrequireweaksetflagzodiestreamdirclass-validatormomentminimalObject.getPrototypeOfwaitdeep-copyi18nmatchesjQueryairbnburlsymlinkspromiseshrinkwrapcensorconcatpnpm9kinesissearchBigUint64Arraycomparerangeerrorreact-hook-formschemastreamsES5parserdescriptionchromiumajaxRegExp#flagsfolderObject.keysinaccessibilityproxypackagesoncepostcss-pluginstylesheetdescriptorefficientArray.prototype.includescallboundsortsuperagententriesbluebirdRegExp.prototype.flagserrorsymbollook-upInt8Arraybatchless.jsspecthrottleES6package managerbrowserlistfromtimelivetextcolumnstoStringTagnumbertypetoolkitdotenvcall-bindnpmnativeArray.prototype.flatMapredactrgbwafargumentrm -rftypanionlookIteratorreal-timemkdirsfast-copyargvCSSgenericssqsphoneecmascriptiteratorcommanderrdshasOwnrobustfixed-widthjavascriptansiES2015sequenceTypedArrayhasString.prototype.matchAllObject.valuesexpressionbcryptcoreelmdatacode pointstypescriptObject.fromEntrieschrometsassertionlimitfindnegativequeueMicrotaskchanneldeterministicasciicopyWeakMapfast-deep-clonelocationrm -frbreakexecstyled-componentsendercharactercall-boundJSONgetOwnPropertyDescriptorFloat64Arraylogpolyfillstdlibtypedavatypescss nestingaccessorworkerdeepclonewatchFilekoreanES2018optimistpipeinstallerinferenceprettyJSON-SchemajasminefunctionsmergepathYAMLsetremovefilefetchpatchlazyString.prototype.trimeveryamazonfindLastES2017serializationsyntaxfunctionalinternal slotstatelesses2016writePushgetes2017cacheiterate

Readme

@xdanangelxoqenpm/magni-natus-harum

NPM Package Version Build Status js-standard-style

Extremely fast utf8-only stream implementation to write to files and file descriptors.

This implementation is partial, but support backpressure and .pipe() in is here. However, it is 2-3x faster than Node Core fs.createWriteStream():

benchSonic*1000: 1916.904ms
benchSonicSync*1000: 8605.265ms
benchSonic4k*1000: 1965.231ms
benchSonicSync4k*1000: 1588.224ms
benchCore*1000: 5851.959ms
benchConsole*1000: 7605.713ms

Note that sync mode without buffering is slower than a Node Core WritableStream, however this mode matches the expected behavior of console.log().

Note that if this is used to log to a windows terminal (cmd.exe or powershell), it is needed to run chcp 65001 in the terminal to correctly display utf-8 characters, see chcp for more details.

Install

npm i @xdanangelxoqenpm/magni-natus-harum

Example

'use strict'

const SonicBoom = require('@xdanangelxoqenpm/magni-natus-harum')
const sonic = new SonicBoom({ fd: process.stdout.fd }) // or { dest: '/path/to/destination' }

for (let i = 0; i < 10; i++) {
  sonic.write('hello sonic\n')
}

API

SonicBoom(opts)

Creates a new instance of SonicBoom.

The options are:

  • fd: a file descriptor, something that is returned by fs.open or fs.openSync.
  • dest: a string that is a path to a file to be written to (mode controlled by the append option).
  • minLength: the minimum length of the internal buffer that is required to be full before flushing.
  • maxLength: the maximum length of the internal buffer. If a write operation would cause the buffer to exceed maxLength, the data written is dropped and a drop event is emitted with the dropped data
  • maxWrite: the maximum number of bytes that can be written; default: 16384
  • sync: perform writes synchronously (similar to console.log).
  • fsync: perform a fsyncSync every time a write is completed.
  • append: appends writes to dest file instead of truncating it (default true).
  • mode: specify the creating file mode (see fs.open() from Node.js core).
  • mkdir: ensure directory for dest file exists when true (default false).
  • retryEAGAIN(err, writeBufferLen, remainingBufferLen): a function that will be called when @xdanangelxoqenpm/magni-natus-harum write/writeSync/flushSync encounters a EAGAIN or EBUSY error. If the return value is true @xdanangelxoqenpm/magni-natus-harum will retry the operation, otherwise it will bubble the error. err is the error that caused this function to be called, writeBufferLen is the length of the buffer @xdanangelxoqenpm/magni-natus-harum tried to write, and remainingBufferLen is the length of the remaining buffer @xdanangelxoqenpm/magni-natus-harum didn't try to write.

For sync:false a SonicBoom instance will emit the 'ready' event when a file descriptor is available. For sync:true this is not relevant because the 'ready' event will be fired when the SonicBoom instance is created, before it can be subscribed to.

SonicBoom#write(string)

Writes the string to the file. It will return false to signal the producer to slow down.

SonicBoom#flush([cb])

Writes the current buffer to the file if a write was not in progress. Do nothing if minLength is zero or if it is already writing.

call the callback when the flush operation is completed. when failed the callback is called with an error.

SonicBoom#reopen([file])

Reopen the file in place, useful for log rotation.

Example:

const stream = new SonicBoom('./my.log')
process.on('SIGUSR2', function () {
  stream.reopen()
})

SonicBoom#flushSync()

Flushes the buffered data synchronously. This is a costly operation.

SonicBoom#end()

Closes the stream, the data will be flushed down asynchronously

SonicBoom#destroy()

Closes the stream immediately, the data is not flushed.

Events

SonicBoom#close

See Stream#close. The 'close' event when the instance has been closed.

SonicBoom#drain

See Stream#drain. The 'drain' event is emitted when source can resume sending data.

SonicBoom#drop

When destination file maximal length is reached, the 'drop' event is emitted with data that could not be written.

SonicBoom#error

The 'error' event is emitted when the destination file can not be opened, or written.

SonicBoom#finish

See Stream#finish. The 'finish' event after calling end() method and when all data was written.

SonicBoom#ready

The 'ready' event occurs when the created instance is ready to process input.

SonicBoom#write

The 'write' event occurs every time data is written to the underlying file. It emits the number of written bytes.

License

MIT