@splitsoftware/splitio-commons 1.9.2-rc.0 → 1.9.2-rc.1
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/cjs/logger/messages/warn.js +1 -0
- package/cjs/utils/settingsValidation/splitFilters.js +2 -7
- package/esm/logger/messages/warn.js +1 -0
- package/esm/utils/settingsValidation/splitFilters.js +3 -8
- package/package.json +1 -1
- package/src/logger/messages/warn.ts +1 -0
- package/src/sdkClient/clientInputValidation.ts +1 -1
- package/src/utils/settingsValidation/splitFilters.ts +3 -8
- package/cjs/myLogger.js +0 -34
- package/esm/myLogger.js +0 -31
- package/src/myLogger.ts +0 -36
|
@@ -27,6 +27,7 @@ exports.codesWarn = error_1.codesError.concat([
|
|
|
27
27
|
[c.WARN_NOT_EXISTENT_SPLIT, '%s: feature flag "%s" does not exist in this environment. Please double check what feature flags exist in the Split user interface.'],
|
|
28
28
|
[c.WARN_LOWERCASE_TRAFFIC_TYPE, '%s: traffic_type_name should be all lowercase - converting string to lowercase.'],
|
|
29
29
|
[c.WARN_NOT_EXISTENT_TT, '%s: traffic type "%s" does not have any corresponding feature flag in this environment, make sure you\'re tracking your events to a valid traffic type defined in the Split user interface.'],
|
|
30
|
+
[c.WARN_FLAGSET_NOT_CONFIGURED, '%s: : you passed %s wich is not part of the configured FlagSetsFilter, ignoring Flag Set.'],
|
|
30
31
|
// initialization / settings validation
|
|
31
32
|
[c.WARN_INTEGRATION_INVALID, c.LOG_PREFIX_SETTINGS + ': %s integration item(s) at settings is invalid. %s'],
|
|
32
33
|
[c.WARN_SPLITS_FILTER_IGNORED, c.LOG_PREFIX_SETTINGS + ': feature flag filters have been configured but will have no effect if mode is not "%s", since synchronization is being deferred to an external tool.'],
|
|
@@ -180,19 +180,14 @@ function validateSplitFilters(log, maybeSplitFilters, mode) {
|
|
|
180
180
|
}
|
|
181
181
|
exports.validateSplitFilters = validateSplitFilters;
|
|
182
182
|
function flagSetsAreValid(log, method, flagSets, flagSetsInConfig) {
|
|
183
|
-
var toReturn = [];
|
|
184
|
-
if (flagSets.length === 0) {
|
|
185
|
-
log.error(constants_2.ERROR_EMPTY_ARRAY, [method, 'flagSets']);
|
|
186
|
-
return toReturn;
|
|
187
|
-
}
|
|
188
183
|
var sets = (0, splits_1.validateSplits)(log, flagSets, method, 'flag sets', 'flag set');
|
|
189
|
-
toReturn = sets ? sanitizeFlagSets(log, sets) : [];
|
|
184
|
+
var toReturn = sets ? sanitizeFlagSets(log, sets) : [];
|
|
190
185
|
if (flagSetsInConfig.length > 0) {
|
|
191
186
|
toReturn = toReturn.filter(function (flagSet) {
|
|
192
187
|
if (flagSetsInConfig.indexOf(flagSet) > -1) {
|
|
193
188
|
return true;
|
|
194
189
|
}
|
|
195
|
-
log.warn(constants_2.WARN_FLAGSET_NOT_CONFIGURED, [flagSet]);
|
|
190
|
+
log.warn(constants_2.WARN_FLAGSET_NOT_CONFIGURED, [method, flagSet]);
|
|
196
191
|
return false;
|
|
197
192
|
});
|
|
198
193
|
}
|
|
@@ -23,6 +23,7 @@ export var codesWarn = codesError.concat([
|
|
|
23
23
|
[c.WARN_NOT_EXISTENT_SPLIT, '%s: feature flag "%s" does not exist in this environment. Please double check what feature flags exist in the Split user interface.'],
|
|
24
24
|
[c.WARN_LOWERCASE_TRAFFIC_TYPE, '%s: traffic_type_name should be all lowercase - converting string to lowercase.'],
|
|
25
25
|
[c.WARN_NOT_EXISTENT_TT, '%s: traffic type "%s" does not have any corresponding feature flag in this environment, make sure you\'re tracking your events to a valid traffic type defined in the Split user interface.'],
|
|
26
|
+
[c.WARN_FLAGSET_NOT_CONFIGURED, '%s: : you passed %s wich is not part of the configured FlagSetsFilter, ignoring Flag Set.'],
|
|
26
27
|
// initialization / settings validation
|
|
27
28
|
[c.WARN_INTEGRATION_INVALID, c.LOG_PREFIX_SETTINGS + ': %s integration item(s) at settings is invalid. %s'],
|
|
28
29
|
[c.WARN_SPLITS_FILTER_IGNORED, c.LOG_PREFIX_SETTINGS + ': feature flag filters have been configured but will have no effect if mode is not "%s", since synchronization is being deferred to an external tool.'],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { STANDALONE_MODE } from '../constants';
|
|
2
2
|
import { validateSplits } from '../inputValidation/splits';
|
|
3
|
-
import { WARN_SPLITS_FILTER_IGNORED, WARN_SPLITS_FILTER_EMPTY, WARN_SPLITS_FILTER_INVALID, SETTINGS_SPLITS_FILTER, LOG_PREFIX_SETTINGS, ERROR_SETS_FILTER_EXCLUSIVE, WARN_SPLITS_FILTER_LOWERCASE_SET, WARN_SPLITS_FILTER_INVALID_SET,
|
|
3
|
+
import { WARN_SPLITS_FILTER_IGNORED, WARN_SPLITS_FILTER_EMPTY, WARN_SPLITS_FILTER_INVALID, SETTINGS_SPLITS_FILTER, LOG_PREFIX_SETTINGS, ERROR_SETS_FILTER_EXCLUSIVE, WARN_SPLITS_FILTER_LOWERCASE_SET, WARN_SPLITS_FILTER_INVALID_SET, WARN_FLAGSET_NOT_CONFIGURED } from '../../logger/constants';
|
|
4
4
|
import { objectAssign } from '../lang/objectAssign';
|
|
5
5
|
import { find, uniq } from '../lang';
|
|
6
6
|
// Split filters metadata.
|
|
@@ -176,19 +176,14 @@ export function validateSplitFilters(log, maybeSplitFilters, mode) {
|
|
|
176
176
|
return res;
|
|
177
177
|
}
|
|
178
178
|
export function flagSetsAreValid(log, method, flagSets, flagSetsInConfig) {
|
|
179
|
-
var toReturn = [];
|
|
180
|
-
if (flagSets.length === 0) {
|
|
181
|
-
log.error(ERROR_EMPTY_ARRAY, [method, 'flagSets']);
|
|
182
|
-
return toReturn;
|
|
183
|
-
}
|
|
184
179
|
var sets = validateSplits(log, flagSets, method, 'flag sets', 'flag set');
|
|
185
|
-
toReturn = sets ? sanitizeFlagSets(log, sets) : [];
|
|
180
|
+
var toReturn = sets ? sanitizeFlagSets(log, sets) : [];
|
|
186
181
|
if (flagSetsInConfig.length > 0) {
|
|
187
182
|
toReturn = toReturn.filter(function (flagSet) {
|
|
188
183
|
if (flagSetsInConfig.indexOf(flagSet) > -1) {
|
|
189
184
|
return true;
|
|
190
185
|
}
|
|
191
|
-
log.warn(WARN_FLAGSET_NOT_CONFIGURED, [flagSet]);
|
|
186
|
+
log.warn(WARN_FLAGSET_NOT_CONFIGURED, [method, flagSet]);
|
|
192
187
|
return false;
|
|
193
188
|
});
|
|
194
189
|
}
|
package/package.json
CHANGED
|
@@ -24,6 +24,7 @@ export const codesWarn: [number, string][] = codesError.concat([
|
|
|
24
24
|
[c.WARN_NOT_EXISTENT_SPLIT, '%s: feature flag "%s" does not exist in this environment. Please double check what feature flags exist in the Split user interface.'],
|
|
25
25
|
[c.WARN_LOWERCASE_TRAFFIC_TYPE, '%s: traffic_type_name should be all lowercase - converting string to lowercase.'],
|
|
26
26
|
[c.WARN_NOT_EXISTENT_TT, '%s: traffic type "%s" does not have any corresponding feature flag in this environment, make sure you\'re tracking your events to a valid traffic type defined in the Split user interface.'],
|
|
27
|
+
[c.WARN_FLAGSET_NOT_CONFIGURED, '%s: : you passed %s wich is not part of the configured FlagSetsFilter, ignoring Flag Set.'],
|
|
27
28
|
// initialization / settings validation
|
|
28
29
|
[c.WARN_INTEGRATION_INVALID, c.LOG_PREFIX_SETTINGS+': %s integration item(s) at settings is invalid. %s'],
|
|
29
30
|
[c.WARN_SPLITS_FILTER_IGNORED, c.LOG_PREFIX_SETTINGS+': feature flag filters have been configured but will have no effect if mode is not "%s", since synchronization is being deferred to an external tool.'],
|
|
@@ -31,7 +31,7 @@ export function clientInputValidationDecorator<TClient extends SplitIO.IClient |
|
|
|
31
31
|
/**
|
|
32
32
|
* Avoid repeating this validations code
|
|
33
33
|
*/
|
|
34
|
-
function validateEvaluationParams(maybeKey: SplitIO.SplitKey, maybeFeatureFlagNameOrNames: string | string[] | undefined, maybeAttributes: SplitIO.Attributes | undefined, methodName: string, maybeFlagSetNameOrNames?: string[]
|
|
34
|
+
function validateEvaluationParams(maybeKey: SplitIO.SplitKey, maybeFeatureFlagNameOrNames: string | string[] | undefined, maybeAttributes: SplitIO.Attributes | undefined, methodName: string, maybeFlagSetNameOrNames?: string[]) {
|
|
35
35
|
const multi = startsWith(methodName, 'getTreatments');
|
|
36
36
|
const key = validateKey(log, maybeKey, methodName);
|
|
37
37
|
let splitOrSplits: string | string[] | false = false;
|
|
@@ -3,7 +3,7 @@ import { validateSplits } from '../inputValidation/splits';
|
|
|
3
3
|
import { ISplitFiltersValidation } from '../../dtos/types';
|
|
4
4
|
import { SplitIO } from '../../types';
|
|
5
5
|
import { ILogger } from '../../logger/types';
|
|
6
|
-
import { WARN_SPLITS_FILTER_IGNORED, WARN_SPLITS_FILTER_EMPTY, WARN_SPLITS_FILTER_INVALID, SETTINGS_SPLITS_FILTER, LOG_PREFIX_SETTINGS, ERROR_SETS_FILTER_EXCLUSIVE, WARN_SPLITS_FILTER_LOWERCASE_SET, WARN_SPLITS_FILTER_INVALID_SET,
|
|
6
|
+
import { WARN_SPLITS_FILTER_IGNORED, WARN_SPLITS_FILTER_EMPTY, WARN_SPLITS_FILTER_INVALID, SETTINGS_SPLITS_FILTER, LOG_PREFIX_SETTINGS, ERROR_SETS_FILTER_EXCLUSIVE, WARN_SPLITS_FILTER_LOWERCASE_SET, WARN_SPLITS_FILTER_INVALID_SET, WARN_FLAGSET_NOT_CONFIGURED } from '../../logger/constants';
|
|
7
7
|
import { objectAssign } from '../lang/objectAssign';
|
|
8
8
|
import { find, uniq } from '../lang';
|
|
9
9
|
|
|
@@ -189,19 +189,14 @@ export function validateSplitFilters(log: ILogger, maybeSplitFilters: any, mode:
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
export function flagSetsAreValid(log: ILogger, method: string, flagSets: string[], flagSetsInConfig: string[]): string[] {
|
|
192
|
-
let toReturn: string[] = [];
|
|
193
|
-
if (flagSets.length === 0) {
|
|
194
|
-
log.error(ERROR_EMPTY_ARRAY, [method, 'flagSets']);
|
|
195
|
-
return toReturn;
|
|
196
|
-
}
|
|
197
192
|
const sets = validateSplits(log, flagSets, method, 'flag sets', 'flag set');
|
|
198
|
-
toReturn = sets ? sanitizeFlagSets(log, sets) : [];
|
|
193
|
+
let toReturn = sets ? sanitizeFlagSets(log, sets) : [];
|
|
199
194
|
if (flagSetsInConfig.length > 0) {
|
|
200
195
|
toReturn = toReturn.filter(flagSet => {
|
|
201
196
|
if (flagSetsInConfig.indexOf(flagSet) > -1) {
|
|
202
197
|
return true;
|
|
203
198
|
}
|
|
204
|
-
log.warn(WARN_FLAGSET_NOT_CONFIGURED, [flagSet]);
|
|
199
|
+
log.warn(WARN_FLAGSET_NOT_CONFIGURED, [method, flagSet]);
|
|
205
200
|
return false;
|
|
206
201
|
});
|
|
207
202
|
}
|
package/cjs/myLogger.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.myLogger = void 0;
|
|
4
|
-
// get the Console class
|
|
5
|
-
// const { Console } = require('console');
|
|
6
|
-
// get fs module for creating write streams
|
|
7
|
-
var fs = require('fs');
|
|
8
|
-
var pjson = require('../package.json');
|
|
9
|
-
//@ts-ignore
|
|
10
|
-
var pad = function (value) { return ('00' + value).slice(-2); };
|
|
11
|
-
var getDate = function () {
|
|
12
|
-
var date = new Date();
|
|
13
|
-
return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate()) + "_" + pad(date.getHours()) + ":" + pad(date.getMinutes()) + ":" + pad(date.getSeconds());
|
|
14
|
-
};
|
|
15
|
-
//@ts-ignore
|
|
16
|
-
var logToFile = function (file, msg) {
|
|
17
|
-
//@ts-ignore
|
|
18
|
-
fs.appendFileSync(file, msg + "\n", function (err) {
|
|
19
|
-
if (err) {
|
|
20
|
-
return console.log(err);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
// make a new logger
|
|
25
|
-
var version = pjson.version.replace('.', '').replace('.', '');
|
|
26
|
-
var filePath = "logs/" + version + "_" + getDate();
|
|
27
|
-
exports.myLogger = {
|
|
28
|
-
//@ts-ignore
|
|
29
|
-
log: function (msg) { return logToFile(filePath, msg); },
|
|
30
|
-
//@ts-ignore
|
|
31
|
-
logCsv: function (msg) { return logToFile(filePath + ".csv", msg); },
|
|
32
|
-
//@ts-ignore
|
|
33
|
-
logToFile: function (file, msg) { return logToFile("logs/" + file, msg); },
|
|
34
|
-
};
|
package/esm/myLogger.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// get the Console class
|
|
2
|
-
// const { Console } = require('console');
|
|
3
|
-
// get fs module for creating write streams
|
|
4
|
-
var fs = require('fs');
|
|
5
|
-
var pjson = require('../package.json');
|
|
6
|
-
//@ts-ignore
|
|
7
|
-
var pad = function (value) { return ('00' + value).slice(-2); };
|
|
8
|
-
var getDate = function () {
|
|
9
|
-
var date = new Date();
|
|
10
|
-
return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate()) + "_" + pad(date.getHours()) + ":" + pad(date.getMinutes()) + ":" + pad(date.getSeconds());
|
|
11
|
-
};
|
|
12
|
-
//@ts-ignore
|
|
13
|
-
var logToFile = function (file, msg) {
|
|
14
|
-
//@ts-ignore
|
|
15
|
-
fs.appendFileSync(file, msg + "\n", function (err) {
|
|
16
|
-
if (err) {
|
|
17
|
-
return console.log(err);
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
// make a new logger
|
|
22
|
-
var version = pjson.version.replace('.', '').replace('.', '');
|
|
23
|
-
var filePath = "logs/" + version + "_" + getDate();
|
|
24
|
-
export var myLogger = {
|
|
25
|
-
//@ts-ignore
|
|
26
|
-
log: function (msg) { return logToFile(filePath, msg); },
|
|
27
|
-
//@ts-ignore
|
|
28
|
-
logCsv: function (msg) { return logToFile(filePath + ".csv", msg); },
|
|
29
|
-
//@ts-ignore
|
|
30
|
-
logToFile: function (file, msg) { return logToFile("logs/" + file, msg); },
|
|
31
|
-
};
|
package/src/myLogger.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// get the Console class
|
|
2
|
-
// const { Console } = require('console');
|
|
3
|
-
// get fs module for creating write streams
|
|
4
|
-
const fs = require('fs');
|
|
5
|
-
var pjson = require('../package.json');
|
|
6
|
-
|
|
7
|
-
//@ts-ignore
|
|
8
|
-
const pad = (value) => ('00'+value).slice(-2);
|
|
9
|
-
const getDate = () => {
|
|
10
|
-
const date = new Date();
|
|
11
|
-
return `${date.getFullYear()}-${pad(date.getMonth()+1)}-${pad(date.getDate())}_${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
//@ts-ignore
|
|
15
|
-
|
|
16
|
-
const logToFile = (file, msg) => {
|
|
17
|
-
//@ts-ignore
|
|
18
|
-
fs.appendFileSync(file, `${msg}\n`, (err) => {
|
|
19
|
-
if (err) {
|
|
20
|
-
return console.log(err);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// make a new logger
|
|
26
|
-
const version = pjson.version.replace('.','').replace('.','');
|
|
27
|
-
const filePath = `logs/${version}_${getDate()}`;
|
|
28
|
-
export const myLogger = {
|
|
29
|
-
//@ts-ignore
|
|
30
|
-
log: (msg) => logToFile(filePath, msg),
|
|
31
|
-
//@ts-ignore
|
|
32
|
-
logCsv: (msg) => logToFile(`${filePath}.csv`, msg),
|
|
33
|
-
//@ts-ignore
|
|
34
|
-
logToFile: (file, msg) => logToFile(`logs/${file}`, msg),
|
|
35
|
-
};
|
|
36
|
-
|