Source: swcad-js-components/src/index.js

"use strict"

const beadsBitsModule = require('./beads-bits')
const boxSupportModule = require('./box-support')
const componentLineModule = require('./component-line')
const meshModule = require('./mesh')
const mouldingModule = require('./moulding')
const openWebJoistModule = require('./open-web-joist')
const reinforcedRectPanelModule = require('./reinforced-rect-panel')
const routedShapesModule = require('./routed-shapes')
const sheetMouldModule = require('./sheet-mould')
const textModule = require('./text')
const trimFamilyFrameModule = require('./trim-family-frame')

const componentsInit = ({ jscad, swcadJs }) => {
    const beadsBits = beadsBitsModule.init({ jscad, swcadJs })
    const preLib = {
        ...swcadJs,
        components: {
            beadsBits
        }
    }

    const routedShapes = routedShapesModule.init({ jscad, swcadJs: preLib })
    const mesh = meshModule.init({ jscad, swcadJs: preLib })
    const componentLine = componentLineModule.init({ jscad, swcadJs: preLib })
    preLib.components = {
        beadsBits,
        routedShapes,
        mesh,
        componentLine,
    }

    /**
     * Components
     * @namespace components
     * @author R. J. Salvador (Salvador Workshop)
     */
    const components = {
        beadsBits,
        boxSupport: boxSupportModule.init({ jscad, swcadJs: preLib }),
        routedShapes,
        mesh,
        componentLine,
        moulding: mouldingModule.init({ jscad, swcadJs: preLib }),
        openWebJoist: openWebJoistModule.init({ jscad, swcadJs: preLib }),
        reinforcedRectPanel: reinforcedRectPanelModule.init({ jscad, swcadJs: preLib }),
        sheetMould: sheetMouldModule.init({ jscad, swcadJs: preLib }),
        text: textModule.init({ jscad, swcadJs: preLib }),
        trimFamilyFrame: trimFamilyFrameModule.init({ jscad, swcadJs: preLib }),
    }

    return components
}

module.exports = {
    init: componentsInit,
};