Skip to content

Instantly share code, notes, and snippets.

View ScriptedAlchemy's full-sized avatar
🎯
Focusing

Zack Jackson ScriptedAlchemy

🎯
Focusing
View GitHub Profile
@ScriptedAlchemy
ScriptedAlchemy / plugin.js
Created September 15, 2023 01:15
Module Federation Nonce Plugin
const HtmlWebpackPlugin = require('html-webpack-plugin');
const {ModuleFederationPlugin} = require('webpack').container;
const {RuntimeGlobals, RuntimeModule} = require('webpack');
const path = require('path');
const deps = require('./package.json').dependencies;
class Testing123RuntimeModule extends RuntimeModule {
constructor() {
super('testing123', RuntimeModule.STAGE_BASIC + 1);
}
@ScriptedAlchemy
ScriptedAlchemy / runtimeModule.js
Created February 16, 2023 21:01
Async-node + async fetch chunk loading
/******/ // load script equivalent for server side
/******/ __webpack_require__.l = function(url,callback,chunkId) {
/******/ if(!global.__remote_scope__) {
/******/ // create a global scope for container, similar to how remotes are set on window in the browser
/******/ global.__remote_scope__ = {
/******/ _config: {},
/******/ }
/******/ }
/******/
/******/ function executeLoad(url, callback, name) {
@ScriptedAlchemy
ScriptedAlchemy / getOrLoadRemote.js
Last active February 14, 2024 02:25
The Right Way to Load Dynamic Remotes
import { injectScript } from '@module-federation/utilities';
// example of dynamic remote import on server and client
const isServer = typeof window === 'undefined';
//could also use
// getModule({
// remoteContainer: {
// global: 'app2',
// url: 'http://localhost:3002/remoteEntry.js',
// },
// modulePath: './sample'
@ScriptedAlchemy
ScriptedAlchemy / thing.js
Created November 18, 2021 03:24
Recursive Measure Render
function recursiveMap(children, fn) {
return React.Children.map(children, (child) => {
if (!React.isValidElement(child)) {
return child;
}
if (child.props.children) {
child = React.cloneElement(child, {
children: recursiveMap(child.props.children, fn),
});
@ScriptedAlchemy
ScriptedAlchemy / plugin.js
Created February 3, 2021 20:31
Next.js pure css enforcement override
const withLocalCSS = (nextConfig = {}) => Object.assign({}, nextConfig, {
webpack: (config, options) => {
const nextCssLoaders = config.module.rules.find(rule => typeof rule.oneOf === 'object');
// .module.css
if (nextCssLoaders) {
nextCssLoaders.oneOf.forEach(
(rule) => {
// Modified version of @lingui/loader.
// Current version does not read message catalogs correctly.
// https://github.com/lingui/js-lingui/blob/388464825440b7df3f20a549e425399f8a64c0b7/packages/loader/src/index.js
const path = require("path");
const { getConfig } = require("@lingui/conf");
const { createCompiledCatalog, configureCatalog } = require("@lingui/cli/api");
const loaderUtils = require("loader-utils");
// Check if JavascriptParser and JavascriptGenerator exists -> Webpack 4
@ScriptedAlchemy
ScriptedAlchemy / MutateRuntimePlugin.js
Last active August 4, 2023 01:01
Remote PublicPath Modification
const PLUGIN_NAME = "MutateRuntimePlugin";
class MutateRuntimePlugin {
/**
*
* @param {FederationDashboardPluginOptions} options
*/
constructor(options) {}
/**
@ScriptedAlchemy
ScriptedAlchemy / dashboard.json
Created May 10, 2020 00:11
stats output for FederationDashboard
{
"publicPath": "http://localhost:3001/",
"federationRemoteEntry": {
"rendered": true,
"initial": true,
"entry": true,
"recorded": false,
"size": 7355,
"sizes": {
"javascript": 42,
@ScriptedAlchemy
ScriptedAlchemy / .js
Last active January 1, 2020 22:16
runtime
var chunkMap = {}/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];
@ScriptedAlchemy
ScriptedAlchemy / .js
Created December 31, 2019 08:21
manifest
/******/ (function(modules) { // webpackBootstrap
/******/ // install a JSONP callback for chunk loading
/******/ function webpackJsonpCallback(data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var executeModules = data[2];
/******/
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, resolves = [];