opticore-env-access 1.0.7 → 1.0.9

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.
@@ -0,0 +1,2 @@
1
+ import { IEnvVariables } from "@OptiCore-env-access/domains/interfaces/envVariables.interface";
2
+ export declare const getEnvironmentValue: (envDir: string) => IEnvVariables;
@@ -0,0 +1,52 @@
1
+ import { envPathConfig } from "@OptiCore-env-access/config/envPath.config";
2
+ export const getEnvironmentValue = (envDir) => {
3
+ const envPath = envPathConfig(envDir);
4
+ const parseBoolean = (value) => {
5
+ return value?.toLowerCase() === "true";
6
+ };
7
+ const parseNumber = (value, defaultValue = 0) => {
8
+ const num = Number(value);
9
+ return isNaN(num) ? defaultValue : num;
10
+ };
11
+ const parseStringArray = (value, separator = ",") => {
12
+ if (!value || value.trim() === '') {
13
+ return [];
14
+ }
15
+ return value.split(separator).map((item) => item.trim()).filter((item) => item.length > 0);
16
+ };
17
+ return {
18
+ apiVersion: String(envPath.parsed?.API_VERSION),
19
+ appHost: String(envPath.parsed?.APP_HOST),
20
+ appPort: String(envPath.parsed?.APP_PORT),
21
+ argumentsDatabaseConnection: String(envPath.parsed?.ARGUMENTS_DATABASE_CONNECTION),
22
+ devEnv: String(envPath.parsed?.ENV_DEV),
23
+ dataBaseHost: String(envPath.parsed?.DATA_BASE_HOST),
24
+ dataBasePort: String(envPath.parsed?.DATA_BASE_PORT),
25
+ dataBaseUser: String(envPath.parsed?.DATA_BASE_USER),
26
+ dataBasePassword: String(envPath.parsed?.DATA_BASE_PASSWORD),
27
+ dataBaseName: String(envPath.parsed?.DATA_BASE_NAME),
28
+ defaultLocal: String(envPath.parsed?.DEFAULT_LOCAL_LANG),
29
+ protocolTransfert: String(envPath.parsed?.PROTOCOL_TRANSFERT),
30
+ logEnv: String(envPath.parsed?.LOG_ENVIRONMENT),
31
+ logFileMaxSize: Number(envPath.parsed?.LOG_ENVIRONMENT_FILE_MAX_SIZE),
32
+ logFileRotate: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ROTATE),
33
+ logFileEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ENABLED),
34
+ logRemoteEndPoint: String(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENDPOINT),
35
+ logRemoteEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENABLED),
36
+ logConsoleEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_CONSOLE_ENABLED),
37
+ logLevelError: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_ERROR),
38
+ logLevelInfo: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_INFO),
39
+ logLevelSuccess: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_SUCCESS),
40
+ logLevelWarning: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_WARN),
41
+ logLevelDebug: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_DEBUG),
42
+ passwordField: String(envPath.parsed?.PASSWORD_FIELD),
43
+ prodEnv: String(envPath.parsed?.ENV_PROD),
44
+ usernameField: String(envPath.parsed?.USERNAME_FIELD),
45
+ hmrEnabled: parseBoolean(envPath.parsed?.HMR_ENABLED),
46
+ hmrWatchPatterns: parseStringArray(envPath.parsed?.HMR_WATCH_PATTERNS) || "src/**/*.ts,src/**/*.js,src/**/*.json,.env,config/*.json",
47
+ hmrIgnorePatterns: parseStringArray(envPath.parsed?.HMR_IGNORE_PATTERNS) || "node_modules/**,dist/**,build/**,*.log,coverage/**",
48
+ hmrDebounceMs: parseNumber(envPath.parsed?.HMR_DEBOUNCE_MS, 500) || 500,
49
+ hmrMaxRestarts: parseNumber(envPath.parsed?.HMR_MAX_RESTARTS, 5) || 5,
50
+ hmrAutoRestarts: parseBoolean(envPath.parsed?.HMR_AUTO_RESTART) || false
51
+ };
52
+ };
package/dist/index.cjs CHANGED
@@ -30,7 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
- getEnvironnementValue: () => getEnvironnementValue
33
+ Env: () => EnvironmentCore,
34
+ getEnvironmentValue: () => getEnvironmentValue
34
35
  });
