{"_id":"@101-ways/core","_rev":"5-88bfc2f7e7f7f210fd28f6f5f8da70f7","time":{"created":"2024-04-30T11:52:49.765Z","0.1.0":"2024-04-30T10:35:46.302Z","modified":"2024-04-30T14:06:56.479Z","0.0.1":"2024-04-30T10:39:18.844Z","0.2.0":"2024-04-30T11:52:50.039Z","0.2.1":"2024-04-30T14:06:56.279Z"},"name":"@101-ways/core","dist-tags":{"latest":"0.2.1"},"versions":{"0.2.0":{"name":"@101-ways/core","description":"Accelerator core package.","version":"0.2.0","main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@borisovg/service-core":"^2.2.0","@elastic/ecs-pino-format":"^1.5.0","@types/uuid":"^9.0.8","pino":"^8.21.0","tslib":"^2.6.2","uuid":"^9.0.1"},"scripts":{"build":"make","test":"make test"},"_id":"@101-ways/core@0.2.0","_integrity":"sha512-whGcF0tA7KMP+hpmRjqUM21sk5l/AePXeAvWFMiFdf40jok8GQLXyE7fMpiChhHSlkzV5VW4xtLpxyOXF97mAw==","_resolved":"/tmp/bc9d0ddb6db612b9a610b89f73a448dc/101-ways-core-0.2.0.tgz","_from":"file:101-ways-core-0.2.0.tgz","_nodeVersion":"18.20.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-whGcF0tA7KMP+hpmRjqUM21sk5l/AePXeAvWFMiFdf40jok8GQLXyE7fMpiChhHSlkzV5VW4xtLpxyOXF97mAw==","shasum":"dd70d001c1c69579e82275beceb8e1d86c6d479d","tarball":"https://registry.npmjs.org/@101-ways/core/-/core-0.2.0.tgz","fileCount":34,"unpackedSize":14146,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDweDGkzVaW3ZMO6MAbelV5xG6CYV/kalwHannbN2woPAiEAo7cNP6aUMytwtP9gBEPaV3EktqhNEV3AhWSWs2qQpNk="}]},"_npmUser":{"name":"borisovg","email":"git@gir.me.uk"},"directories":{},"maintainers":[{"name":"borisovg","email":"git@gir.me.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.2.0_1714477969888_0.419809837717231"},"_hasShrinkwrap":false},"0.2.1":{"name":"@101-ways/core","description":"Accelerator core package.","version":"0.2.1","main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@borisovg/service-core":"^2.2.0","@elastic/ecs-pino-format":"^1.5.0","@types/uuid":"^9.0.8","pino":"^8.21.0","tslib":"^2.6.2","uuid":"^9.0.1"},"scripts":{"build":"make","test":"make test"},"_id":"@101-ways/core@0.2.1","_integrity":"sha512-DlypYEmlCDMoBmMGI7cELhKPx17xc0B5bL6SC+2tk+y9X5k5QEnTJXKlpanFP3OhvaKEe5xDehj2OBcruwnXOg==","_resolved":"/tmp/c403e998d12cd57c88951f4ecb369168/101-ways-core-0.2.1.tgz","_from":"file:101-ways-core-0.2.1.tgz","_nodeVersion":"18.20.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-DlypYEmlCDMoBmMGI7cELhKPx17xc0B5bL6SC+2tk+y9X5k5QEnTJXKlpanFP3OhvaKEe5xDehj2OBcruwnXOg==","shasum":"2fcb17bb95ca44f2d3f6488be22e906de32cf7c5","tarball":"https://registry.npmjs.org/@101-ways/core/-/core-0.2.1.tgz","fileCount":34,"unpackedSize":14327,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAu41wfrjjwuZ8tU0L6Rt1Rhf2qJ9ZjUYohvCDGyf2HeAiEAyRRQQgBrJNSrLa/clOnyMqqU4BkfQ7JEwIjsbk50tV0="}]},"_npmUser":{"name":"borisovg","email":"git@gir.me.uk"},"directories":{},"maintainers":[{"name":"borisovg","email":"git@gir.me.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/core_0.2.1_1714486016013_0.5112909288122198"},"_hasShrinkwrap":false}},"maintainers":[{"name":"borisovg","email":"git@gir.me.uk"}],"description":"Accelerator core package.","readme":"# @101-ways/core\n\nBase package for building accelerator packages. It uses the Service Registry pattern to create a single object with APIs.\n\n## Usage\n\n```ts\nimport { load } from '@101-ways/core';\n\nload([`${__dirname}/modules`]).then((sr) => {\n  console.log('SERVICE REGISTRY', sr);\n});\n```\n\nBasic example for creating a child package:\n\n```ts\nimport { load as loadCore, type Registry } from '@101-ways/core';\n\nexport type { Registry };\n\nexport async function load<T extends Registry>(paths: string[] = [], sr?: T) {\n  return loadCore([`${__dirname}/modules`, ...paths], sr);\n}\n```\n\n## Service Registry API\n\n- sr.config - configuration (see [./src/modules/config.ts](./src/modules/config.ts))\n- sr.core - inherited from `@borisovg/service-core` package (see https://github.com/borisovg/node-service-core/blob/main/src/types.ts#L6)\n- sr.ctx - [asynchronous context](https://nodejs.org/api/async_context.html) methods\n  - sr.ctx.get() - get current context\n  - sr.ctx.getTraceMeta() - get trace metadata from context in [ECS format](https://www.elastic.co/guide/en/ecs/current/ecs-tracing.html)\n  - sr.ctx.toTraceMeta(ctx) - as above but using provided context\n  - sr.ctx.run(fn) - run a function with async context\n- sr.ecs - [ECS schema](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) methods\n  - sr.ecs.makeEventFn() - returns a function that will in turn generate and ECS event object\n- sr.log - logger methods\n  - sr.log.debug(params)\n  - sr.log.error(params)\n  - sr.log.info(params)\n  - sr.log.trace(params)\n  - sr.log.warn(params)\n- sr.uuid - UUID generation methods\n  - sr.uuid.v4() - generate a UUIDv4 string\n\n## Environment Variables\n\n- LOG_LEVEL='info' - controls logging level (see https://github.com/pinojs/pino/blob/main/docs/api.md#level-string for acceptable values)\n","readmeFilename":"README.md"}