constructor(
        {
            tag,
            context,
            index,
            requestFragment,
            pipeInstanceName,
            maxAssetLinks,
            pipeAttributes = () => {}
        } = {}
    ) {
        super();
        this.attributes = getAttributes(tag, context);
        this.index = index;
        this.maxAssetLinks = maxAssetLinks;
        this.pipeAttributes = pipeAttributes(
            Object.assign({ id: this.index }, tag.attributes)
        );
        this.requestFragment = requestFragment;
        this.pipeInstanceName = pipeInstanceName;
        this.stream = new PassThrough();
        this.scriptRefs = [];
        this.styleRefs = [];
    }
Create a Fragment
@param {Object} tag - Fragment tag from the template
@param {object} context - Context object for the given fragment
@param {number} index - Order of the fragment
@param {function} requestFragment - Function to request the fragment
@param {string} pipeInstanceName - Pipe instance name that is available in the browser window for consuming hooks