35
36
  module.exports = __toCommonJS(index_exports);
36
37
 
@@ -73,8 +74,21 @@ var envPathConfig = (envDirPath) => {
73
74
  };
74
75
 
75
76
  // src/domains/environnement/access.env.ts
76
- var getEnvironnementValue = (envDir) => {
77
+ var getEnvironmentValue = (envDir) => {
77
78
  const envPath = envPathConfig(envDir);
79
+ const parseBoolean = (value) => {
80
+ return value?.toLowerCase() === "true";
81
+ };
82
+ const parseNumber = (value, defaultValue = 0) => {
83
+ const num = Number(value);
84
+ return isNaN(num) ? defaultValue : num;
85
+ };
86
+ const parseStringArray = (value, separator = ",") => {
87
+ if (!value || value.trim() === "") {
88
+ return [];
89
+ }
90
+ return value.split(separator).map((item) => item.trim()).filter((item) => item.length > 0);
91
+ };
78
92
  return {
79
93
  apiVersion: String(envPath.parsed?.API_VERSION),
80
94
  appHost: String(envPath.parsed?.APP_HOST),
@@ -90,11 +104,11 @@ var getEnvironnementValue = (envDir) => {
90
104
  protocolTransfert: String(envPath.parsed?.PROTOCOL_TRANSFERT),
91
105
  logEnv: String(envPath.parsed?.LOG_ENVIRONMENT),
92
106
  logFileMaxSize: Number(envPath.parsed?.LOG_ENVIRONMENT_FILE_MAX_SIZE),
93
- logFileRotate: Boolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ROTATE),
94
- logFileEnabled: Boolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ENABLED),
107
+ logFileRotate: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ROTATE),
108
+ logFileEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ENABLED),
95
109
  logRemoteEndPoint: String(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENDPOINT),
96
- logRemoteEnabled: Boolean(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENABLED),
97
- logConsoleEnabled: Boolean(envPath.parsed?.LOG_ENVIRONMENT_CONSOLE_ENABLED),
110
+ logRemoteEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENABLED),
111
+ logConsoleEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_CONSOLE_ENABLED),
98
112
  logLevelError: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_ERROR),
99
113
  logLevelInfo: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_INFO),
100
114
  logLevelSuccess: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_SUCCESS),
@@ -102,10 +116,40 @@ var getEnvironnementValue = (envDir) => {
102
116
  logLevelDebug: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_DEBUG),
103
117
  passwordField: String(envPath.parsed?.PASSWORD_FIELD),
104
118
  prodEnv: String(envPath.parsed?.ENV_PROD),
105
- usernameField: String(envPath.parsed?.USERNAME_FIELD)
119
+ usernameField: String(envPath.parsed?.USERNAME_FIELD),
120
+ hmrEnabled: parseBoolean(envPath.parsed?.HMR_ENABLED),
121
+ hmrWatchPatterns: parseStringArray(envPath.parsed?.HMR_WATCH_PATTERNS) || "src/**/*.ts,src/**/*.js,src/**/*.json,.env,config/*.json",
122
+ hmrIgnorePatterns: parseStringArray(envPath.parsed?.HMR_IGNORE_PATTERNS) || "node_modules/**,dist/**,build/**,*.log,coverage/**",
123
+ hmrDebounceMs: parseNumber(envPath.parsed?.HMR_DEBOUNCE_MS, 500) || 500,
124
+ hmrMaxRestarts: parseNumber(envPath.parsed?.HMR_MAX_RESTARTS, 5) || 5,
125
+ hmrAutoRestarts: parseBoolean(envPath.parsed?.HMR_AUTO_RESTART) || false
106
126
  };
107
127
  };
128
+
129
+ // src/core/environment.core.ts
130
+ var EnvironmentCore = class {
131
+ config;
132
+ /**
133
+ * Creates EnvironmentUtils instance
134
+ * @constructor
135
+ * @param {T} config - Configuration object
136
+ */
137
+ constructor(config) {
138
+ this.config = config;
139
+ }
140
+ /**
141
+ * Gets configuration value by key
142
+ * @method get
143
+ * @template K - Key type
144
+ * @param {K} key - Configuration key
145
+ * @returns {T[K]} Configuration value
146
+ */
147
+ get(key) {
148
+ return this.config[key];
149
+ }
150
+ };
108
151
  // Annotate the CommonJS export names for ESM import in node:
