{"id":26062,"library":"paperclip-interim","title":"Paperclip Interim Compiler","description":"Interim compiler step for Paperclip, a visual programming language. Current stable version 18.3.8. Acts as an intermediate representation layer between Paperclip engines and output compilers like React. Bundles AST transformations and provides a uniform interface for compiler backends. Differentiates by being part of the Paperclip ecosystem, designed for multi-target code generation with a focus on UI components. Release cadence is tied to Paperclip monorepo releases, roughly monthly.","status":"active","version":"18.3.8","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install paperclip-interim","lang":"bash","label":"npm"},{"cmd":"yarn add paperclip-interim","lang":"bash","label":"yarn"},{"cmd":"pnpm add paperclip-interim","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM-only since v18. CommonJS require will fail.","wrong":"const { InterimCompiler } = require('paperclip-interim')","symbol":"InterimCompiler","correct":"import { InterimCompiler } from 'paperclip-interim'"},{"note":"Default export also available for convenience, but named export is preferred for tree-shaking.","wrong":"import { default } from 'paperclip-interim'","symbol":"InterimCompiler (default)","correct":"import InterimCompiler from 'paperclip-interim'"},{"note":"InterimNode is a type export, available from named exports for TypeScript usage.","wrong":"import InterimNode from 'paperclip-interim'","symbol":"InterimNode","correct":"import { InterimNode } from 'paperclip-interim'"}],"quickstart":{"code":"import { InterimCompiler } from 'paperclip-interim';\nimport { existingEngine } from './engine'; // hypothetical\n\nconst compiler = new InterimCompiler(existingEngine);\nconsole.log(compiler.toString()); // serialized IR","lang":"typescript","description":"Shows basic usage of InterimCompiler with an existing engine and serialization of the intermediate representation."},"warnings":[{"fix":"Ensure first argument is a compatible Paperclip engine object.","message":"InterimCompiler constructor expects an engine instance; passing a string will throw silently.","severity":"gotcha","affected_versions":">=18.0"},{"fix":"Run engine's compile() before accessing InterimCompiler's output methods.","message":"toString() method may produce undefined if not preprocessed; check engine state.","severity":"gotcha","affected_versions":">=18.0"},{"fix":"Replace serialize() calls with toString().","message":"InterimCompiler.serialize() is deprecated in v18, use toString() instead.","severity":"deprecated","affected_versions":">=18.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use import { InterimCompiler } from 'paperclip-interim' or ensure your module system is ESM.","cause":"Using CommonJS require() in ESM-only package.","error":"TypeError: InterimCompiler is not a constructor"},{"fix":"Run npm install paperclip-interim@18.3.8","cause":"Package not installed or missing from dependencies.","error":"Cannot find module 'paperclip-interim'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}