clumsy-graphics
Version:
a tool for rapidly developing animations where frames are described using svg elements à la react 🙃
32 lines (31 loc) • 1.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAnimationModule = void 0;
const vm_1 = __importDefault(require("vm"));
const decodeData_1 = require("../helpers/decodeData");
const AnimationModule_1 = require("../models/AnimationModule");
require("isomorphic-fetch");
async function getAnimationModule(api) {
const { animationModuleBundle } = api;
const evaluationContext = vm_1.default.createContext({
...globalThis,
console,
process: {
env: {
NODE_ENV: 'development',
},
},
});
vm_1.default.runInContext(animationModuleBundle, evaluationContext);
const evaluatedAnimationModuleBundle = evaluationContext['animationModule'];
const animationModuleContainer = await (0, decodeData_1.decodeData)({
targetCodec: AnimationModule_1.AnimationModuleContainerCodec,
inputData: evaluatedAnimationModuleBundle,
});
const animationModule = animationModuleContainer.default;
return animationModule;
}
exports.getAnimationModule = getAnimationModule;