109
152
  0 && (module.exports = {
110
- getEnvironnementValue
153
+ Env,
154
+ getEnvironmentValue
111
155
  });
package/dist/index.d.cts CHANGED
@@ -26,8 +26,37 @@ interface IEnvVariables {
26
26
  logLevelWarning: string;
27
27
  logLevelDebug: string;
28
28
  protocolTransfert: string;
29
+ hmrEnabled: boolean;
30
+ hmrWatchPatterns: string[];
31
+ hmrIgnorePatterns: string[];
32
+ hmrDebounceMs: number;
33
+ hmrMaxRestarts: number;
34
+ hmrAutoRestarts: boolean;
29
35
  }
30
36
 
31
- declare const getEnvironnementValue: (envDir: string) => IEnvVariables;
37
+ declare const getEnvironmentValue: (envDir: string) => IEnvVariables;
32
38
 
33
- export { type IEnvVariables, getEnvironnementValue };
39
+ /**
40
+ * Environment Variables Utility Class
41
+ * @class EnvironmentUtils
42
+ * @template T - Type of configuration object
43
+ */
44
+ declare class EnvironmentCore<T> {
45
+ private readonly config;
46
+ /**
47
+ * Creates EnvironmentUtils instance
48
+ * @constructor
49
+ * @param {T} config - Configuration object
50
+ */
51
+ constructor(config: T);
52
+ /**
53
+ * Gets configuration value by key
54
+ * @method get
55
+ * @template K - Key type
56
+ * @param {K} key - Configuration key
57
+ * @returns {T[K]} Configuration value
58
+ */
59
+ get<K extends keyof T>(key: K): T[K];
60
+ }
61
+
62
+ export { EnvironmentCore as Env, type IEnvVariables, getEnvironmentValue };
package/dist/index.d.ts CHANGED
@@ -26,8 +26,37 @@ interface IEnvVariables {
26
26
  logLevelWarning: string;
27
27
  logLevelDebug: string;
28
28
  protocolTransfert: string;
29
+ hmrEnabled: boolean;
30
+ hmrWatchPatterns: string[];
31
+ hmrIgnorePatterns: string[];
32
+ hmrDebounceMs: number;
33
+ hmrMaxRestarts: number;
34
+ hmrAutoRestarts: boolean;
29
35
  }
30
36
 
31
- declare const getEnvironnementValue: (envDir: string) => IEnvVariables;
37
+ declare const getEnvironmentValue: (envDir: string) => IEnvVariables;
32
38
 
33
- export { type IEnvVariables, getEnvironnementValue };
39
+ /**
40
+ * Environment Variables Utility Class
41
+ * @class EnvironmentUtils
42
+ * @template T - Type of configuration object
43
+ */
44
+ declare class EnvironmentCore<T> {
45
+ private readonly config;
46
+ /**
47
+ * Creates EnvironmentUtils instance
48
+ * @constructor
49
+ * @param {T} config - Configuration object
50
+ */
51
+ constructor(config: T);
52
+ /**
53
+ * Gets configuration value by key
54
+ * @method get
55
+ * @template K - Key type
56
+ * @param {K} key - Configuration key
57
+ * @returns {T[K]} Configuration value
58
+ */
59
+ get<K extends keyof T>(key: K): T[K];
60
+ }
61
+
62
+ export { EnvironmentCore as Env, type IEnvVariables, getEnvironmentValue };
package/dist/index.js CHANGED
@@ -33,8 +33,21 @@ var envPathConfig = (envDirPath) => {
33
33
  };
34
34
 
35
35
  // src/domains/environnement/access.env.ts
