@tarojs/rn-runner 3.5.0-alpha.13 → 3.5.0-alpha.16

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.
Files changed (52) hide show
  1. package/.eslintrc.js +2 -1
  2. package/__tests__/__snapshots__/components.spec.ts.snap +523 -0
  3. package/__tests__/build.spec.ts +3 -3
  4. package/__tests__/components.spec.ts +103 -0
  5. package/__tests__/config.spec.ts +1 -1
  6. package/__tests__/global.d.ts +11 -0
  7. package/__tests__/mock/build_testdata.ts +58 -0
  8. package/__tests__/mock/{build_testdata.js → components_testdata.ts} +4 -9
  9. package/__tests__/mock/config/index.js +1 -0
  10. package/__tests__/mock/src/app.config.ts +13 -0
  11. package/__tests__/mock/src/app.scss +0 -0
  12. package/__tests__/mock/src/app.tsx +15 -0
  13. package/__tests__/mock/src/components/cell/index.scss +25 -0
  14. package/__tests__/mock/src/components/cell/index.tsx +38 -0
  15. package/__tests__/mock/src/components/navbar/icon_back.webp +0 -0
  16. package/__tests__/mock/src/components/navbar/index.scss +29 -0
  17. package/__tests__/mock/src/components/navbar/index.tsx +36 -0
  18. package/__tests__/mock/src/components/navbar/resolver.rn.ts +1 -0
  19. package/__tests__/mock/src/components/navbar/resolver.ts +1 -0
  20. package/__tests__/mock/src/components/svg/index.tsx +6 -0
  21. package/__tests__/mock/src/components/svg/rollup-logo.svg +3 -0
  22. package/__tests__/mock/src/utils/dynamicImport/index.ts +3 -0
  23. package/__tests__/mock/src/utils/namedExport/index.js +2 -0
  24. package/__tests__/mock/src/utils/requireLodash/index.ts +5 -0
  25. package/__tests__/mock/src/utils/requireReactNative/index.js +2 -0
  26. package/__tests__/tsconfig.json +8 -0
  27. package/dist/config/build-component.js +162 -0
  28. package/dist/config/build-component.js.map +1 -0
  29. package/dist/config/config-holder.js +1 -1
  30. package/dist/config/config-holder.js.map +1 -1
  31. package/dist/config/index.js +4 -4
  32. package/dist/config/index.js.map +1 -1
  33. package/dist/config/preview.js +6 -6
  34. package/dist/config/preview.js.map +1 -1
  35. package/dist/config/terminal-reporter.js +3 -3
  36. package/dist/config/terminal-reporter.js.map +1 -1
  37. package/dist/index.js +26 -19
  38. package/dist/index.js.map +1 -1
  39. package/dist/utils.js +1 -1
  40. package/dist/utils.js.map +1 -1
  41. package/index.js +1 -0
  42. package/jest.config.js +3 -30
  43. package/package.json +38 -25
  44. package/src/config/build-component.ts +171 -0
  45. package/src/config/config-holder.ts +2 -1
  46. package/src/config/index.ts +15 -14
  47. package/src/config/preview.ts +7 -6
  48. package/src/config/terminal-reporter.ts +3 -3
  49. package/src/index.ts +33 -22
  50. package/src/types/index.ts +33 -33
  51. package/src/utils.ts +1 -1
  52. package/tsconfig.json +3 -5
@@ -1,10 +1,10 @@
1
- import build from '../dist/index'
1
+ import build from '../src/index'
2
2
  import { appPath, config, configNoWatch } from './mock/build_testdata'
3
3
 
4
- const Metro = require('metro')
4
+ const outputBundle = require('metro/src/shared/output/bundle')
5
5
 
