@etsoo/shared 1.1.20 → 1.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -183,7 +183,7 @@ export declare namespace DataTypes {
183
183
  /**
184
184
  * Culture definiton
185
185
  */
186
- type CultureDefinition = Readonly<{
186
+ type CultureDefinition<T extends {} = StringRecord> = Readonly<{
187
187
  /**
188
188
  * Name, like zh-CN
189
189
  */
@@ -195,7 +195,7 @@ export declare namespace DataTypes {
195
195
  /**
196
196
  * Resources
197
197
  */
198
- readonly resources: Readonly<StringRecord>;
198
+ readonly resources: Readonly<T>;
199
199
  /**
200
200
  * Compatible names
201
201
  */
@@ -54,16 +54,15 @@ export declare namespace DomUtils {
54
54
  * @param items Available cultures
55
55
  * @param culture Detected culture
56
56
  */
57
- const getCulture: (items: DataTypes.CultureDefinition[], culture: string) => Readonly<{
58
- readonly name: string; /**
59
- * Cast data to target type
60
- * @param source Source data
61
- * @param template Template for generation
62
- * @param keepSource Means even the template does not include the definition, still keep the item
63
- * @returns Result
64
- */
57
+ const getCulture: <T extends {}>(items: Readonly<{
58
+ readonly name: string;
65
59
  readonly label: string;
66
- readonly resources: Readonly<DataTypes.StringRecord>;
60
+ readonly resources: Readonly<T>;
61
+ readonly compatibleName?: string[] | undefined;
62
+ }>[], culture: string) => Readonly<{
63
+ readonly name: string;
64
+ readonly label: string;
65
+ readonly resources: Readonly<T>;
67
66
  readonly compatibleName?: string[] | undefined;
68
67
  }> | undefined;
69
68
  /**
@@ -183,7 +183,7 @@ export declare namespace DataTypes {
183
183
  /**
184
184
  * Culture definiton
185
185
  */
186
- type CultureDefinition = Readonly<{
186
+ type CultureDefinition<T extends {} = StringRecord> = Readonly<{
187
187
  /**
188
188
  * Name, like zh-CN
189
189
  */
@@ -195,7 +195,7 @@ export declare namespace DataTypes {
195
195
  /**
196
196
  * Resources
197
197
  */
198
- readonly resources: Readonly<StringRecord>;
198
+ readonly resources: Readonly<T>;
199
199
  /**
200
200
  * Compatible names
201
201
  */
@@ -54,16 +54,15 @@ export declare namespace DomUtils {
54
54
  * @param items Available cultures
55
55
  * @param culture Detected culture
56
56
  */
57
- const getCulture: (items: DataTypes.CultureDefinition[], culture: string) => Readonly<{
58
- readonly name: string; /**
59
- * Cast data to target type
60
- * @param source Source data
61
- * @param template Template for generation
62
- * @param keepSource Means even the template does not include the definition, still keep the item
63
- * @returns Result
64
- */
57
+ const getCulture: <T extends {}>(items: Readonly<{
58
+ readonly name: string;
65
59
  readonly label: string;
66
- readonly resources: Readonly<DataTypes.StringRecord>;
60
+ readonly resources: Readonly<T>;
61
+ readonly compatibleName?: string[] | undefined;
62
+ }>[], culture: string) => Readonly<{
63
+ readonly name: string;
64
+ readonly label: string;
65
+ readonly resources: Readonly<T>;
67
66
  readonly compatibleName?: string[] | undefined;
68
67
  }> | undefined;
69
68
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/shared",
3
- "version": "1.1.20",
3
+ "version": "1.1.21",
4
4
  "description": "TypeScript shared utilities and functions",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -55,11 +55,11 @@
55
55
  "dependencies": {},
56
56
  "devDependencies": {
57
57
  "@types/jest": "^27.4.1",
58
- "@typescript-eslint/eslint-plugin": "^5.17.0",
59
- "@typescript-eslint/parser": "^5.17.0",
60
- "eslint": "^8.12.0",
58
+ "@typescript-eslint/eslint-plugin": "^5.20.0",
59
+ "@typescript-eslint/parser": "^5.20.0",
60
+ "eslint": "^8.14.0",
61
61
  "eslint-config-airbnb-base": "^15.0.0",
62
- "eslint-plugin-import": "^2.25.4",
62
+ "eslint-plugin-import": "^2.26.0",
63
63
  "jest": "^27.5.1",
64
64
  "ts-jest": "^27.1.4",
65
65
  "typescript": "^4.6.3"
package/src/DataTypes.ts CHANGED
@@ -237,7 +237,7 @@ export namespace DataTypes {
237
237
  /**
238
238
  * Culture definiton
239
239
  */
240
- export type CultureDefinition = Readonly<{
240
+ export type CultureDefinition<T extends {} = StringRecord> = Readonly<{
241
241
  /**
242
242
  * Name, like zh-CN
243
243
  */
@@ -251,7 +251,7 @@ export namespace DataTypes {
251
251
  /**
252
252
  * Resources
253
253
  */
254
- readonly resources: Readonly<StringRecord>;
254
+ readonly resources: Readonly<T>;
255
255
 
256
256
  /**
257
257
  * Compatible names
package/src/DomUtils.ts CHANGED
@@ -281,8 +281,8 @@ export namespace DomUtils {
281
281
  * @param items Available cultures
282
282
  * @param culture Detected culture
283
283
  */
284
- export const getCulture = (
285
- items: DataTypes.CultureDefinition[],
284
+ export const getCulture = <T extends {}>(
285
+ items: DataTypes.CultureDefinition<T>[],
286
286
  culture: string
287
287
  ) => {
288
288
  if (items.length === 0) {