@startupjs/bundler 0.42.0 → 0.43.1

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.
@@ -9,6 +9,8 @@ module.exports = function cssToReactNative (source) {
9
9
  for (const key in cssObject.__exportProps || {}) {
10
10
  cssObject[key] = parseStylValue(cssObject.__exportProps[key])
11
11
  }
12
+ // save hash to use with the caching system of @startupjs/cache
13
+ cssObject.__hash__ = simpleNumericHash(JSON.stringify(cssObject))
12
14
  return 'module.exports = ' + JSON.stringify(cssObject)
13
15
  }
14
16
 
@@ -76,3 +78,9 @@ function escapeExport (source) {
76
78
 
77
79
  return source
78
80
  }
81
+
82
+ // ref: https://gist.github.com/hyamamoto/fd435505d29ebfa3d9716fd2be8d42f0?permalink_comment_id=2694461#gistcomment-2694461
83
+ function simpleNumericHash (s) {
84
+ for (var i = 0, h = 0; i < s.length; i++) h = Math.imul(31, h) + s.charCodeAt(i) | 0
85
+ return h
86
+ }
@@ -7,7 +7,6 @@ const stylusToCssLoader = require('./stylusToCssLoader')
7
7
  const cssToReactNativeLoader = require('./cssToReactNativeLoader')
8
8
  const mdxExamplesLoader = require('./mdxExamplesLoader')
9
9
  const mdxLoader = require('./mdxLoader')
10
- const replaceObserverLoader = require('./replaceObserverLoader')
11
10
  const callLoader = require('./callLoader')
12
11
 
