-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathindex.js
More file actions
50 lines (40 loc) · 1.65 KB
/
index.js
File metadata and controls
50 lines (40 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import path from 'path';
import { setConfiguration, CompatibilityTypes } from '@adguard/tsurlfilter';
import { build } from './src/main/builder';
import { schemaValidator } from './src/main/json-validator';
import { localesValidator } from './src/main/locales-validator';
import { logger } from './src/main/utils/log';
// default platforms config
import { platformsConfig } from './src/main/platforms-config';
const __dirname = path.dirname(new URL(import.meta.url).pathname);
// Sets configuration compatibility
setConfiguration({ compatibility: CompatibilityTypes.Corelibs });
const jsonSchemasConfigDir = path.join(__dirname, './schemas/');
process.on('unhandledRejection', (error) => {
throw error;
});
export const compile = (path, logPath, reportFile, platformsPath, whitelist, blacklist, customPlatformsConfig) => {
if (customPlatformsConfig) {
logger.info('Using custom platforms configuration');
// eslint-disable-next-line no-restricted-syntax, guard-for-in
for (const platform in customPlatformsConfig) {
logger.info(`Redefining platform ${platform}`);
platformsConfig[platform] = customPlatformsConfig[platform];
}
}
return build(
path,
logPath,
reportFile,
platformsPath,
platformsConfig,
whitelist,
blacklist,
);
};
export const validateJSONSchema = (platformsPath, requiredFiltersAmount) => {
return schemaValidator.validate(platformsPath, jsonSchemasConfigDir, requiredFiltersAmount);
};
export const validateLocales = (localesDirPath, requiredLocales) => {
return localesValidator.validate(localesDirPath, requiredLocales);
};