1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | import { assign } from '@ember/polyfills';
|
8 |
|
9 | import DEFAULT_FEATURES from './default-features';
|
10 |
|
11 | type FeatureList = {
|
12 | [key in keyof typeof DEFAULT_FEATURES]: boolean | null;
|
13 | };
|
14 |
|
15 | interface ConfigEnv {
|
16 | ENABLE_OPTIONAL_FEATURES?: boolean;
|
17 | FEATURES?: FeatureList;
|
18 | }
|
19 |
|
20 | declare global {
|
21 | export const EmberDataENV: ConfigEnv | undefined | null;
|
22 | }
|
23 | const ENV: ConfigEnv = typeof EmberDataENV !== 'undefined' && EmberDataENV !== null ? EmberDataENV : {};
|
24 |
|
25 | function featureValue(value: boolean | null): boolean | null {
|
26 | if (ENV.ENABLE_OPTIONAL_FEATURES && value === null) {
|
27 | return true;
|
28 | }
|
29 |
|
30 | return value;
|
31 | }
|
32 |
|
33 | export const FEATURES: FeatureList = assign({}, DEFAULT_FEATURES, ENV.FEATURES);
|
34 | export const SAMPLE_FEATURE_FLAG = featureValue(FEATURES.SAMPLE_FEATURE_FLAG);
|
35 | export const RECORD_DATA_ERRORS = featureValue(FEATURES.RECORD_DATA_ERRORS);
|
36 | export const RECORD_DATA_STATE = featureValue(FEATURES.RECORD_DATA_STATE);
|
37 | export const REQUEST_SERVICE = featureValue(FEATURES.REQUEST_SERVICE);
|
38 | export const IDENTIFIERS = featureValue(FEATURES.IDENTIFIERS);
|
39 | export const CUSTOM_MODEL_CLASS = featureValue(FEATURES.CUSTOM_MODEL_CLASS);
|
40 | export const FULL_LINKS_ON_RELATIONSHIPS = featureValue(FEATURES.FULL_LINKS_ON_RELATIONSHIPS);
|
41 | export const RECORD_ARRAY_MANAGER_IDENTIFIERS = featureValue(FEATURES.RECORD_ARRAY_MANAGER_IDENTIFIERS);
|
42 | export const REMOVE_RECORD_ARRAY_MANAGER_LEGACY_COMPAT = featureValue(
|
43 | FEATURES.REMOVE_RECORD_ARRAY_MANAGER_LEGACY_COMPAT
|
44 | );
|