@newlogic-digital/core 1.0.6 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/index.js +38 -2
  2. package/package.json +2 -2
package/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import tailwind from '@vituum/tailwind'
2
1
  import posthtml from '@vituum/posthtml'
3
2
  import juice from '@vituum/juice'
4
3
  import twig from '@vituum/twig'
@@ -6,9 +5,19 @@ import latte from '@vituum/latte'
6
5
  import lodash from 'lodash'
7
6
  import minifier from 'html-minifier-terser'
8
7
  import fs from 'fs'
8
+ import fse from 'fs-extra'
9
9
  import { dirname, resolve } from 'path'
10
10
  import postHtml from 'posthtml'
11
11
  import highlight from './prism.js'
12
+ import tailwindcss from 'tailwindcss'
13
+ import tailwindcssNesting from 'tailwindcss/nesting/index.js'
14
+ import postcssImport from 'postcss-import'
15
+ import postcssNesting from 'postcss-nesting'
16
+ import postcssCustomMedia from 'postcss-custom-media'
17
+ import postcssCustomSelectors from 'postcss-custom-selectors'
18
+ import autoprefixer from 'autoprefixer'
19
+ import chalk from 'chalk'
20
+ import FastGlob from 'fast-glob'
12
21
 
13
22
  const posthtmlPrism = {
14
23
  name: '@vituum/vite-plugin-posthtml-prism',
@@ -76,6 +85,10 @@ const parseMinifyHtml = async (input, name) => {
76
85
 
77
86
  const defaultConfig = {
78
87
  format: 'twig',
88
+ emails: {
89
+ outputDir: resolve(process.cwd(), 'public/emails'),
90
+ prodDir: resolve(process.cwd(), 'app/Templates/Emails')
91
+ },
79
92
  posthtml: {},
80
93
  juice: {},
81
94
  tailwind: {},
@@ -250,7 +263,23 @@ const integration = (userConfig = {}) => {
250
263
 
251
264
  return {
252
265
  config: {
253
- integrations: [posthtml(userConfig.posthtml), juice(userConfig.juice), tailwind(userConfig.tailwind), twig(userConfig.twig), latte(userConfig.latte)],
266
+ integrations: [posthtml(userConfig.posthtml), juice(userConfig.juice), twig(userConfig.twig), latte(userConfig.latte), {
267
+ task: {
268
+ name: 'emails',
269
+ action: async () => {
270
+ const emails = FastGlob.sync(`${resolve(process.cwd(), userConfig.emails.outputDir)}/**`).filter(entry => entry.endsWith('prod.html'))
271
+ const emailsProd = emails.map(path => {
272
+ return path.replace(resolve(process.cwd(), userConfig.emails.outputDir), resolve(process.cwd(), userConfig.emails.prodDir)).replace('.prod.html', '.latte')
273
+ })
274
+
275
+ await Promise.all(emails.map((file, i) =>
276
+ fse.move(file, emailsProd[i])
277
+ ))
278
+
279
+ console.info(`${chalk.cyan(`newlogic-core`)} ${chalk.green('all email files moved')}`)
280
+ }
281
+ }
282
+ }],
254
283
  plugins: [posthtmlPrism],
255
284
  server: {
256
285
  open: true,
@@ -266,6 +295,13 @@ const integration = (userConfig = {}) => {
266
295
  vite: {
267
296
  server: {
268
297
  origin: fs.existsSync(resolve(process.cwd(), 'app/settings.php')) ? (fs.readFileSync(resolve(process.cwd(), 'app/settings.php')).toString().match(/VITE_URL = '(.+)';/) || [null, null])[1] : null
298
+ },
299
+ css: {
300
+ postcss: {
301
+ plugins: [postcssImport, tailwindcssNesting(postcssNesting({
302
+ noIsPseudoSelector: true
303
+ })), postcssCustomMedia, postcssCustomSelectors, tailwindcss(userConfig.tailwind), autoprefixer]
304
+ }
269
305
  }
270
306
  }
271
307
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@newlogic-digital/core",
3
3
  "type": "module",
4
- "version": "1.0.6",
4
+ "version": "1.0.8",
5
5
  "main": "index.js",
6
6
  "author": "New Logic Studio s.r.o.",
7
7
  "description": "Set of tools that can be used to create modern web applications",
@@ -19,7 +19,7 @@
19
19
  "prismjs": "^1.29.0",
20
20
  "html-minifier-terser": "^7.0.0",
21
21
  "lodash": "^4.17.21",
22
- "vituum": "^0.0.29"
22
+ "vituum": "^0.0.32"
23
23
  },
24
24
  "files": [
25
25
  "latte",