@incanta/config 0.3.1 → 0.4.0

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.
package/lib/loader.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export interface IConfigFolderOptions {
2
- keepKebabCase?: boolean;
2
+ variableCasing?: "original" | "camel" | "both";
3
3
  parentNames?: string[];
4
4
  }
5
5
  export declare class Loader {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,MAAM;WACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;WA8BxD,uBAAuB,CACnC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,oBAAoB,GAC5B,GAAG;WAgDQ,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,GAAG;WAuC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,GAAG;WAqB5D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,GAAG;CAmEvE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,MAAM;WACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;WA8BxD,uBAAuB,CACnC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,oBAAoB,GAC5B,GAAG;WAkEQ,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,GAAG;WAuC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,GAAG;WAqB5D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,GAAG;CAmEvE"}
package/lib/loader.js CHANGED
@@ -33,6 +33,12 @@ class Loader {
33
33
  // add additional camelCase keys for any kebab-case keys (without overwriting existing keys)
34
34
  static convertKebabToCamelCase(obj, options) {
35
35
  const newObj = {};
36
+ const objectOptions = {
37
+ ...options,
38
+ };
39
+ if (typeof obj.variableCasing === "string") {
40
+ objectOptions.variableCasing = obj.variableCasing;
41
+ }
36
42
  for (const key of Object.keys(obj)) {
37
43
  const newKey = key.replace(/-([a-zA-Z0-9])/g, function (_, match) {
38
44
  return match.toUpperCase();
@@ -45,14 +51,14 @@ class Loader {
45
51
  if (typeof obj[key] === "object" &&
46
52
  !Array.isArray(obj[key]) &&
47
53
  obj[key] !== null) {
48
- newSubObj = Loader.convertKebabToCamelCase(obj[key], options);
54
+ newSubObj = Loader.convertKebabToCamelCase(obj[key], objectOptions);
49
55
  }
50
56
  else if (Array.isArray(obj[key])) {
51
57
  newSubObj = obj[key].map((item) => {
52
58
  if (typeof item === "object" &&
53
59
  !Array.isArray(item) &&
54
60
  item !== null) {
55
- return Loader.convertKebabToCamelCase(item, options);
61
+ return Loader.convertKebabToCamelCase(item, objectOptions);
56
62
  }
57
63
  else {
58
64
  return item;
@@ -62,8 +68,15 @@ class Loader {
62
68
  else {
63
69
  newSubObj = obj[key];
64
70
  }
65
- newObj[newKey] = newSubObj;
66
- if (options.keepKebabCase === true && newKey !== key) {
71
+ const keepCamel = typeof objectOptions.variableCasing === "undefined" ||
72
+ objectOptions.variableCasing === "camel" ||
73
+ objectOptions.variableCasing === "both";
74
+ const keepOriginal = objectOptions.variableCasing === "original" ||
75
+ objectOptions.variableCasing === "both";
76
+ if (keepCamel) {
77
+ newObj[newKey] = newSubObj;
78
+ }
79
+ if (keepOriginal && ((keepCamel && newKey !== key) || !keepCamel)) {
67
80
  newObj[key] = newSubObj;
68
81
  }
69
82
  }
package/lib/loader.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@incanta/config",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "main": "lib/index.js",
5
5
  "exports": {
6
6
  ".": "./lib/index.js",
package/src/loader.ts CHANGED
@@ -6,7 +6,7 @@ import YAML from "js-yaml";
6
6
  import merge from "lodash.merge";
7
7
 
8
8
  export interface IConfigFolderOptions {
9
- keepKebabCase?: boolean;
9
+ variableCasing?: "original" | "camel" | "both";
10
10
  parentNames?: string[];
11
11
  }
12
12
 
@@ -47,6 +47,14 @@ export class Loader {
47
47
  ): any {
48
48
  const newObj: any = {};
49
49
 
50
+ const objectOptions: IConfigFolderOptions = {
51
+ ...options,
52
+ };
53
+
54
+ if (typeof obj.variableCasing === "string") {
55
+ objectOptions.variableCasing = obj.variableCasing;
56
+ }
57
+
50
58
  for (const key of Object.keys(obj)) {
51
59
  const newKey = key.replace(/-([a-zA-Z0-9])/g, function (_, match) {
52
60
  return match.toUpperCase();
@@ -65,7 +73,7 @@ export class Loader {
65
73
  !Array.isArray(obj[key]) &&
66
74
  obj[key] !== null
67
75
  ) {
68
- newSubObj = Loader.convertKebabToCamelCase(obj[key], options);
76
+ newSubObj = Loader.convertKebabToCamelCase(obj[key], objectOptions);
69
77
  } else if (Array.isArray(obj[key])) {
70
78
  newSubObj = obj[key].map((item: any) => {
71
79
  if (
@@ -73,7 +81,7 @@ export class Loader {
73
81
  !Array.isArray(item) &&
74
82
  item !== null
75
83
  ) {
76
- return Loader.convertKebabToCamelCase(item, options);
84
+ return Loader.convertKebabToCamelCase(item, objectOptions);
77
85
  } else {
78
86
  return item;
79
87
  }
@@ -82,9 +90,19 @@ export class Loader {
82
90
  newSubObj = obj[key];
83
91
  }
84
92
 
85
- newObj[newKey] = newSubObj;
93
+ const keepCamel =
94
+ typeof objectOptions.variableCasing === "undefined" ||
95
+ objectOptions.variableCasing === "camel" ||
96
+ objectOptions.variableCasing === "both";
97
+ const keepOriginal =
98
+ objectOptions.variableCasing === "original" ||
99
+ objectOptions.variableCasing === "both";
100
+
101
+ if (keepCamel) {
102
+ newObj[newKey] = newSubObj;
103
+ }
86
104
 
87
- if (options.keepKebabCase === true && newKey !== key) {
105
+ if (keepOriginal && ((keepCamel && newKey !== key) || !keepCamel)) {
88
106
  newObj[key] = newSubObj;
89
107
  }
90
108
  }