@graphql-codegen/flutter-freezed
Version:
GraphQL Code Generator plugin to generate Freezed models from your GraphQL schema
134 lines (131 loc) • 6.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Config = void 0;
const utils_js_1 = require("../utils.js");
const pattern_js_1 = require("./pattern.js");
const plugin_config_js_1 = require("./plugin-config.js");
class Config {
}
exports.Config = Config;
Config.camelCasedEnums = (config) => {
const _camelCasedEnums = config.camelCasedEnums;
if (_camelCasedEnums === true) {
return 'camelCase';
}
else if (_camelCasedEnums === false) {
return undefined;
}
return _camelCasedEnums;
};
Config.copyWith = (config, typeName) => {
return Config.enableWithBooleanOrTypeFieldName(config.copyWith, typeName);
};
Config.customScalars = (config, graphqlScalar) => {
var _a, _b, _c;
return (_c = (_b = (_a = config.customScalars) === null || _a === void 0 ? void 0 : _a[graphqlScalar]) !== null && _b !== void 0 ? _b : plugin_config_js_1.DART_SCALARS[graphqlScalar]) !== null && _c !== void 0 ? _c : graphqlScalar;
};
Config.defaultValues = (config, blockAppliesOn, typeName, fieldName) => {
var _a, _b, _c, _d;
const decorator = (defaultValue) => (defaultValue ? `@Default(${defaultValue})\n` : '');
const defaultValue = (_d = (_c = (_b = (_a = config.defaultValues) === null || _a === void 0 ? void 0 : _a.filter(([pattern, , configAppliesOn]) => pattern_js_1.Pattern.findLastConfiguration(pattern, typeName, fieldName) &&
(0, utils_js_1.appliesOnBlock)(configAppliesOn, blockAppliesOn))) === null || _b === void 0 ? void 0 : _b.slice(-1)) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d[1];
return decorator(defaultValue);
};
Config.deprecated = (config, blockAppliesOn, typeName, fieldName) => {
var _a, _b, _c;
const isDeprecated = ((_c = (_b = (_a = config.deprecated) === null || _a === void 0 ? void 0 : _a.filter(([pattern, configAppliesOn]) => pattern_js_1.Pattern.findLastConfiguration(pattern, typeName, fieldName) &&
(0, utils_js_1.appliesOnBlock)(configAppliesOn, blockAppliesOn))) === null || _b === void 0 ? void 0 : _b.slice(-1)) === null || _c === void 0 ? void 0 : _c[0]) !== undefined;
return isDeprecated ? '@deprecated\n' : '';
};
Config.equal = (config, typeName) => {
return Config.enableWithBooleanOrTypeFieldName(config.equal, typeName);
};
Config.escapeDartKeywords = (config, blockAppliesOn, typeName, fieldName) => {
const escapeDartKeywords = config.escapeDartKeywords;
if (escapeDartKeywords === true) {
return ['', '_']; // use a suffix `_`
}
else if (typeName && Array.isArray(escapeDartKeywords) && escapeDartKeywords.length > 0) {
const [, prefix, suffix] = escapeDartKeywords
.filter(([pattern, , , configAppliesOn]) => pattern_js_1.Pattern.findLastConfiguration(pattern, typeName, fieldName) &&
(0, utils_js_1.appliesOnBlock)(configAppliesOn !== null && configAppliesOn !== void 0 ? configAppliesOn : [...plugin_config_js_1.APPLIES_ON_ALL_BLOCKS], blockAppliesOn))
.slice(-1)[0];
return [prefix, suffix];
}
return ['', '']; // no suffix
};
Config.final = (config, blockAppliesOn, typeName, fieldName) => {
var _a, _b, _c;
return (((_c = (_b = (_a = config.final) === null || _a === void 0 ? void 0 : _a.filter(([pattern, configAppliesOn]) => pattern_js_1.Pattern.findLastConfiguration(pattern, typeName, fieldName) &&
(0, utils_js_1.appliesOnBlock)(configAppliesOn, blockAppliesOn))) === null || _b === void 0 ? void 0 : _b.slice(-1)) === null || _c === void 0 ? void 0 : _c[0]) !== undefined);
};
/* static fromJsonToJson = ( // TODO: @next-version
config: FlutterFreezedPluginConfig,
blockAppliesOn?: readonly AppliesOnParameters[],
typeName?: TypeName,
fieldName?: FieldName
) => {
const fromJsonToJson = config.fromJsonToJson;
if (typeName && fieldName && Array.isArray(fromJsonToJson)) {
const [, classOrFunctionName, useClassConverter] = (fromJsonToJson ?? [])
?.filter(
([pattern, , , appliesOn]) =>
Pattern.findLastConfiguration(pattern, typeName, fieldName) && appliesOnBlock(appliesOn, blockAppliesOn)
)
?.slice(-1)?.[0];
return [classOrFunctionName, useClassConverter] as [classOrFunctionName: string, useClassConverter?: boolean];
} else if (typeName && fromJsonToJson instanceof TypeNamePattern) {
return Pattern.findLastConfiguration(fromJsonToJson, typeName);
}
return fromJsonToJson as boolean;
};
*/
Config.ignoreTypes = (config, typeName) => {
const ignoreTypes = config.ignoreTypes;
if (ignoreTypes) {
const isIgnored = pattern_js_1.Pattern.findLastConfiguration(ignoreTypes, typeName);
return isIgnored ? [typeName.value] : [];
}
return [];
};
Config.immutable = (config, typeName) => {
return Config.enableWithBooleanOrTypeFieldName(config.immutable, typeName);
};
Config.makeCollectionsUnmodifiable = (config, typeName) => {
return Config.enableWithBooleanOrTypeFieldName(config.makeCollectionsUnmodifiable, typeName);
};
Config.mergeTypes = (config, typeName) => {
var _a, _b;
return (_b = (_a = config.mergeTypes) === null || _a === void 0 ? void 0 : _a[typeName.value]) !== null && _b !== void 0 ? _b : [];
};
Config.mutableInputs = (config, typeName) => {
return Config.enableWithBooleanOrTypeFieldName(config.mutableInputs, typeName);
};
Config.privateEmptyConstructor = (config, typeName) => {
return Config.enableWithBooleanOrTypeFieldName(config.privateEmptyConstructor, typeName);
};
Config.unionClass = ( /* config: FlutterFreezedPluginConfig, index: number, unionTypeName: TypeName */) => {
// const unionClass = config['unionClass'];
return undefined;
};
Config.unionKey = ( /* config: FlutterFreezedPluginConfig, typeName: TypeName */) => {
return undefined;
};
Config.unionValueCase = ( /* config: FlutterFreezedPluginConfig, typeName: TypeName */) => {
return undefined;
};
Config.unionValueFactoryDecorator = () => {
return undefined;
};
Config.enableWithBooleanOrTypeFieldName = (value, typeName) => {
if (typeof value === 'boolean') {
return value;
}
else if (value !== undefined && typeName !== undefined) {
return pattern_js_1.Pattern.findLastConfiguration(value, typeName);
}
return undefined;
};
Config.create = (...config) => {
return Object.assign({}, plugin_config_js_1.defaultFreezedPluginConfig, ...config);
};