vue-cli-plugin-envhot
Version:
hot reloading your .env files, never worry about restarting yor wde
46 lines (35 loc) • 1.06 kB
text/typescript
import storage from "./storage";
import eventEmitter from "./EventEmitter";
import { ADDED_KEY, DELETED_KEY } from "./events";
// const webpack = require("../ss/node_modules/webpack");
const webpack = require("webpack");
let initialized = false;
export default function runtimeValueFactory(args, ...rest) {
const prop = "process.env";
const arg = Object.assign({}, args[0]);
Object.keys(arg[prop]).forEach((key) => {
if (!initialized) {
console.log(arg[prop][key]);
storage.setValue(key, arg[prop][key]);
}
arg[prop][key] = webpack.DefinePlugin.runtimeValue(() => {
return JSON.stringify(storage.getValue(key));
}, true);
});
eventEmitter.on(ADDED_KEY, (key) => {
arg[prop][key] = webpack.DefinePlugin.runtimeValue(() => {
return JSON.stringify(storage.getValue(key));
}, true);
});
eventEmitter.on(DELETED_KEY, (key) => {
delete arg[prop][key];
console.log(key);
});
if (!initialized) {
initialized = true;
storage.push();
}
initialized = true;
//
return [arg];
}