36
- var getEnvironnementValue = (envDir) => {
36
+ var getEnvironmentValue = (envDir) => {
37
37
  const envPath = envPathConfig(envDir);
38
+ const parseBoolean = (value) => {
39
+ return value?.toLowerCase() === "true";
40
+ };
41
+ const parseNumber = (value, defaultValue = 0) => {
42
+ const num = Number(value);
43
+ return isNaN(num) ? defaultValue : num;
44
+ };
45
+ const parseStringArray = (value, separator = ",") => {
46
+ if (!value || value.trim() === "") {
47
+ return [];
48
+ }
49
+ return value.split(separator).map((item) => item.trim()).filter((item) => item.length > 0);
50
+ };
38
51
  return {
39
52
  apiVersion: String(envPath.parsed?.API_VERSION),
40
53
  appHost: String(envPath.parsed?.APP_HOST),
@@ -50,11 +63,11 @@ var getEnvironnementValue = (envDir) => {
50
63
  protocolTransfert: String(envPath.parsed?.PROTOCOL_TRANSFERT),
51
64
  logEnv: String(envPath.parsed?.LOG_ENVIRONMENT),
52
65
  logFileMaxSize: Number(envPath.parsed?.LOG_ENVIRONMENT_FILE_MAX_SIZE),
53
- logFileRotate: Boolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ROTATE),
54
- logFileEnabled: Boolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ENABLED),
66
+ logFileRotate: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ROTATE),
67
+ logFileEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_FILE_ENABLED),
55
68
  logRemoteEndPoint: String(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENDPOINT),
56
- logRemoteEnabled: Boolean(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENABLED),
57
- logConsoleEnabled: Boolean(envPath.parsed?.LOG_ENVIRONMENT_CONSOLE_ENABLED),
69
+ logRemoteEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_REMOTE_ENABLED),
70
+ logConsoleEnabled: parseBoolean(envPath.parsed?.LOG_ENVIRONMENT_CONSOLE_ENABLED),
58
71
  logLevelError: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_ERROR),
59
72
  logLevelInfo: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_INFO),
60
73
  logLevelSuccess: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_SUCCESS),
@@ -62,9 +75,39 @@ var getEnvironnementValue = (envDir) => {
62
75
  logLevelDebug: String(envPath.parsed?.LOG_ENVIRONMENT_LOG_LEVEL_DEBUG),
63
76
  passwordField: String(envPath.parsed?.PASSWORD_FIELD),
64
77
  prodEnv: String(envPath.parsed?.ENV_PROD),
65
- usernameField: String(envPath.parsed?.USERNAME_FIELD)
78
+ usernameField: String(envPath.parsed?.USERNAME_FIELD),
79
+ hmrEnabled: parseBoolean(envPath.parsed?.HMR_ENABLED),
80
+ hmrWatchPatterns: parseStringArray(envPath.parsed?.HMR_WATCH_PATTERNS) || "src/**/*.ts,src/**/*.js,src/**/*.json,.env,config/*.json",
81
+ hmrIgnorePatterns: parseStringArray(envPath.parsed?.HMR_IGNORE_PATTERNS) || "node_modules/**,dist/**,build/**,*.log,coverage/**",
82
+ hmrDebounceMs: parseNumber(envPath.parsed?.HMR_DEBOUNCE_MS, 500) || 500,
83
+ hmrMaxRestarts: parseNumber(envPath.parsed?.HMR_MAX_RESTARTS, 5) || 5,
84
+ hmrAutoRestarts: parseBoolean(envPath.parsed?.HMR_AUTO_RESTART) || false
66
85
  };
67
86
  };
87
+
88
+ // src/core/environment.core.ts
89
+ var EnvironmentCore = class {
90
+ config;
91
+ /**
92
+ * Creates EnvironmentUtils instance
93
+ * @constructor
94
+ * @param {T} config - Configuration object
95
+ */
96
+ constructor(config) {
97
+ this.config = config;
98
+ }
99
+ /**
100
+ * Gets configuration value by key
101
+ * @method get
102
+ * @template K - Key type
103
+ * @param {K} key - Configuration key
104
+ * @returns {T[K]} Configuration value
105
+ */
106
+ get(key) {
107
+ return this.config[key];
108
+ }
109
+ };
68
110
  export {
69
- getEnvironnementValue
111
+ EnvironmentCore as Env,
112
+ getEnvironmentValue
70
113
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opticore-env-access",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "opticore environnement access",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",