6
6
  describe('init', () => {
7
- jest.spyOn(Metro, 'runBuild').mockImplementation(() => {
7
+ jest.spyOn(outputBundle, 'build').mockImplementation(() => {
8
8
  return 'ok'
9
9
  })
10
10
 
@@ -0,0 +1,103 @@
1
+ import * as path from 'path'
2
+
3
+ import runner from '../dist/index'
4
+ import { build } from '../src/config/build-component'
5
+ import { appPath, config } from './mock/components_testdata'
6
+
7
+ const getCode = (result) => result.output.map(chunk => chunk.code)
8
+
9
+ describe('build_components', () => {
10
+ const spy = jest.spyOn(process, 'cwd')
11
+ spy.mockReturnValue(path.resolve(__dirname, '', 'mock'))
12
+ // metro runServer 容易超时
13
+ jest.setTimeout(300000)
14
+
15
+ it('single component', async () => {
16
+ const result = await runner(appPath, {
17
+ ...config,
18
+ nativeComponents: {
19
+ external: ['react', 'react-native', /@tarojs\/components-rn/, /@babel\/runtime/],
20
+ output: 'dist/single'
21
+ }
22
+ })
23
+ expect(getCode(result)).toMatchSnapshot()
24
+ })
25
+
26
+ it('nativeComponents  not set', async () => {
27
+ const result = await runner(appPath, {
28
+ ...config
29
+ })
30
+ expect(getCode(result)).toMatchSnapshot()
31
+ })
32
+
33
+ it('multiple components', async () => {
34
+ const result = await build(config, {
35
+ input: ['components/cell/index', 'components/navbar/index'],
36
+ sourceRootPath: path.resolve(__dirname, './mock/src'),
37
+ output: path.resolve(__dirname, './mock/dist/multiple'),
38
+ external: ['react', 'react-native', /@tarojs\/components-rn/, /@tarojs\/taro-rn/, /@babel\/runtime/],
39
+ externalResolve: () => {}
40
+ })
41
+ expect(getCode(result)).toMatchSnapshot()
42
+ })
43
+
44
+ it('modify rollup config', async () => {
45
+ const result = await build(config, {
46
+ input: ['components/cell/index', 'components/navbar/index'],
47
+ sourceRootPath: path.resolve(__dirname, './mock/src'),
48
+ modifyRollupConfig: config => {
49
+ const { input, ...others } = config
50
+ return {
51
+ ...others,
52
+ input: Object.entries(input as Record<string, string>).reduce(
53
+ (pre, cur) => Object.assign(pre, { [cur[0].replace('components/', '')]: cur[1] }),
54
+ {}
55
+ ),
56
+ output: { dir: path.resolve(__dirname, './mock/dist/modify-config') }
57
+ }
58
+ }
59
+ })
60
+ expect(getCode(result)).toMatchSnapshot()
61
+ })
62
+
63
+ it('svg transform', async () => {
64
+ const result = await build(config, {
65
+ input: ['components/svg/index'],
66
+ sourceRootPath: path.resolve(__dirname, './mock/src'),
67
+ output: path.resolve(__dirname, './mock/dist/svg'),
68
+ external: ['react', 'react-native', /@tarojs\/components-rn/, /@tarojs\/taro-rn/, /@babel\/runtime/],
69
+ externalResolve: () => {}
70
+ })
71
+ expect(getCode(result)).toMatchSnapshot()
72
+ })
73
+
74
+ it('named export', async () => {
75
+ const result = await build(config, {
76
+ input: ['utils/namedExport/index'],
77
+ sourceRootPath: path.resolve(__dirname, './mock/src'),
78
+ externalResolve: () => {},
79
+ output: path.resolve(__dirname, './mock/dist/named-export')
80
+ })
81
+ expect(getCode(result)).toMatchSnapshot()
82
+ })
83
+
84
+ it('dynamic require', async () => {
85
+ const result = await build(config, {
86
+ input: ['utils/dynamicImport/index'],
87
+ sourceRootPath: path.resolve(__dirname, './mock/src'),
88
+ externalResolve: () => {},
89
+ output: path.resolve(__dirname, './mock/dist/dynamic-import')
90
+ })
91
+ expect(getCode(result)).toMatchSnapshot()
92
+ })
93
+
94
+ it('require react-native component', async () => {
95
+ const result = await build(config, {
96
+ input: ['utils/requireReactNative/index'],
97
+ sourceRootPath: path.resolve(__dirname, './mock/src'),
98
+ externalResolve: () => {},
99
+ output: path.resolve(__dirname, './mock/dist/require-native')
100
+ })
101
+ expect(getCode(result)).toMatchSnapshot()
102
+ })
103
+ })
@@ -1,4 +1,4 @@
1
- import { getRNConfigBabelPlugin, getRNConfigEntry, getRNConfigOutput, getRNConfigTransformer } from '../dist/config/config-holder'
1
+ import { getRNConfigBabelPlugin, getRNConfigEntry, getRNConfigOutput, getRNConfigTransformer } from '../src/config/config-holder'
2
2
 
3
3
  const path = require('path')
4
4
 
@@ -0,0 +1,11 @@
1
+ declare module '*.png';
2
+ declare module '*.gif';
3
+ declare module '*.jpg';
4
+ declare module '*.jpeg';
5
+ declare module '*.webp';
6
+ declare module '*.svg';
7
+ declare module '*.css';
8
+ declare module '*.less';
9
+ declare module '*.scss';
10
+ declare module '*.sass';
11
+ declare module '*.styl';
@@ -0,0 +1,58 @@
1
+ const path = require('path')
2
+
3
+ export const appPath = path.resolve(__dirname, '../../../..', '')
4
+
5
+ export const config = {
6
+ entry: 'app',
7
+ copy: { patterns: [], options: {} },
8
+ sourceRoot: 'src',
9
+ outputRoot: 'dist',
10
+ platform: 'rn',
11
+ framework: 'react',
12
+ baseLevel: undefined,
13
+ csso: undefined,
14
+ sass: { options: {}, additionalData: '' },
15
+ uglify: undefined,
16
+ plugins: [],
17
+ projectName: 'taroRnInit',
18
+ env: { NODE_ENV: '"development"' },
19
+ defineConstants: { __TEST__: '"RN测试静态常量"' },
20
+ designWidth: 750,
21
+ deviceRatio: { 640: 1.17, 750: 1, 828: 0.905 },
22
+ terser: undefined,
23
+ appName: '',
24
+ output:
25
+ {
26
+ android: 'androidbundle/index.bundle',
27
+ ios: 'iosbundle/main.bundle'
28
+ },
29
+ postcss:
30
+ {
31
+ options: {},
32
+ scalable: true,
33
+ pxtransform: { enable: true, config: {} }
34
+ },
35
+ less: { options: {}, additionalData: '' },
36
+ stylus: { options: {}, additionalData: '' },
37
+ EXPLORER_PATH: 'src',
38
+ EXPLORER_SHELL: 'yarn run wb-bundle',
39
+ sourceDir: '',
40
+ isWatch: true,
41
+ mode: 'development',
42
+ modifyWebpackChain: [],
43
+ modifyBuildAssets: [],
44
+ modifyMiniConfigs: [],
45
+ onBuildFinish: [],
46
+ nodeModulesPath:
47
+ path.resolve(__dirname, '../../../..', 'node_modules'),
48
+ deviceType: 'android',
49
+ port: undefined,
50
+ buildAdapter: 'rn',
51
+ globalObject: 'global',
52
+ resetCache: true
53
+ }
54
+
55
+ export const configNoWatch = {
56
+ ...config,
57
+ isWatch: false
58
+ }
@@ -1,6 +1,6 @@
1
1
  const path = require('path')
2
2
 
3
- const appPath = path.resolve(__dirname, '../../../..', '')
3
+ const appPath = path.resolve(__dirname, '.', '')
4
4
 
5
5
  const config = {
6
6
  entry: 'app',
@@ -48,16 +48,11 @@ const config = {
48
48
  deviceType: 'android',
49
49
  port: undefined,
50
50
  buildAdapter: 'rn',
51
- globalObject: 'global'
52
- }
53
-
54
- const configNoWatch = {
55
- ...config,
56
- isWatch: false
51
+ globalObject: 'global',
52
+ isBuildNativeComp: true
57
53
  }
58
54
 
59
55
  export {
60
- appPath,
61
56
  config,
62
- configNoWatch
57
+ appPath
63
58
  }
@@ -81,6 +81,7 @@ const config = {
81
81
  ios: 'iosbundle/main.bundle'
82
82
  },
83
83
  alias: {
84
+ 'src': path.resolve(__dirname, '..', 'src/'),
84
85
  '@/components': path.resolve(__dirname, '..', 'src/components'),
85
86
  '@/utils': path.resolve(__dirname, '..', 'src/utils')
86
87
  },
@@ -0,0 +1,13 @@
1
+ export default {
2
+ pages: [
3
+ 'pages/demo/index'
4
+ ],
5
+ components: [
6
+ 'components/cell/index'
7
+ ],
8
+ window: {
9
+ backgroundTextStyle: 'light',
10
+ navigationBarBackgroundColor: '#fff',
11
+ navigationBarTextStyle: 'black'
12
+ }
13
+ }
File without changes
@@ -0,0 +1,15 @@
1
+ import React, { Component } from 'react'
2
+ import { View } from '@tarojs/components'
3
+ import './app.scss'
4
+
5
+ class App extends Component {
6
+ props: any
7
+
8
+ render () {
9
+ return (
10
+ <View>{this.props.children}</View>
11
+ )
12
+ }
13
+ }
14
+
15
+ export default App
@@ -0,0 +1,25 @@
1
+ .cellGroup {
2
+ background-color: white;
3
+ border-radius: 20px;
4
+ }
5
+ .cellItem {
6
+ display: flex;
7
+ flex-direction: row;
8
+ justify-content: space-between;
9
+ padding-left: 30px;
10
+ padding-right: 30px;
11
+ height: 98px;
12
+
13
+ &--care {
14
+ height: 128px;
15
+ }
16
+ }
17
+ .cellItem__title {
18
+ // font-size: 28px;
19
+ color: #333;
20
+ font-weight: bold;
21
+ }
22
+ .cellItem__line {
23
+ height: 1px;
24
+ background-color: #f4f4f4;
25
+ }
@@ -0,0 +1,38 @@
1
+ import React from 'react'
2
+ import { View, Text } from '@tarojs/components'
3
+ import taro from '@tarojs/taro'
4
+ import './index.scss'
5
+
6
+ console.log({taro})
7
+ interface Props {
8
+ className?: string,
9
+ style?: any,
10
+ children?: any
11
+ title?: string
12
+ }
13
+ function Cell ({ children, style }: Props) {
14
+ const childs = Array.isArray(children) ? children : [children]
15
+ return (
16
+ <View className={'cellGroup'} style={{ ...style }}>
17
+ {
18
+ childs.map((it, i) => (
19
+ [it].concat(i === children.length - 1 ? [] : <View key={`line-${i}`} className="cellItem__line"></View>)
20
+ ))
21
+ }
22
+ </View>
23
+ )
24
+ }
25
+ function Item ({ title, children, style }: Props) {
26
+ return <View className={'cellItem'} style={{ ...style }}>
27
+ <Text className="cellItem__title">
28
+ {title}
29
+ </Text>
30
+ <View className="cellItem__content">
31
+ {children}
32
+ </View>
33
+ </View>
34
+ }
35
+
36
+ Cell.Item = Item
37
+
38
+ export default Cell
@@ -0,0 +1,29 @@
1
+ .navbar {
2
+ display: flex;
3
+ flex-direction: row;
4
+ justify-content: space-between;
5
+ align-items: center;
6
+ width: 750px;
7
+ height: 100px;
8
+ background-color: white;
9
+ }
10
+
11
+ .navbar-title {
12
+ &-text {
13
+ font-size: 38px;
14
+ color: #000;
15
+ }
16
+ }
17
+
18
+ .icon-back {
19
+ width: 38px;
20
+ height: 38px;
21
+ }
22
+
23
+ .navbar-leftElement, .navbar-rightElement {
24
+ width: 100px;
25
+ display: flex;
26
+ flex-direction: row;
27
+ justify-content: center;
28
+ align-items: center;
29
+ }
@@ -0,0 +1,36 @@
1
+ import React from 'react'
2
+ import Taro from '@tarojs/taro'
3
+ import { View, Text, Image } from '@tarojs/components'
4
+ import iconBack from './icon_back.webp'
5
+ import './index.scss'
6
+ import 'src/components/navbar/resolver'
7
+
8
+ console.log('isRn', process.env.TARO_ENV === 'rn')
9
+ export default function Navbar (props: Props) {
10
+ const { title, rightElement } = props
11
+ const back = () => Taro.navigateBack()
12
+
13
+ return (
14
+ <View className='navbar'>
15
+ <View className='navbar-leftElement'>
16
+ <Image className='icon-back' src={iconBack} onClick={back}></Image>
17
+ </View>
18
+ <View className='navbar-title'>
19
+ {
20
+ typeof (title) === 'string'
21
+ ? <Text className='navbar-title-text'>{title}</Text>
22
+ : title
23
+ }
24
+ </View>
25
+ <View className='navbar-rightElement'>
26
+ {rightElement}
27
+ </View>
28
+ </View>
29
+ )
30
+ }
31
+
32
+ type Props = {
33
+ title: string | any,
34
+ rightElement?: any,
35
+ back?: () => void,
36
+ };
@@ -0,0 +1 @@
1
+ console.log('rn resolve')
@@ -0,0 +1 @@
1
+ console.log('default resolve')
@@ -0,0 +1,6 @@
1
+ import React from 'react'
2
+ import Logo from "./rollup-logo.svg";
3
+
4
+ export default function () {
5
+ return <Logo className='logo' width={120} height={40} />
6
+ }
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="100" cy="50" r="40" fill="green" />
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ import reactIs from 'react-is'
2
+
3
+ console.log({reactIs})
@@ -0,0 +1,2 @@
1
+ import * as fileBuild from 'expo-file-system/build/FileSystem'
2
+ console.log({fileBuild})
@@ -0,0 +1,5 @@
1
+ import { camelCase } from 'lodash';
2
+ import { parseUrl } from 'query-string';
3
+ const globalAny = global;
4
+
5
+ console.log(globalAny, camelCase, parseUrl)
@@ -0,0 +1,2 @@
1
+ import silblings from 'react-native-root-siblings'
2
+ console.log({silblings})
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../../tsconfig.root.json",
3
+ "compilerOptions": {
4
+ "jsx": "react",
5
+ "sourceMap": true,
6
+ "module": "commonjs"
7
+ }
8
+ }
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.build = void 0;
24
+ const plugin_babel_1 = require("@rollup/plugin-babel");
25
+ const commonjs = require("@rollup/plugin-commonjs");
26
+ const json = require("@rollup/plugin-json");
27
+ const plugin_node_resolve_1 = require("@rollup/plugin-node-resolve");
28
+ const pluginReplace = require("@rollup/plugin-replace");
29
+ const helper_1 = require("@tarojs/helper");
30
+ const rn_style_transformer_1 = require("@tarojs/rn-style-transformer");
31
+ const rn_supporter_1 = require("@tarojs/rn-supporter");
32
+ const rn_transformer_1 = require("@tarojs/rn-transformer");
33
+ const jsx = require("acorn-jsx");
34
+ const path = require("path");
35
+ const rollup_1 = require("rollup");
36
+ const clear = require("rollup-plugin-clear");
37
+ const rollup_plugin_image_file_1 = require("rollup-plugin-image-file");
38
+ const DEFAULT_CONFIG = {
39
+ external: [/^react(\/.*)?$/, /^react-native(\/.*)?$/, /^@react-native/],
40
+ output: 'dist',
41
+ externalResolve: importee => (likeDependent(importee) ? importee : null),
42
+ sourceRootPath: process.cwd(),
43
+ modifyRollupConfig: config => config
44
+ };
45
+ const build = (projectConfig, componentConfig) => __awaiter(void 0, void 0, void 0, function* () {
46
+ const mergedConfig = (0, helper_1.recursiveMerge)(Object.assign({}, DEFAULT_CONFIG), componentConfig);
47
+ const { input, external, output, externalResolve, sourceRootPath, modifyRollupConfig } = mergedConfig;
48
+ const getInputOption = () => {
49
+ const components = Array.isArray(input) ? input : [input];
50
+ const inputOptions = components.reduce((pre, cur) => {
51
+ let absolutePath = cur;
52
+ if (!path.isAbsolute(cur)) {
53
+ absolutePath = path.resolve(sourceRootPath, cur);
54
+ }
55
+ const realPath = (0, rn_supporter_1.resolveExtFile)({ originModulePath: absolutePath }, absolutePath);
56
+ const relativePath = path
57
+ .relative(sourceRootPath, realPath)
58
+ .replace(/\.(js|ts|jsx|tsx)$/, '')
59
+ .replace(/\.{1,}\//g, '');
60
+ return Object.assign(Object.assign({}, pre), { [relativePath]: realPath });
61
+ }, {});
62
+ if (components.length === 1) {
63
+ return {
64
+ index: Object.values(inputOptions)[0]
65
+ };
66
+ }
67
+ return inputOptions;
68
+ };
69
+ const getExternal = () => {
70
+ if (typeof external === 'function') {
71
+ return external(DEFAULT_CONFIG.external);
72
+ }
73
+ const _external = Array.isArray(external) ? external : [external];
74
+ return _external.filter(Boolean).map(item => {
75
+ if (item.test)
76
+ return item;
77
+ const match = item.match(/^\/(.+)\/$/);
78
+ return match ? new RegExp(match[1]) : item;
79
+ });
80
+ };
81
+ const rollupOptions = {
82
+ input: getInputOption(),
83
+ output: {
84
+ format: 'es',
85
+ dir: output
86
+ },
87
+ external: getExternal(),
88
+ // @ts-ignore react native 相关的一些库中可能包含 jsx 语法
89
+ acornInjectPlugins: [jsx()],
90
+ plugins: [
91
+ clear({ targets: [output] }),
92
+ // TODO: 使用 react-native-svg-transformer 处理
93
+ // @ts-ignore
94
+ (0, rollup_plugin_image_file_1.default)({
95
+ extensions: ['.jpg', '.jpeg', '.png', '.webp', '.gif', '.svg', '.svgx']
96
+ }),
97
+ // @ts-ignore
98
+ json(),
99
+ (0, rn_supporter_1.rollupResolver)({
100
+ externalResolve
101
+ }),
102
+ (0, plugin_node_resolve_1.default)({
103
+ extensions: ['.mjs', '.js', '.json', '.node', '.ts', '.tsx']
104
+ }),
105
+ // @ts-ignore
106
+ pluginReplace({
107
+ 'process.env.NODE_ENV': JSON.stringify('production')
108
+ }),
109
+ // @ts-ignore
110
+ commonjs(),
111
+ (0, plugin_babel_1.default)({
112
+ babelHelpers: 'runtime',
113
+ presets: [
114
+ [
115
+ 'babel-preset-taro',
116
+ {
117
+ framework: 'react',
118
+ ts: true,
119
+ reactJsxRuntime: projectConfig.reactJsxRuntime || 'automatic',
120
+ disableImportExportTransform: true
121
+ }
122
+ ]
123
+ ],
124
+ extensions: ['js', 'ts', 'jsx', 'tsx']
125
+ }),
126
+ (0, rn_style_transformer_1.rollupTransform)({ config: projectConfig })
127
+ ]
128
+ };
129
+ const newRollupOptions = modifyRollupConfig(rollupOptions, {
130
+ taroResolver: rn_supporter_1.rollupResolver,
131
+ styleTransformer: rn_style_transformer_1.rollupTransform
132
+ });
133
+ const { output: outputOptions } = newRollupOptions, inputOptions = __rest(newRollupOptions, ["output"]);
134
+ let bundle;
135
+ try {
136
+ bundle = yield (0, rollup_1.rollup)(inputOptions);
137
+ const result = yield bundle.write(outputOptions);
138
+ return result;
139
+ }
140
+ catch (error) {
141
+ console.error(error);
142
+ }
143
+ if (bundle) {
144
+ yield bundle.close();
145
+ }
146
+ });
147
+ exports.build = build;
148
+ function likeDependent(str) {
149
+ return !str.match(/^\.?\.\//) && !path.isAbsolute(str);
150
+ }
151
+ function default_1(projectPath, config) {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ const { sourceRoot, entry, nativeComponents } = config;
154
+ const appPath = path.join(projectPath, sourceRoot, entry);
155
+ const appConfig = (0, rn_transformer_1.getAppConfig)(appPath);
156
+ const { output = DEFAULT_CONFIG.output } = nativeComponents || {};
157
+ const componentConfig = Object.assign(Object.assign({}, nativeComponents), { input: appConfig === null || appConfig === void 0 ? void 0 : appConfig.components, output: path.join(projectPath, output), sourceRootPath: path.join(projectPath, sourceRoot) });
158
+ return (0, exports.build)(config, componentConfig);
159
+ });
160
+ }
161
+ exports.default = default_1;
162
+ //# sourceMappingURL=build-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-component.js","sourceRoot":"","sources":["../../src/config/build-component.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRNConfigBabelPlugin = exports.getRNConfigTransformer = exports.getRNConfigOutput = exports.getRNConfigEntry = exports.getRNConfig = exports.getConfig = void 0;
3
+ exports.getRNConfigTransformer = exports.getRNConfigOutput = exports.getRNConfigEntry = exports.getRNConfigBabelPlugin = exports.getRNConfig = exports.getConfig = void 0;
4
4
  const lodash_1 = require("lodash");
5
5
  const fs = require('fs');
6
6
  let config;
@@ -1 +1 @@
1
- {"version":3,"file":"config-holder.js","sourceRoot":"","sources":["../../src/config/config-holder.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAG9B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,IAAI,MAAc,CAAA;AAClB,IAAI,QAAkB,CAAA;AAEtB,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,kBAAkB,CAAA;IACnD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,cAAK,CAAC,CAAA;QACxD,OAAO,MAAM,CAAA;KACd;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxB,MAAM,GAAG,EAAE,CAAA;QACX,OAAO,MAAM,CAAA;KACd;AACH,CAAC,CAAA;AAiDQ,8BAAS;AA/ClB,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,SAAS,EAAE,CAAA;IACX,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,IAAI,MAAM,CAAC,EAAE,EAAE;QACb,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;KACrB;SAAM;QACL,QAAQ,GAAG,EAAE,CAAA;KACd;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAsCmB,kCAAW;AApC/B,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,WAAW,EAAE,CAAA;IACb,OAAO,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAA;AAChC,CAAC,CAAA;AAiCgC,4CAAgB;AA/BjD,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,EAAE;IAC9B,WAAW,EAAE,CAAA;IACb,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,IAAI,CAAC,KAAK,KAAK,EAAE;YACf,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAA;SAC3B;aAAM;YACL,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAA;SAC/B;KACF;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAoBkD,8CAAiB;AAlBpE,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,WAAW,EAAE,CAAA;IACb,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxB,OAAO,QAAQ,CAAC,WAAW,CAAA;KAC5B;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAWqE,wDAAsB;AAT5F,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,WAAW,EAAE,CAAA;IACb,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxB,OAAO,QAAQ,CAAC,WAAW,CAAA;KAC5B;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAE6F,wDAAsB"}
1
+ {"version":3,"file":"config-holder.js","sourceRoot":"","sources":["../../src/config/config-holder.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAI9B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,IAAI,MAAc,CAAA;AAClB,IAAI,QAAkB,CAAA;AAEtB,MAAM,SAAS,GAAG,GAAG,EAAE;IACrB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IACzB,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,kBAAkB,CAAA;IACnD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC3B,MAAM,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,cAAK,CAAC,CAAA;QACxD,OAAO,MAAM,CAAA;KACd;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACxB,MAAM,GAAG,EAAE,CAAA;QACX,OAAO,MAAM,CAAA;KACd;AACH,CAAC,CAAA;AAiDQ,8BAAS;AA/ClB,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,SAAS,EAAE,CAAA;IACX,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,IAAI,MAAM,CAAC,EAAE,EAAE;QACb,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;KACrB;SAAM;QACL,QAAQ,GAAG,EAAE,CAAA;KACd;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAsCmB,kCAAW;AApC/B,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC5B,WAAW,EAAE,CAAA;IACb,OAAO,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAA;AAChC,CAAC,CAAA;AAiCwD,4CAAgB;AA/BzE,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,EAAE;IAC9B,WAAW,EAAE,CAAA;IACb,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,IAAI,CAAC,KAAK,KAAK,EAAE;YACf,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAA;SAC3B;aAAM;YACL,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAA;SAC/B;KACF;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAoB0E,8CAAiB;AAlB5F,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,WAAW,EAAE,CAAA;IACb,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxB,OAAO,QAAQ,CAAC,WAAW,CAAA;KAC5B;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAW6F,wDAAsB;AATpH,MAAM,sBAAsB,GAAG,GAAG,EAAE;IAClC,WAAW,EAAE,CAAA;IACb,IAAI,QAAQ,CAAC,WAAW,EAAE;QACxB,OAAO,QAAQ,CAAC,WAAW,CAAA;KAC5B;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAEgC,wDAAsB"}