Skip to content

Instantly share code, notes, and snippets.

View jeremymeng's full-sized avatar

Jeremy Meng jeremymeng

  • Microsoft
  • 17:19 (UTC -07:00)
View GitHub Profile
@jeremymeng
jeremymeng / .wezterm.lua
Last active August 25, 2025 16:44
Windows tooling setup
-- Pull in the wezterm API
local wezterm = require 'wezterm'
-- This will hold the configuration.
local config = wezterm.config_builder()
-- This is where you actually apply your config choices
-- For example, changing the color scheme:
config.color_scheme = 'AdventureTime'
@jeremymeng
jeremymeng / p
Created August 8, 2025 00:38
nodejs script to run common turbo commands from repo root
#!/usr/bin/env node
const util = require('node:util');
const { spawn, spawnSync } = require("node:child_process");
const path = require("node:path");
const process = require("node:process");
const { existsSync } = require("node:fs");
function spawnWithOutput(cwd, command, ...args) {
console.log(`Executing: "${command} ${args.join(" ")}" in ${cwd}\n\n`);
@jeremymeng
jeremymeng / pnpm-publish-story.md
Last active June 19, 2025 21:03
Pnpm Publish Story

In migration to pnpm we changed to use workspace version specifiers to manage dependencies centrally. This brings some challenge to our publishing story.

The version specifiers are replaced by real versions when we pack the packages via pnpm pack. We would like to reduce code churn to package.json files if not necessary.

If we

1. only uses workspace:^ for all

not auto-bumping package versions after releases. Only bumping versions when needed (minor if features are added, or major if breaking)

@jeremymeng
jeremymeng / typespec-patched.js
Created June 5, 2025 17:06
Typespec Patched #js
if (additionalEmitterOptions) {
additionalEmitterOptions.split(";").forEach((option) => {
const [key, value] = option.split("=");
if (key && value) {
if (value.startsWith("{") && value.endsWith("}")) {
console.log(`##### '${key}': '${value}'`)
emitterOverrideOptions[key] = JSON.parse(value);
} else {
emitterOverrideOptions[key] = value;
}
@jeremymeng
jeremymeng / js-namespace-customization
Created October 23, 2024 16:39
Js Namespace Customization
#### Using the namespace defined in the main.tsp file
<details>
<summary>JavaScript</summary>
JavaScript will generate the following directories:
```md
@jeremymeng
jeremymeng / README.md
Last active April 21, 2023 20:27
@azure/storage-blob Web Worker Webpack 5
From 696505db6647dd182eaa4254c035acf518b35e7d Mon Sep 17 00:00:00 2001
From: Jeremy Meng <yumeng@microsoft.com>
Date: Wed, 27 Jul 2022 14:33:04 -1000
Subject: [PATCH] override webpack config using `react-app-rewired`
---
sb/react-sb/config-overrides.js | 24 +++++++++++
sb/react-sb/package.json | 4 +-
sb/react-sb/src/App.tsx | 5 +++
sb/react-sb/src/testSB.ts | 71 +++++++++++++++++++++++++++++++++
@jeremymeng
jeremymeng / client.js
Created May 2, 2022 21:48
haproxy for testing amqp custom endpoint
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
const sbClient = new ServiceBusClient(connectionString, {
customEndpointAddress: "sb://127.0.0.1",
// WebSocket works too
// customEndpointAddress: "https://127.0.0.1:3000",
// webSocketOptions: {
// webSocket: ws,
// },
});
@jeremymeng
jeremymeng / batchSend.js
Created April 8, 2022 00:12
@azure/event-hubs browser parcel bundler
const { EventHubProducerClient } = require("@azure/event-hubs");
require("@azure/logger").setLogLevel("verbose");
localStorage.debug= "azure*,rhea-promise:error,rhea:events,rhea:frames,rhea:io,rhea:flow"
function generateEvents(n, size) {
result = [];
for (let i = 0; i < n; i++) {
const obj = {
dataType: "data",
@jeremymeng
jeremymeng / rush-project-folder.sh
Last active March 11, 2022 19:33
jq project folder
strip-json-comments rush.json | jq -c '.projects | map(select(.versionPolicyName | contains("management") | not)) | sort_by(.projectFolder) | .[]' > /workspaces/notes/rush-non-mgmt.log