react-email 1.5.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,7 @@ const utils_2 = require("../_preview/utils");
12
12
  const root_1 = require("../_preview/root");
13
13
  const pages_1 = require("../_preview/pages");
14
14
  const cpy_1 = __importDefault(require("cpy"));
15
+ const detect_package_manager_1 = require("detect-package-manager");
15
16
  const log_symbols_1 = __importDefault(require("log-symbols"));
16
17
  const ora_1 = __importDefault(require("ora"));
17
18
  const read_pkg_1 = __importDefault(require("read-pkg"));
@@ -20,12 +21,19 @@ const styles_1 = require("../_preview/styles");
20
21
  const dev = async () => {
21
22
  try {
22
23
  const hasReactEmailDirectory = (0, utils_1.checkDirectoryExist)(utils_1.REACT_EMAIL_ROOT);
24
+ let packageManager;
25
+ try {
26
+ packageManager = await (0, detect_package_manager_1.detect)({ cwd: utils_1.CURRENT_PATH });
27
+ }
28
+ catch (_) {
29
+ packageManager = 'yarn';
30
+ }
23
31
  if (hasReactEmailDirectory) {
24
32
  const isUpToDate = await (0, utils_1.checkPackageIsUpToDate)();
25
33
  if (isUpToDate) {
26
34
  await Promise.all([generateEmailsPreview(), syncPkg()]);
27
- await installDependencies();
28
- shelljs_1.default.exec('yarn dev', { async: true });
35
+ await installDependencies(packageManager);
36
+ shelljs_1.default.exec(`${packageManager} run dev`, { async: true });
29
37
  (0, utils_1.watcher)();
30
38
  return;
31
39
  }
@@ -35,8 +43,8 @@ const dev = async () => {
35
43
  await createAppDirectories();
36
44
  await createAppFiles();
37
45
  await Promise.all([generateEmailsPreview(), syncPkg()]);
38
- await installDependencies();
39
- shelljs_1.default.exec('yarn dev', { async: true });
46
+ await installDependencies(packageManager);
47
+ shelljs_1.default.exec(`${packageManager} run dev`, { async: true });
40
48
  (0, utils_1.watcher)();
41
49
  }
42
50
  catch (error) {
@@ -167,10 +175,10 @@ const syncPkg = async () => {
167
175
  };
168
176
  await fs_1.default.promises.writeFile(path_1.default.join(utils_1.REACT_EMAIL_ROOT, 'package.json'), JSON.stringify(pkg));
169
177
  };
170
- const installDependencies = async () => {
178
+ const installDependencies = async (packageManager) => {
171
179
  const spinner = (0, ora_1.default)('Installing dependencies...\n').start();
172
180
  shelljs_1.default.cd(path_1.default.join(utils_1.REACT_EMAIL_ROOT));
173
- shelljs_1.default.exec('yarn');
181
+ shelljs_1.default.exec(`${packageManager} install`);
174
182
  spinner.stopAndPersist({
175
183
  symbol: log_symbols_1.default.success,
176
184
  text: 'Dependencies installed',
@@ -35,6 +35,7 @@ const log_symbols_1 = __importDefault(require("log-symbols"));
35
35
  const render_1 = require("@react-email/render");
36
36
  const fs_1 = require("fs");
37
37
  const cpy_1 = __importDefault(require("cpy"));
38
+ const normalize_path_1 = __importDefault(require("normalize-path"));
38
39
  const utils_1 = require("../utils");
39
40
  /*
40
41
  This first builds all the templates using esbuild and then puts the output in the `.js`
@@ -43,7 +44,7 @@ const utils_1 = require("../utils");
43
44
  */
44
45
  const exportTemplates = async (outDir, pretty) => {
45
46
  const spinner = (0, ora_1.default)('Preparing files...\n').start();
46
- const allTemplates = glob_1.glob.sync(`${utils_1.CLIENT_EMAILS_PATH}/*.{tsx,jsx}`);
47
+ const allTemplates = glob_1.glob.sync((0, normalize_path_1.default)(`${utils_1.CLIENT_EMAILS_PATH}/*.{tsx,jsx}`));
47
48
  esbuild_1.default.buildSync({
48
49
  bundle: true,
49
50
  entryPoints: allTemplates,
@@ -51,7 +52,7 @@ const exportTemplates = async (outDir, pretty) => {
51
52
  write: true,
52
53
  outdir: outDir,
53
54
  });
54
- const allBuiltTemplates = glob_1.glob.sync(`${outDir}/*.js`, {
55
+ const allBuiltTemplates = glob_1.glob.sync((0, normalize_path_1.default)(`${outDir}/*.js`), {
55
56
  absolute: true,
56
57
  });
57
58
  for (const template of allBuiltTemplates) {
package/dist/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-email",
3
- "version": "1.5.1",
3
+ "version": "1.6.0",
4
4
  "description": "A live preview of your emails right in your browser.",
5
5
  "bin": {
6
6
  "email": "./dist/index.js"
@@ -30,13 +30,15 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@commander-js/extra-typings": "9.4.1",
33
- "@react-email/render": "*",
33
+ "@react-email/render": "0.0.3",
34
34
  "chokidar": "3.5.3",
35
35
  "commander": "9.4.1",
36
36
  "cpy": "8.1.2",
37
+ "detect-package-manager": "2.0.1",
37
38
  "esbuild": "0.16.4",
38
39
  "glob": "8.0.3",
39
40
  "log-symbols": "4.1.0",
41
+ "normalize-path": "3.0.0",
40
42
  "ora": "5.4.1",
41
43
  "read-pkg": "5.2.0",
42
44
  "shelljs": "0.8.5",
@@ -44,6 +46,7 @@
44
46
  },
45
47
  "devDependencies": {
46
48
  "@types/node": "18.11.9",
49
+ "@types/normalize-path": "3.0.0",
47
50
  "@types/shelljs": "0.8.11",
48
51
  "prettier": "2.7.1",
49
52
  "ts-node": "10.9.1"
@@ -4,6 +4,7 @@ import {
4
4
  checkPackageIsUpToDate,
5
5
  CLIENT_EMAILS_PATH,
6
6
  createDirectory,
7
+ CURRENT_PATH,
7
8
  PACKAGE_EMAILS_PATH,
8
9
  REACT_EMAIL_ROOT,
9
10
  SRC_PATH,
@@ -19,6 +20,7 @@ import { utils } from '../_preview/utils';
19
20
  import { root } from '../_preview/root';
20
21
  import { pages } from '../_preview/pages';
21
22
  import copy from 'cpy';
23
+ import { detect as detectPackageManager } from 'detect-package-manager';
22
24
  import logSymbols from 'log-symbols';
23
25
  import ora from 'ora';
24
26
  import readPackage from 'read-pkg';
@@ -28,14 +30,20 @@ import { styles } from '../_preview/styles';
28
30
  export const dev = async () => {
29
31
  try {
30
32
  const hasReactEmailDirectory = checkDirectoryExist(REACT_EMAIL_ROOT);
33
+ let packageManager: PackageManager;
34
+ try {
35
+ packageManager = await detectPackageManager({ cwd: CURRENT_PATH });
36
+ } catch (_) {
37
+ packageManager = 'yarn';
38
+ }
31
39
 
32
40
  if (hasReactEmailDirectory) {
33
41
  const isUpToDate = await checkPackageIsUpToDate();
34
42
 
35
43
  if (isUpToDate) {
36
44
  await Promise.all([generateEmailsPreview(), syncPkg()]);
37
- await installDependencies();
38
- shell.exec('yarn dev', { async: true });
45
+ await installDependencies(packageManager);
46
+ shell.exec(`${packageManager} run dev`, { async: true });
39
47
  watcher();
40
48
  return;
41
49
  }
@@ -47,8 +55,8 @@ export const dev = async () => {
47
55
  await createAppDirectories();
48
56
  await createAppFiles();
49
57
  await Promise.all([generateEmailsPreview(), syncPkg()]);
50
- await installDependencies();
51
- shell.exec('yarn dev', { async: true });
58
+ await installDependencies(packageManager);
59
+ shell.exec(`${packageManager} run dev`, { async: true });
52
60
  watcher();
53
61
  } catch (error) {
54
62
  await watcherInstance.close();
@@ -218,11 +226,13 @@ const syncPkg = async () => {
218
226
  );
219
227
  };
220
228
 
221
- const installDependencies = async () => {
229
+ type PackageManager = 'yarn' | 'npm' | 'pnpm';
230
+
231
+ const installDependencies = async (packageManager: PackageManager) => {
222
232
  const spinner = ora('Installing dependencies...\n').start();
223
233
 
224
234
  shell.cd(path.join(REACT_EMAIL_ROOT));
225
- shell.exec('yarn');
235
+ shell.exec(`${packageManager} install`);
226
236
  spinner.stopAndPersist({
227
237
  symbol: logSymbols.success,
228
238
  text: 'Dependencies installed',
@@ -6,6 +6,7 @@ import logSymbols from 'log-symbols';
6
6
  import { render } from '@react-email/render';
7
7
  import { unlinkSync, writeFileSync } from 'fs';
8
8
  import copy from 'cpy';
9
+ import normalize from 'normalize-path';
9
10
  import { checkDirectoryExist, CLIENT_EMAILS_PATH } from '../utils';
10
11
 
11
12
  /*
@@ -15,7 +16,7 @@ import { checkDirectoryExist, CLIENT_EMAILS_PATH } from '../utils';
15
16
  */
16
17
  export const exportTemplates = async (outDir: string, pretty: boolean) => {
17
18
  const spinner = ora('Preparing files...\n').start();
18
- const allTemplates = glob.sync(`${CLIENT_EMAILS_PATH}/*.{tsx,jsx}`);
19
+ const allTemplates = glob.sync(normalize(`${CLIENT_EMAILS_PATH}/*.{tsx,jsx}`));
19
20
 
20
21
  esbuild.buildSync({
21
22
  bundle: true,
@@ -25,7 +26,7 @@ export const exportTemplates = async (outDir: string, pretty: boolean) => {
25
26
  outdir: outDir,
26
27
  });
27
28
 
28
- const allBuiltTemplates = glob.sync(`${outDir}/*.js`, {
29
+ const allBuiltTemplates = glob.sync(normalize(`${outDir}/*.js`), {
29
30
  absolute: true,
30
31
  });
31
32