UNPKG

@netlify/content-engine

Version:
89 lines 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.schemaCustomizationReducer = void 0; const initialState = () => { return { composer: null, context: {}, // @ts-ignore fieldExtensions: {}, printConfig: null, thirdPartySchemas: [], types: [], }; }; const schemaCustomizationReducer = (state = initialState(), action) => { switch (action.type) { case `ADD_THIRD_PARTY_SCHEMA`: return { ...state, thirdPartySchemas: [...state.thirdPartySchemas, action.payload], }; case `SET_SCHEMA_COMPOSER`: return { ...state, composer: action.payload, }; case `CREATE_TYPES`: { let types; if (Array.isArray(action.payload)) { types = [ ...state.types, ...action.payload.map((typeOrTypeDef) => { return { typeOrTypeDef, plugin: action.plugin, }; }), ]; } else { types = [ ...state.types, { typeOrTypeDef: action.payload, plugin: action.plugin }, ]; } return { ...state, types, }; } case `CREATE_FIELD_EXTENSION`: { const { extension, name } = action.payload; return { ...state, fieldExtensions: { ...state.fieldExtensions, [name]: extension }, }; } case `PRINT_SCHEMA_REQUESTED`: { const { path, include, exclude, withFieldTypes } = action.payload; return { ...state, printConfig: { path, include, exclude, withFieldTypes, }, }; } case `CREATE_RESOLVER_CONTEXT`: { const context = action.payload; return { ...state, context: { ...state.context, ...context }, }; } case `CLEAR_SCHEMA_CUSTOMIZATION`: return { ...initialState(), composer: state.composer, }; case `DELETE_CACHE`: return initialState(); default: return state; } }; exports.schemaCustomizationReducer = schemaCustomizationReducer; //# sourceMappingURL=schema-customization.js.map