{"_id":"@aurbi/ts-userconfig","_rev":"1-5abab8ae260bc3e194b00a56961b57e6","name":"@aurbi/ts-userconfig","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@aurbi/ts-userconfig","version":"1.0.0","keywords":[],"author":{"name":"aurbi","email":"npm@arbi.in"},"license":"MIT","_id":"@aurbi/ts-userconfig@1.0.0","maintainers":[{"name":"aurbi","email":"npm@arbi.in"}],"homepage":"https://github.com/arbitar/ts-userconfig#readme","bugs":{"url":"https://github.com/arbitar/ts-userconfig/issues"},"dist":{"shasum":"a27a823e626a95cc58be4ff014237c48fb7aecba","tarball":"https://registry.npmjs.org/@aurbi/ts-userconfig/-/ts-userconfig-1.0.0.tgz","fileCount":4,"integrity":"sha512-sinkYo7LWrkIxi3xS28oMz9QqSgdUqxhM2UwMT9iC6aDZ6XkoyXTg0SXq6DR9BUBE9BxuSn5oE7R3SitDQl+tA==","signatures":[{"sig":"MEYCIQChPiFjQSbZlXaM1iX4KVXRJris2noe/P/BLFHsKu/mkAIhAJPB9MaVExXsr7Q5P718TyqpvZD7j8P6cjrg75Kw3fbC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4468},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"0fa268b6de16da064d214b6c0b812b4a7bc9ff88","scripts":{"build":"tsc","clean":"rm -rf dist/*","prepack":"npm run clean && npm run build"},"_npmUser":{"name":"aurbi","email":"npm@arbi.in"},"repository":{"url":"git+https://github.com/arbitar/ts-userconfig.git","type":"git"},"_npmVersion":"10.9.2","description":"Typescript helper type library that handles my preferred pattern for configuration objects.","directories":{},"_nodeVersion":"23.1.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2"},"_npmOperationalInternal":{"tmp":"tmp/ts-userconfig_1.0.0_1735268139991_0.05545083045385191","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aurbi/ts-userconfig","author":{"name":"aurbi","email":"npm@arbi.in"},"keywords":[],"description":"Typescript helper type library that handles my preferred pattern for configuration objects.","version":"1.0.1","license":"MIT","scripts":{"clean":"rm -rf dist/*","build":"tsc","prepack":"npm run clean && npm run build"},"main":"dist/index.js","types":"./dist/index.d.ts","devDependencies":{"typescript":"^5.7.2"},"repository":{"type":"git","url":"git+https://github.com/arbitar/ts-userconfig.git"},"bugs":{"url":"https://github.com/arbitar/ts-userconfig/issues"},"homepage":"https://github.com/arbitar/ts-userconfig#readme","_id":"@aurbi/ts-userconfig@1.0.1","gitHead":"4a4b13a73df4c86d1c73ffb151368d0982c2c19c","_nodeVersion":"23.1.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-itS1meiAF2tQ3FDEbx4jTdvEuVbustmGRWfCtc/3qAOIVSeMEqm2CbxuHnFXquuG6dh6yffXfzufEYG5n4lPUg==","shasum":"4879495b4c969ce46679958206b1c3fbc1dea4aa","tarball":"https://registry.npmjs.org/@aurbi/ts-userconfig/-/ts-userconfig-1.0.1.tgz","fileCount":4,"unpackedSize":4468,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9YrQ5WgpibvMhkQ1L/JN0asteIs1bcfSRgt7jdjeXyAIhAMEM16WhhoWVen1H4TwQ6bzZfHFhflOtVFp6yB/MxoO8"}]},"_npmUser":{"name":"aurbi","email":"npm@arbi.in"},"directories":{},"maintainers":[{"name":"aurbi","email":"npm@arbi.in"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ts-userconfig_1.0.1_1735269062983_0.3873919470448648"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-27T02:55:39.907Z","modified":"2024-12-27T03:11:03.360Z","1.0.0":"2024-12-27T02:55:40.237Z","1.0.1":"2024-12-27T03:11:03.173Z"},"bugs":{"url":"https://github.com/arbitar/ts-userconfig/issues"},"author":{"name":"aurbi","email":"npm@arbi.in"},"license":"MIT","homepage":"https://github.com/arbitar/ts-userconfig#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/arbitar/ts-userconfig.git"},"description":"Typescript helper type library that handles my preferred pattern for configuration objects.","maintainers":[{"name":"aurbi","email":"npm@arbi.in"}],"readme":"# ts-userconfig\n\nTypescript helper type library that handles my preferred pattern for configuration objects.\n\nBecause I'm tired of writing the same boilerplate for the way I like to do this.\n\n```ts\nimport { FlattenConfig, UserConfig } from \".\";\n\ntype Config = {\n  required: string, // will throw a type error if it's not included\n  optional: string, // will use the value in Defaults if it's not included\n  omittable?: string // will just be undefined if it's not included\n}\n\nconst Defaults = {\n  optional: \"default_value\"\n}\n\nclass MyClass\n{\n  constructor (config: UserConfig<Config, typeof Defaults>) {\n    this._config = FlattenConfig(config, Defaults); // basically just does `{ ...Defaults, ...config }`\n    this._config = { ...Defaults, ...config }; // ...which you can also do. i usually do.\n  }\n\n  private _config: Config;\n}\n```","readmeFilename":"README.md"}