diff --git a/jest.config.ts b/jest.config.ts index 04907e5..032a567 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -3,6 +3,10 @@ import type { Config } from 'jest'; const config: Config = { preset: 'ts-jest', testEnvironment: 'jsdom', + transformIgnorePatterns: ['/node_modules/(?!(@usewaypoint)/)'], + transform: { + '^.+\\.(js|jsx|ts|tsx|mjs)$': 'ts-jest', + }, }; export default config; diff --git a/packages/email-builder/package-lock.json b/packages/email-builder/package-lock.json index 3509681..bf2e180 100644 --- a/packages/email-builder/package-lock.json +++ b/packages/email-builder/package-lock.json @@ -23,6 +23,7 @@ }, "peerDependencies": { "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18", "zod": "^1 || ^2 || ^3" } }, @@ -155,6 +156,28 @@ "node": ">=0.10.0" } }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/zod": { "version": "3.22.4", "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", diff --git a/packages/email-builder/package.json b/packages/email-builder/package.json index cfaa2f7..c470cc5 100644 --- a/packages/email-builder/package.json +++ b/packages/email-builder/package.json @@ -2,9 +2,16 @@ "name": "@usewaypoint/email-builder", "version": "0.0.3", "description": "React component to render email messages", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "target": "ES2022", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + } + }, "files": [ "dist" ], @@ -15,6 +22,7 @@ "license": "MIT", "peerDependencies": { "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18", "zod": "^1 || ^2 || ^3" }, "dependencies": { diff --git a/packages/email-builder/src/renderers/renderToStaticMarkup.spec.tsx b/packages/email-builder/src/renderers/renderToStaticMarkup.spec.tsx new file mode 100644 index 0000000..24a4ce3 --- /dev/null +++ b/packages/email-builder/src/renderers/renderToStaticMarkup.spec.tsx @@ -0,0 +1,24 @@ +/** + * @jest-environment node + */ + +import renderToStaticMarkup from './renderToStaticMarkup'; + +describe('renderToStaticMarkup', () => { + it.only('renders into a string', () => { + const result = renderToStaticMarkup( + { + root: { + type: 'Container', + data: { + props: { + childrenIds: [], + }, + }, + }, + }, + { rootBlockId: 'root' } + ); + expect(result).toEqual('
'); + }); +}); diff --git a/tsconfig.json b/tsconfig.json index 888fe2b..904d933 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "jsx": "react", "strict": true, "sourceMap": true, + "allowJs": true, "esModuleInterop": true, "skipLibCheck": true,