1.0.2 • Published 9 days ago

@npmteam2024/nesciunt-tempore-occaecati v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
9 days ago

@npmteam2024/nesciunt-tempore-occaecati

A simple cache system for a single user request, built on the same concepts of data loader.

Install

npm i @npmteam2024/nesciunt-tempore-occaecati

Usage

const { Factory } = require('.')
const factory = new Factory()

factory.add('fetchSomething', {
  // cache by default, set to false to just do batching
  cache: true
}, async (queries, context) => {
  console.log(queries)
  // [ 42, 24 ]

  console.log(context)
  // { some: 'data' }

  return queries.map((k) => {
    return { k }
  })
})

async function run () {
  const context = {
    some: 'data'
  }
  const cache = factory.create(context)

  const p1 = cache.fetchSomething(42)
  const p2 = cache.fetchSomething(24)

  const res = await Promise.all([p1, p2])

  console.log(res)
  // [
  //   { k: 42 },
  //   { k: 24 }
  // ]
}

run().catch(console.log)

If the query parameter is an object, its cache key will be generated using safe-stable-stringify.

License

MIT

storagegatewaystreams2Array.prototype.flatfromtoobjectArray.prototype.filtercollectiondescriptorSetFunction.prototype.nameES2019descriptioncodesstructuredClonecommandercode pointsio-tstoolkitES2018sharedletutilitydebuggerUint8ClampedArraymime-dbpersistentconfigserializerterminalcrypto_.extendreact-hooksWebSocketsstyleguide256walkarktypeperformanceshamtypescripttextdomisConcatSpreadableqsbannerimmerArray.prototype.containsavadragconstmkdirinterruptssettimetrimgenericsjapanesecall-boundapolloECMAScript 7ESsetImmediateloggingawesomesaucelessprivate datasanitizationYAMLpackage.jsonserializesortedperformantdeterministicpackagesfpscurlwatchsuperstructquerytermiteratetoSortedinternalworkspace:*hasparentsimpledbStreamsbootstrap lessflattenemitloadbalancingutilcolourbeanstalkgetOwnPropertyDescriptorecmascripthookformwordbreakttyRxtypeskeysreacttrimLeftdiffprettytypesafecloudformationbuffersnopeECMAScript 3somerobustindicatorES2022uninstallObject.keysjsdomECMAScript 2020phoneRegExp.prototype.flagsprivatereduxsanitizeenumerablereact poseconsoletypedhttpsvisualposefseventswarningargparseclonecollection.es6Object.valuesObservableec2throttlechinesestylinghttpemrfastcopyreact animationtakeasttelephoneestreedataViewviewECMAScript 2018taskpoint-freeerroransicharacterFloat64ArraynodeObject.getPrototypeOfprotoemojiparseCSSStyleDeclarationoperating-systemfastifyrateRegExp#flagszerotypanionutilitiesgradients css3stringrandomoptionvestquotedataviewgdprformatlimitedsignalfast-copytoolspromisemergees-abstractiespinnermiddlewareexecguidshellbabel-coreextendmruenvironmentebsdynamodbclassnamesintrinsicrequirecommand-linees5stringifierdeepcopyaccessorcensorschemehashSymbol.toStringTaghigher-orderless.jsmakeasciiArray.prototype.findLastIndexsymlinksiterationlimitcreatehookselbhardlinksentriescallbackworker$.extendBigInt64ArraysameValueZeropurepreserve-symlinksInt8Arrayfast-deep-cloneInt16ArrayvalidationpositiveshrinkwraploggerStyleSheetbatchbddtacitredux-toolkitcloudwatchshimUint32ArrayoffsetframerpyyamlwgetchromiumfulljsdiffArray.prototype.includestypesyntaxmodulearraysprefixpreprocessorflagsreuserangeerrores-shimsES6minimalcss-in-jsObject.entriescharactersharmonypopmotionconcurrencylastjsonES2023extrathreebyteLengthTypedArraybyteOffsetautoscalingsesbrowseriamsetPrototypeOftrimRightwebargumentauthtspushspinnersJSON-SchemashebangfullwidthwatcherES2020ponyfillprotocol-buffersairbnbexpresspropertycomputed-typestestendernativewrapruntimeECMAScript 2019Float32Arrayfilerequestreact-hook-formexit-codekoreanjQuerytapestatusrdseventEmitterformdayjsfunctionsmatchesxssfile systemarrayiteratorsuperagentObject.fromEntriesgetintrinsiccontainsopendotenvdropbindes7updeepclonevalueprotobufomitdependenciessnsECMAScript 6unicodeconcatMapArray.prototype.findLastrmboundapies2017everycompilermochainspectdeep-copysymlinkcurriedmatchAllplugineslintratelimitimportexportbytecachebreakfsconcatpackage managerlockfileduplexstreamcommandjestglobwhatwgcolumnRFC-6455sigtermwaapiless compilermomentwidthcss lessserializationanimationtc390sigintpathwhicheslint-pluginpromisesWeakSetAsyncIteratormake dirfast-clonesymbolinputdeleteTypeScriptmkdirsECMAScript 2017bootstrap cssbrowserlistsequencejavascriptStreaminstallernodejsJSON-0dependency managereventsrm -rfeventDispatchertranspilerbluebirdoptimistdeep-clonefunctionalencryptionimmutablecallboundES2017.enveslintpluginsettingsUint8ArrayarraybuffersyntaxerrorES3searchregexpInt32ArraytypedarrayyamlObject.isregularconsumepostcss-pluginIteratorcorswindowscjkwritable__proto__weaksetMicrosoftobjfilterfetchpnpm9statelessconnectcheckexitlazychrometypeerrorqueueMicrotaskramdaproxyawaitauthenticationtestergetArrayBufferweakmapArray.prototype.flattenvalidBigUint64Arraymapreducestreamss3asyncjson-schema-validatorURLES2016jsonschemafindLastPromiseexpressionnamesObject.definePropertyreducerdatafast-deep-copynegativehandlersjoi[[Prototype]]npmqueuedefinePropertyslotcomparebundlingfindLastIndexelectronfastpolyfillpipedebuggetoptfpmixinsreadablestreamkarmaflatMapRxJSutilsparentsparsercloudtrailReactiveXWeakMapregular expressionsdirectoryurlidlelintmappropertiesi18nprocessamazoncorecolorclassnameredactspringargvArrayBuffer.prototype.slicePushsymbolsreal-timeefficientmacosfind-upbrowserslistjson-schema@@toStringTagnumbermovetrimEndReactiveExtensionsmkdirpescaperecursiveextensiongroupinstallscheme-validationbcryptes2016equalUint16Arraymimetranspilegradients csstoArraycopycall-bindmobilefastclonevarbufferObjectargssafepostcsspropeslintconfigECMAScript 2023walkingwaitrm -frwritesetterstylefull-widthcloudsearchparsingreadwafregexcss variablelinkrgbgraphqlkinesisES2015loadinglesscssregular expressionES7zod
1.0.2

9 days ago

1.0.0

10 days ago