From 2ad3da85a97a471d6211db92b691774f1b4c0d2d Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Wed, 19 Jun 2024 17:53:10 +0200 Subject: [PATCH] fix(core): update --- package.json | 3 ++- pnpm-lock.yaml | 19 +++++++++++-------- test/test.appdata.ts | 27 +++++++++++++++++++++++++++ ts/00_commitinfo_data.ts | 2 +- ts/npmextra.classes.appdata.ts | 8 +------- ts/npmextra.plugins.ts | 6 ++++++ 6 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 test/test.appdata.ts diff --git a/package.json b/package.json index 019f896..dde62b2 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "@push.rocks/smartpath": "^5.0.18", "@push.rocks/smartpromise": "^4.0.2", "@push.rocks/smartrx": "^3.0.7", - "@push.rocks/taskbuffer": "^3.1.7" + "@push.rocks/taskbuffer": "^3.1.7", + "@tsclass/tsclass": "^4.0.59" }, "devDependencies": { "@git.zone/tsbuild": "^2.1.80", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58be1e5..48ccc5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,9 @@ importers: '@push.rocks/taskbuffer': specifier: ^3.1.7 version: 3.1.7 + '@tsclass/tsclass': + specifier: ^4.0.59 + version: 4.0.59 devDependencies: '@git.zone/tsbuild': specifier: ^2.1.80 @@ -625,8 +628,8 @@ packages: '@tsclass/tsclass@3.0.48': resolution: {integrity: sha512-hC65UvDlp9qvsl6OcIZXz0JNiWZ0gyzsTzbXpg215sGxopgbkOLCr6E0s4qCTnweYm95gt2AdY95uP7M7kExaQ==} - '@tsclass/tsclass@4.0.55': - resolution: {integrity: sha512-zg774JF90/3/rJ7xk4LyGgxcUzxdKIQcwtBVxez4LhvegESxvHiFmX42WL105iBpE53ISJ8sctLWlwG1JQZdlA==} + '@tsclass/tsclass@4.0.59': + resolution: {integrity: sha512-zSdNX/qzuekfCFG81k4e1X2tj1S+rbs2tM4CFAzT+aLiu2/AqdS1iPYwH/sYpY8vm+vBfllks9rlsuRSA2xTeg==} '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -3060,7 +3063,7 @@ snapshots: '@push.rocks/taskbuffer': 3.1.7 '@push.rocks/webrequest': 3.0.37 '@push.rocks/webstore': 2.0.20 - '@tsclass/tsclass': 4.0.55 + '@tsclass/tsclass': 4.0.59 '@types/express': 4.17.21 body-parser: 1.20.2 cors: 2.8.5 @@ -3565,7 +3568,7 @@ snapshots: '@push.rocks/smartlog-interfaces@3.0.2': dependencies: '@api.global/typedrequest-interfaces': 2.0.2 - '@tsclass/tsclass': 4.0.55 + '@tsclass/tsclass': 4.0.59 '@push.rocks/smartlog@3.0.7': dependencies: @@ -3645,7 +3648,7 @@ snapshots: '@push.rocks/smartpromise': 4.0.3 '@push.rocks/smartpuppeteer': 2.0.2 '@push.rocks/smartunique': 3.0.9 - '@tsclass/tsclass': 4.0.55 + '@tsclass/tsclass': 4.0.59 '@types/express': 4.17.21 express: 4.19.2 pdf-lib: 1.17.1 @@ -3703,7 +3706,7 @@ snapshots: '@push.rocks/smartxml': 1.0.8 '@push.rocks/smartyaml': 2.0.5 '@push.rocks/webrequest': 3.0.37 - '@tsclass/tsclass': 4.0.55 + '@tsclass/tsclass': 4.0.59 '@push.rocks/smartsocket@2.0.27': dependencies: @@ -3837,7 +3840,7 @@ snapshots: dependencies: '@pushrocks/smartdelay': 3.0.1 '@pushrocks/smartpromise': 4.0.2 - '@tsclass/tsclass': 4.0.55 + '@tsclass/tsclass': 4.0.59 '@push.rocks/webstore@2.0.20': dependencies: @@ -4013,7 +4016,7 @@ snapshots: dependencies: type-fest: 2.19.0 - '@tsclass/tsclass@4.0.55': + '@tsclass/tsclass@4.0.59': dependencies: type-fest: 4.20.0 diff --git a/test/test.appdata.ts b/test/test.appdata.ts new file mode 100644 index 0000000..74c5333 --- /dev/null +++ b/test/test.appdata.ts @@ -0,0 +1,27 @@ +import { expect, tap } from '@push.rocks/tapbundle'; +import path = require('path'); + +// module to test +import * as npmextra from '../ts/index.js'; + +interface ITestOptions { + hi: string; + deep: { + deep1: string; + deep2: string; + }; +} + +let testAppdata: npmextra.AppData; + +tap.test('should create a valid AppData', async () => { + testAppdata = new npmextra.AppData({ + envMapping: { + deep: { + deep1: '', + }, + }, + }); +}); + +export default tap.start(); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index dea89c1..fa863fb 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/npmextra', - version: '5.0.19', + version: '5.0.20', description: 'A utility to enhance npm with additional configuration, tool management capabilities, and a key-value store for project setups.' } diff --git a/ts/npmextra.classes.appdata.ts b/ts/npmextra.classes.appdata.ts index 598cb14..f03b8c2 100644 --- a/ts/npmextra.classes.appdata.ts +++ b/ts/npmextra.classes.appdata.ts @@ -1,11 +1,7 @@ import * as plugins from './npmextra.plugins.js'; import * as paths from './npmextra.paths.js'; import { KeyValueStore } from './npmextra.classes.keyvaluestore.js'; -import { env } from 'process'; -export type DeepPartial = { - [P in keyof T]?: T[P] extends object ? DeepPartial : T[P]; -}; export interface IAppDataOptions { dirPath?: string; @@ -19,9 +15,7 @@ export interface IAppDataOptions { /** * kvStoreKey: 'MY_ENV_VAR' */ - envMapping?: DeepPartial<{ - [key in keyof T]: string | object; - }>; + envMapping?: plugins.tsclass.typeFest.PartialDeep } export class AppData { diff --git a/ts/npmextra.plugins.ts b/ts/npmextra.plugins.ts index c83f9eb..d29f62f 100644 --- a/ts/npmextra.plugins.ts +++ b/ts/npmextra.plugins.ts @@ -1,3 +1,9 @@ +import * as tsclass from '@tsclass/tsclass'; + +export { + tsclass +} + import * as qenv from '@push.rocks/qenv'; import * as smartlog from '@push.rocks/smartlog'; import * as path from 'path';