fuse-box
Version:
Fuse-Box a bundler that does it right
28 lines (25 loc) • 1.07 kB
text/typescript
import { each } from "realm-utils";
import { FileAbstraction } from "../../core/FileAbstraction";
import { QuantumCore } from "../QuantumCore";
import { ReplaceableBlock } from "../../core/nodes/ReplaceableBlock";
export class EnvironmentConditionModification {
public static perform(core: QuantumCore, file: FileAbstraction) {
// FuseBox.isServer
return each(file.fuseboxIsEnvConditions, (replacable: ReplaceableBlock) => {
if (core.opts.isTargetUniveral()) {
if (replacable.identifier === "isServer") {
replacable.setFunctionName(`${core.opts.quantumVariableName}.cs`);
}
if (replacable.identifier === "isBrowser") {
replacable.setFunctionName(`${core.opts.quantumVariableName}.cb`);
}
} else {
if (replacable.isConditional) {
replacable.handleActiveCode();
} else {
replacable.replaceWithValue();
}
}
});
}
}