npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@fluidframework/fluid-runner

v2.5.0

Published

Utility for running various functionality inside a Fluid Framework environment

Downloads

2,891

Readme

@fluidframework/fluid-runner

This package contains utility for running various functionality inside a Fluid Framework environment.

Using Fluid Framework libraries

When taking a dependency on a Fluid Framework library's public APIs, we recommend using a ^ (caret) version range, such as ^1.3.4. While Fluid Framework libraries may use different ranges with interdependencies between other Fluid Framework libraries, library consumers should always prefer ^.

If using any of Fluid Framework's unstable APIs (for example, its beta APIs), we recommend using a more constrained version range, such as ~.

Installation

To get started, install the package by running the following command:

npm i @fluidframework/fluid-runner

Importing from this package

This package leverages package.json exports to separate its APIs by support level. For more information on the related support guarantees, see API Support Levels.

To access the public (SemVer) APIs, import via @fluidframework/fluid-runner like normal.

To access the legacy APIs, import via @fluidframework/fluid-runner/legacy.

Export File

Allows some execution to be made on a container given a provided ODSP snapshot.

Sample command

If package is installed globally: node fluid-runner exportFile --codeLoader=compiledBundle.js --inputFile=inputFileName.fluid --outputFile=result.txt --telemetryFile=telemetryFile.txt

If working directly on this package: node bin/fluid-runner exportFile --codeLoader=compiledBundle.js --inputFile=inputFileName.fluid --outputFile=result.txt --telemetryFile=telemetryFile.txt

Code Loader bundle format

The Code Loader bundle should provide defined exports required for this functionality. For more details on what exports are needed, see codeLoaderBundle.ts.

"codeLoader" vs "IFluidFileConverter" argument

You may notice the command line argument codeLoader is optional. If you choose not to provide a value for codeLoader, you must extend this library and provide a IFluidFileConverter implementation to the fluidRunner(...) method.

import { fluidRunner } from "@fluidframework/fluid-runner";

await fluidRunner({
	/* IFluidFileConverter implementation here */
});

Note: Only one of codeLoader or fluidRunner(...) argument is allowed. If both or none are provided, an error will be thrown at the start of execution.

Input file format

The input file is expected to be an ODSP snapshot. For some examples, see the files in the localOdspSnapshots folder.

Telemetry format

There is an optional command line option telemetryFormat that allows you to specify the telemetry output format. The naming provided to this option is strict and must match an option in OutputFormat. The default format is currently JSON

Additional telemetry properties

There is an optional command line option telemetryProp that allows you to specify additional properties that will be added to every telemetry entry. The format follows these rules:

  • every key must be a string
  • values may be either a string or a number
  • keys and values cannot be empty

Example of valid usages:

--telemetryProp prop1 value1 --telemetryProp prop2 10.5
--telemetryProp "  prop1 " "   value1 " prop2 value2
--telemetryProp prop1 "aaa=bbb" prop2 "aaa\"bbb"

No trimming of white-space inside quotes

Example of invalid usages:

--telemetryProp "10" value1
--telemetryProp prop1
--telemetryProp=             // this will be treated as ['']

Consumption

The code around exportFile can be consumed in multiple different layers. It is not necessary to run all this code fully as is, and the following are some interesting code bits involved in this workflow:

For an example of a consumption path that differs slightly to exportFile(...), see parseBundleAndExportFile(...). In addition to running the same logic as exportFile method, it implements the logic around parsing a dynamically provided bundle path into an IFluidFileConverter object.

Contribution Guidelines

There are many ways to contribute to Fluid.

Detailed instructions for working in the repo can be found in the Wiki.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services. Use of these trademarks or logos must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.

Help

Not finding what you're looking for in this README? Check out fluidframework.com.

Still not finding what you're looking for? Please file an issue.

Thank you!

Trademark

This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.

Use of these trademarks or logos must follow Microsoft's Trademark & Brand Guidelines.

Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.