UNPKG

shinkansen-transmission

Version:
783 lines (687 loc) 15.3 kB
/** * @typedef {TransmissionTypes.ObjectLiteralType} ObjectLiteralType * @typedef {TransmissionTypes.ObjectType} ObjectType * * @typedef {TransmissionTypes.EnumType} EnumType * @typedef {TransmissionTypes.AnyOfType} AnyOfType * @typedef {TransmissionTypes.OneOfType} OneOfType * @typedef {TransmissionTypes.FieldType} FieldType * * @typedef {TransmissionTypes.SchemaType} SchemaType * @typedef {TransmissionTypes.ValuesType} ValuesType * @typedef {TransmissionTypes.ParamsType} ParamsType * * @typedef {TransmissionTypes.Zashiki.BooleanMetaType} ZashikiBooleanMetaType * @typedef {TransmissionTypes.Zashiki.BooleanElementsType} ZashikiBooleanElementsType * @typedef {TransmissionTypes.Zashiki.BooleanType} ZashikiBooleanType */ import debug from 'debug' import { isArray, getTitle, getDescription, isParentUri, getMetaProps, getMetaDefaultValue, getMetaValue, getElementsFieldPropsForEnum, getElementsFieldPropsForAnyOf, getElementsFieldPropsForOneOf, getElementsFieldProps, getElementsFieldValue } from '#transmission/transmission/common' const log = debug('shinkansen-transmission/to-zashiki/render/boolean') log('`shinkansen` is awake') /** * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanMetaType} */ export function renderBooleanMetaForEnum (params, uri) { /* * log('renderBooleanMetaForEnum') */ /** * @type {{ parentUri?: string }} */ const { parentUri = '#', ...metaProps } = getMetaProps(params, uri) return ( Object.assign( { uri, type: 'boolean' }, isParentUri(parentUri, uri) ? { parentUri } : {}, metaProps ) ) } /** * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanMetaType} */ export function renderBooleanMetaForAnyOf (params, uri) { /* * log('renderBooleanMetaForAnyOf') */ /** * @type {{ parentUri?: string }} */ const { parentUri = '#', ...metaProps } = getMetaProps(params, uri) return ( Object.assign( { uri, type: 'boolean' }, isParentUri(parentUri, uri) ? { parentUri } : {}, metaProps ) ) } /** * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanMetaType} */ export function renderBooleanMetaForOneOf (params, uri) { /* * log('renderBooleanMetaForOneOf') */ /** * @type {{ parentUri?: string }} */ const { parentUri = '#', ...metaProps } = getMetaProps(params, uri) return ( Object.assign( { uri, type: 'boolean' }, isParentUri(parentUri, uri) ? { parentUri } : {}, metaProps ) ) } /** * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanMetaType} */ export function getBooleanMetaForAllOf (schema, values, params, uri) { /* * log('renderBooleanMetaForAllOf') */ const metaDefaultValue = getMetaDefaultValue(schema) // , uri) const metaValue = getMetaValue(values, uri, schema) /** * @type {{ parentUri?: string }} */ const { parentUri = '#', ...metaProps } = getMetaProps(params, uri) return ( Object.assign( { uri, type: 'boolean' }, isParentUri(parentUri, uri) ? { parentUri } : {}, metaDefaultValue, metaValue, metaProps ) ) } /** * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanMetaType} */ export function renderBooleanMetaForAllOf (schema, values, params, uri) { /* * log('renderBooleanMetaForAllOf') */ /** * @type {{ parentUri?: string }} */ const { parentUri = '#' } = getMetaProps(params, uri) if (isParentUri(parentUri, uri)) { const { selectedItems } = getMetaProps(params, parentUri) return ( Object.assign( getBooleanMetaForAllOf(schema, values, params, uri), isArray(selectedItems) ? { selectedItems } : {} ) ) } return ( getBooleanMetaForAllOf(schema, values, params, uri) ) } /** * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanMetaType} */ export function getBooleanMeta (schema, values, params, uri) { /* * log('getBooleanMeta') */ const metaDefaultValue = getMetaDefaultValue(schema) // , uri) const metaValue = getMetaValue(values, uri, schema) /** * @type {{ parentUri?: string }} */ const { parentUri = '#', ...metaProps } = getMetaProps(params, uri) return ( Object.assign( { uri, type: 'boolean' }, isParentUri(parentUri, uri) ? { parentUri } : {}, metaDefaultValue, metaValue, metaProps ) ) } /** * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanMetaType} */ export function renderBooleanMeta (schema, values, params, uri) { /* * log('renderBooleanMeta') */ /** * @type {{ parentUri?: string }} */ const { parentUri = '#' } = getMetaProps(params, uri) if (isParentUri(parentUri, uri)) { const { selectedItems } = getMetaProps(params, parentUri) return ( Object.assign( getBooleanMeta(schema, values, params, uri), isArray(selectedItems) ? { selectedItems } : {} ) ) } return ( getBooleanMeta(schema, values, params, uri) ) } /** * @param {ObjectLiteralType | ObjectType} field * @param {ParamsType} params * @param {string} uri * @returns {EnumType} */ export function renderBooleanElementsFieldForEnum (field, params, uri) { /* * log('renderBooleanElementsFieldForEnum') */ return ( Object.assign( field, getElementsFieldPropsForEnum(params, uri), { id: uri } ) ) } /** * @param {ObjectLiteralType | ObjectType} field * @param {ParamsType} params * @param {string} uri * @returns {AnyOfType} */ export function renderBooleanElementsFieldForAnyOf (field, params, uri) { /* * log('renderBooleanElementsFieldForAnyOf') */ return ( Object.assign( field, getElementsFieldPropsForAnyOf(params, uri), { id: uri } ) ) } /** * @param {ObjectLiteralType | ObjectType} field * @param {ParamsType} params * @param {string} uri * @returns {OneOfType} */ export function renderBooleanElementsFieldForOneOf (field, params, uri) { /* * log('renderBooleanElementsFieldForOneOf') */ return ( Object.assign( field, getElementsFieldPropsForOneOf(params, uri), { id: uri } ) ) } /** * @param {ObjectLiteralType | ObjectType} field * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ObjectLiteralType | ObjectType} */ export function getBooleanElementsFieldForAllOf (field, schema, values, params, uri) { /* * log('getBooleanElementsFieldForAllOf') */ const fieldValue = getElementsFieldValue(values, uri, schema) const fieldProps = getElementsFieldProps(params, uri) return ( Object.assign( field, fieldValue, fieldProps ) ) } /** * @param {ObjectLiteralType | ObjectType} field * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {FieldType} */ export function renderBooleanElementsFieldForAllOf (field, schema, values, params, uri) { /* * log('renderBooleanElementsFieldForAllOf') */ const { parentUri = '#' } = params if (isParentUri(parentUri, uri)) { const { selectedItems } = getMetaProps(params, parentUri) return ( Object.assign( getBooleanElementsFieldForAllOf(field, schema, values, params, uri), isArray(selectedItems) ? { selectedItems } : {}, { id: uri } ) ) } return ( Object.assign( getBooleanElementsFieldForAllOf(field, schema, values, params, uri), { id: uri } ) ) } /** * @param {ObjectLiteralType | ObjectType} field * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ObjectLiteralType | ObjectType} */ export function getBooleanElementsField (field, schema, values, params, uri) { /* * log('getBooleanElementsField') */ const fieldValue = getElementsFieldValue(values, uri, schema) const fieldProps = getElementsFieldProps(params, uri) return ( Object.assign( field, fieldValue, fieldProps ) ) } /** * @param {ObjectLiteralType | ObjectType} field * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {FieldType} */ export function renderBooleanElementsField (field, schema, values, params, uri) { /* * log('renderBooleanElementsField') */ const { parentUri = '#' } = params if (isParentUri(parentUri, uri)) { const { selectedItems } = getMetaProps(params, parentUri) return ( Object.assign( getBooleanElementsField(field, schema, values, params, uri), isArray(selectedItems) ? { selectedItems } : {}, { id: uri } ) ) } return ( Object.assign( getBooleanElementsField(field, schema, values, params, uri), { id: uri } ) ) } /** * @param {ObjectLiteralType | ObjectType} elements * @param {SchemaType} schema * @returns {ObjectLiteralType | ObjectType} */ export function getBooleanElements (elements, schema) { /* * log('getBooleanElements') */ return ( Object.assign( elements, getTitle(schema), getDescription(schema) ) ) } /** * @param {SchemaType} schema * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanElementsType} */ export function renderBooleanElementsForEnum (schema, params, uri) { /* * log('renderBooleanElementsForEnum') */ /** * @type {ObjectLiteralType} */ const elements = {} /** * @type {ObjectLiteralType} */ const field = {} return ( Object.assign( getBooleanElements(elements, schema), { enum: renderBooleanElementsFieldForEnum(field, params, uri) } ) ) } /** * @param {SchemaType} schema * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanElementsType} */ export function renderBooleanElementsForAnyOf (schema, params, uri) { /* * log('renderBooleanElementsForAnyOf') */ /** * @type {ObjectLiteralType} */ const elements = {} /** * @type {ObjectLiteralType} */ const field = {} return ( Object.assign( getBooleanElements(elements, schema), { anyOf: renderBooleanElementsFieldForAnyOf(field, params, uri) } ) ) } /** * @param {SchemaType} schema * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanElementsType} */ export function renderBooleanElementsForOneOf (schema, params, uri) { /* * log('renderBooleanElementsForOneOf') */ /** * @type {ObjectLiteralType} */ const elements = {} /** * @type {ObjectLiteralType} */ const field = {} return ( Object.assign( getBooleanElements(elements, schema), { oneOf: renderBooleanElementsFieldForOneOf(field, params, uri) } ) ) } /** * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanElementsType} */ export function renderBooleanElementsForAllOf (schema, values, params, uri) { /* * log('renderBooleanElementsForAllOf') */ /** * @type {ObjectLiteralType} */ const elements = {} /** * @type {ObjectLiteralType} */ const field = {} return ( Object.assign( getBooleanElements(elements, schema), { field: renderBooleanElementsFieldForAllOf(field, schema, values, params, uri) } ) ) } /** * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @param {string} uri * @returns {ZashikiBooleanElementsType} */ export function renderBooleanElements (schema, values, params, uri) { /* * log('renderBooleanElements') */ /** * @type {ObjectLiteralType} */ const elements = {} /** * @type {ObjectLiteralType} */ const field = {} return ( Object.assign( getBooleanElements(elements, schema), { field: renderBooleanElementsField(field, schema, values, params, uri) } ) ) } /** * "enum" * * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @returns {ZashikiBooleanType} */ export function renderBooleanForEnum (schema, values, params) { /* * log('renderBooleanForEnum') */ const { uri = '#/' } = params const meta = renderBooleanMetaForEnum(params, uri) const elements = renderBooleanElementsForEnum(schema, params, uri) return { meta, elements } } /** * "anyOf" * * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @returns {ZashikiBooleanType} */ export function renderBooleanForAnyOf (schema, values, params) { /* * log('renderBooleanForAnyOf') */ const { uri = '#/' } = params const meta = renderBooleanMetaForAnyOf(params, uri) const elements = renderBooleanElementsForAnyOf(schema, params, uri) return { meta, elements } } /** * "oneOf" * * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @returns {ZashikiBooleanType} */ export function renderBooleanForOneOf (schema, values, params) { /* * log('renderBooleanForAnyOf') */ const { uri = '#/' } = params const meta = renderBooleanMetaForOneOf(params, uri) const elements = renderBooleanElementsForOneOf(schema, params, uri) return { meta, elements } } /** * "allOf" * * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @returns {ZashikiBooleanType} */ export function renderBooleanForAllOf (schema, values, params) { /* * log('renderBooleanForAllOf') */ const { uri = '#/' } = params const meta = renderBooleanMetaForAllOf(schema, values, params, uri) const elements = renderBooleanElementsForAllOf(schema, values, params, uri) return { meta, elements } } /** * @param {SchemaType} schema * @param {ValuesType} values * @param {ParamsType} params * @returns {ZashikiBooleanType} */ export function renderBoolean (schema, values, params) { /* * log('renderBoolean') */ const { uri = '#/' } = params const meta = renderBooleanMeta(schema, values, params, uri) const elements = renderBooleanElements(schema, values, params, uri) return { meta, elements } }