13
12
  module.exports.transform = function ({ src, filename, options = {} }) {
@@ -24,10 +23,6 @@ module.exports.transform = function ({ src, filename, options = {} }) {
24
23
  } else if (/\.svg$/.test(filename)) {
25
24
  return svgTransformer.transform({ src, filename, options })
26
25
  } else if (/\.[cm]?jsx?$/.test(filename) && /['"]startupjs['"]/.test(src)) {
27
- // Fix Fast Refresh to work with observer() decorator.
28
- // For details view ./replaceObserverLoader.js
29
- src = src.replace(/(?:\/\*(?:[\s\S]*?)\*\/)|(?:^\s*\/\/(?:.*)$)/gm, '')
30
- src = callLoader(replaceObserverLoader, src, filename)
31
26
  return upstreamTransformer.transform({ src, filename, options })
32
27
  } else if (/\.mdx?$/.test(filename)) {
33
28
  src = callLoader(mdxExamplesLoader, src, filename)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@startupjs/bundler",
3
- "version": "0.42.0",
3
+ "version": "0.43.1",
4
4
  "description": "Opinionated scripts and configs to develop a react-native-web project",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
@@ -21,12 +21,12 @@
21
21
  "@pmmmwh/react-refresh-webpack-plugin": "^0.5.1",
22
22
  "@startupjs/babel-plugin-react-css-modules": "^6.5.4-1",
23
23
  "@startupjs/css-to-react-native-transform": "^1.9.0-1",
24
- "@startupjs/plugin": "^0.42.0",
24
+ "@startupjs/plugin": "^0.43.1",
25
25
  "@svgr/webpack": "~5.5.0",
26
26
  "assets-webpack-plugin": "^7.1.1",
27
27
  "autoprefixer": "^10.4.0",
28
28
  "babel-loader": "^8.2.3",
29
- "babel-preset-startupjs": "^0.42.0",
29
+ "babel-preset-startupjs": "^0.43.1",
30
30
  "css-loader": "^6.5.0",
31
31
  "css-minimizer-webpack-plugin": "^3.1.1",
32
32
  "file-loader": "^6.2.0",
@@ -50,5 +50,5 @@
50
50
  "peerDependencies": {
51
51
  "react-native-svg": ">= 12.1.0"
52
52
  },
53
- "gitHead": "c1f6702f87fc833d73ee693bb353304b9279a917"
53
+ "gitHead": "bc78f4f93ade4f233cf31f197cd25377388a6f74"
54
54
  }
@@ -1,6 +1,6 @@
1
1
  const { getPluginConfigs } = require('@startupjs/plugin/manager.cjs')
2
+ const { getLocalIdent } = require('@startupjs/babel-plugin-react-css-modules/utils')
2
3
  const pickBy = require('lodash/pickBy')
3
- const pick = require('lodash/pick')
4
4
  const fs = require('fs')
5
5
  const path = require('path')
6
6
  const AssetsPlugin = require('assets-webpack-plugin')
@@ -10,7 +10,6 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
10
10
  const CssMinimizerPlugin = require('css-minimizer-webpack-plugin')
11
11
  const { LOCAL_IDENT_NAME } = require('babel-preset-startupjs/constants')
12
12
  const autoprefixer = require('autoprefixer')
13
- const { getLocalIdent } = require('@startupjs/babel-plugin-react-css-modules/utils')
14
13
  const DEV_PORT = ~~process.env.DEV_PORT || 3010
15
14
  const PROD = !process.env.WEBPACK_DEV
16
15
  const STYLES_PATH = path.join(process.cwd(), '/styles/index.styl')
@@ -19,7 +18,6 @@ const BUILD_PATH = path.join(process.cwd(), BUILD_DIR)
19
18
  const BUNDLE_NAME = 'main'
20
19
  const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin')
21
20
  const webpack = require('webpack')
22
- const { getJsxRule } = require('./helpers')
23
21
  const DEFAULT_MODE = 'react-native'
24
22
  const PLUGINS = getPluginConfigs()
25
23
 
@@ -35,7 +33,8 @@ const DEFAULT_ALIAS = {
35
33
  // fix warning requiring './locale': https://github.com/moment/moment/issues/1435
36
34
  moment$: 'moment/moment.js',
37
35
  'react-native': 'react-native-web',
38
- 'react-router-native': 'react-router-dom'
36
+ 'react-router-native': 'react-router-dom',
37
+ '@fortawesome/react-native-fontawesome': '@fortawesome/react-fontawesome'
39
38
  }
40
39
 
41
40
  let DEFAULT_ENTRIES = [
@@ -186,36 +185,30 @@ module.exports = function getConfig (env, {
186
185
  module: {
187
186
  rules: [
188
187
  {
189
- test: getJsxRule().test,
188
+ test: /\.[mc]?[jt]sx?$/,
190
189
  resolve: {
191
190
  fullySpecified: false
192
191
  },
193
192
  exclude: /node_modules/,
194
193
  use: [
195
- pick(getJsxRule(), ['loader', 'options']),
196
- {
197
- loader: require.resolve('./lib/replaceObserverLoader.js')
198
- }
194
+ { loader: 'babel-loader' }
199
195
  ]
200
196
  },
201
197
  {
202
- test: getJsxRule().test,
198
+ test: /\.[mc]?[jt]sx?$/,
203
199
  resolve: {
204
200
  fullySpecified: false
205
201
  },
206
202
  include: new RegExp(`node_modules/(?:react-native-(?!web)|${forceCompileModules.join('|')})`),
207
203
  use: [
208
- pick(getJsxRule(), ['loader', 'options']),
209
- {
210
- loader: require.resolve('./lib/replaceObserverLoader.js')
211
- }
204
+ { loader: 'babel-loader' }
212
205
  ]
213
206
  },
214
207
  {
215
208
  test: /\.mdx?$/,
216
209
  exclude: /node_modules/,
217
210
  use: [
218
- pick(getJsxRule(), ['loader', 'options']),
211
+ { loader: 'babel-loader' },
219
212
  {
220
213
  loader: '@mdx-js/loader'
221
214
  },
@@ -278,7 +271,7 @@ module.exports = function getConfig (env, {
278
271
  }
279
272
  }
280
273
  ] : [
281
- pick(getJsxRule(), ['loader', 'options']),
274
+ { loader: 'babel-loader' },
282
275
  {
283
276
  loader: require.resolve('./lib/cssToReactNativeLoader.js')
284
277
  },
@@ -301,12 +294,13 @@ module.exports = function getConfig (env, {
301
294
  loader: 'css-loader',
302
295
  options: {
303
296
  modules: {
297
+ getLocalIdent,
304
298
  localIdentName: LOCAL_IDENT_NAME
305
299
  }
306
300
  }
307
301
  }
308
302
  ] : [
309
- pick(getJsxRule(), ['loader', 'options']),
303
+ { loader: 'babel-loader' },
310
304
  {
311
305
  loader: require.resolve('./lib/cssToReactNativeLoader.js')
312
306
  }