Registry / communication / oy-vey

oy-vey

JSON →
library0.12.1jsnpmunverified

Oy-vey is a utility library for building server-side HTML email templates using React. It provides a set of components (`Table`, `TBody`, `TR`, `TD`, `Img`, `A`) that validate props against email best practices to help ensure compatibility across various email clients. The package also offers `Oy.renderTemplate` to inject rendered React components into a complete HTML email skeleton. Currently at version 0.12.1, the project appears to be largely abandoned, with the last npm publish over five years ago and known, unaddressed issues such as significant TypeScript compilation time increases. Its primary differentiation lies in its React-based component validation for email best practices, but it lacks active development and modern ecosystem support.

npm install oy-vey
INSTALL
IMPORT
SIG · OY-VEY
O
oy-vey
communicationjavascriptv0.12.1
Install
—
Import
—
Disk
—
Pass rate
0/ 6
Env Coverage0 / 6
glibc
18–22
musl
18–22
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18–226 runs
build_error
glibc
node 18–226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Oy
✓ import Oy from 'oy-vey';
✗ import { Oy } from 'oy-vey';
Oy is the default export, providing access to `renderTemplate` and component factories.
Table, TBody, TR, TD
✓ import Oy from 'oy-vey'; const { Table, TBody, TR, TD } = Oy;
✗ import { Table, TBody, TR, TD } from 'oy-vey';
Email-specific components (e.g., Table, TR) are exposed as properties on the default `Oy` export, not as direct named exports from the package.
renderTemplate
✓ import Oy from 'oy-vey'; Oy.renderTemplate(<MyEmail />, options);
✗ import { renderTemplate } from 'oy-vey';
`renderTemplate` is a static method on the default `Oy` export.

Demonstrates rendering a simple React email component using Oy-vey and serving it via an Express.js endpoint.

import express from 'express'; import React from 'react'; import Oy from 'oy-vey'; const MyEmailTemplate = ({ username }) => { const { Table, TBody, TR, TD } = Oy; return ( <Table width="100%" border="0" cellPadding="0" cellSpacing="0"> <TBody> <TR> <TD align="center" style={{ padding: '20px' }}> <h1>Hello, {username}!</h1> <p>This is a test email rendered with Oy-vey and React.</p> <a href="https://example.com" style={{ color: '#1a73e8' }}>Visit our site</a> </TD> </TR> </TBody> </Table> ); }; const server = express(); server.set('port', (process.env.PORT || 8887)); server.get('/email/hello', (req, res) => { const template = Oy.renderTemplate(<MyEmailTemplate username="Developer" />, { title: 'Welcome Email', previewText: 'A quick intro to our service.', headCSS: 'body { font-family: sans-serif; }', bgColor: '#f0f0f0' }); res.send(template); }); server.listen(server.get('port'), () => { console.log('Node server is running on port', server.get('port')); });
Debug
Known issues
gotchaUsing Oy-vey with TypeScript can lead to significantly increased compilation times due to issues with the package's typings. A workaround exists that disables a subset of type-checks.
fix
Consider disabling a subset of TypeScript type-checks as suggested in GitHub issue #84, or use the library in plain JavaScript.
affects: >=0.1.0
breakingWhen migrating to or using Oy-vey with React 16+, attribute names for HTML properties like `bgColor` and `vAlign` must be changed to their standard HTML lowercase forms: `bgcolor` and `valign`.
fix
Update JSX attributes from `bgColor` to `bgcolor` and `vAlign` to `valign`.
affects: >=0.11.0
gotchaCSS placed in the `headCSS` option of `Oy.renderTemplate` may be stripped out by various email clients, leading to inconsistent styling. Inline styles are generally more reliable for email.
fix
Prioritize inline styling for critical CSS properties or use external tools to inline CSS before sending.
affects: *
gotchaThis package appears to be abandoned, with no updates in over five years. Critical bugs or security vulnerabilities are unlikely to be addressed, and it may not be compatible with newer versions of React or Node.js.
fix
Evaluate alternatives for active development projects. For existing projects, proceed with caution and thorough testing.
affects: *
Errors
Common errors & fixes
TypeError: Cannot destructure property 'Table' of 'undefined' as it is null.
Attempting to destructure components (e.g., Table, TBody) directly from the 'oy-vey' package instead of from the default `Oy` export.
fix
Ensure `Oy` is imported as the default export (`import Oy from 'oy-vey';`) and then destructure components from the `Oy` object (`const { Table, TBody } = Oy;`).
SyntaxError: 'import' and 'export' may only appear at the top level
Mixing CommonJS `require()` syntax with ES Modules `import` or attempting to use `import` in a CommonJS context without proper transpilation.
fix
Ensure your project is configured for ES Modules (e.g., `"type": "module"` in package.json) or use CommonJS `require('oy-vey')` if appropriate for your environment, though examples primarily use `import`.
Upgrade
Version history
0.12.1latest on npm
Audit
Dependencies
reactrequiredPeer dependency for building UI components.
react-domrequiredPeer dependency for server-side rendering of React components.
Agent activity
13 hits · last 30 days
node
12
OpenAI (training)
1
Resources
oy-vey — npm install oy-vey · libregistry