Skip to content
This repository was archived by the owner on May 29, 2022. It is now read-only.

Commit 7a4ca9d

Browse files
committed
feat(all): add stripMetadata method; changed config typings
1 parent 2d4cfd4 commit 7a4ca9d

File tree

4 files changed

+393
-191
lines changed

4 files changed

+393
-191
lines changed

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@
2929
},
3030
"homepage": "https://github.com/easy-webpack/core#readme",
3131
"devDependencies": {
32-
"ava": "^0.15.2",
32+
"ava": "^0.16.0",
3333
"semantic-release": "^4.3.5",
3434
"ts-node": "^1.1.0",
3535
"tslint": "^3.11.0",
3636
"tslint-config-standard": "^1.2.2",
37-
"typescript": ">=1.9.0-dev.20160619-1.0 || ^2.0.0",
38-
"typings": "^1.3.0"
37+
"typescript": "^2.0.0",
38+
"typings": "^1.3.0",
39+
"webpack": "beta"
3940
},
4041
"dependencies": {
4142
"@easy-webpack/assign": "^0.9.9 || ^1.0.0",

src/index.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1-
import {WebpackConfig} from './webpack'
1+
import {Webpack as WebpackConfig} from './webpack'
22
import {assign, literalReplace} from '@easy-webpack/assign'
33
export {get} from 'lodash'
4-
export * from './webpack'
4+
export {Webpack as WebpackConfig} from './webpack'
55
export * from '@easy-webpack/assign'
6-
export type EasyWebpackConfig = WebpackConfig | ((this: WebpackConfig) => WebpackConfig)
76

87
function hasProcessFlag(flag) {
98
return process.argv.join('').indexOf(flag) > -1
109
}
1110

11+
export type WebpackConfigWithMetadata = WebpackConfig & { metadata: any }
12+
export type EasyWebpackConfig = WebpackConfigWithMetadata | ((this: WebpackConfigWithMetadata) => WebpackConfigWithMetadata)
13+
1214
export function generateConfig(...configs: Array<EasyWebpackConfig>) {
1315
let config = {
1416
metadata: {
@@ -17,11 +19,11 @@ export function generateConfig(...configs: Array<EasyWebpackConfig>) {
1719
ENV: process.env.NODE_ENV || process.env.ENV || 'development',
1820
HMR: hasProcessFlag('hot') || !!process.env.WEBPACK_HMR,
1921
}
20-
} as WebpackConfig
22+
} as WebpackConfigWithMetadata
2123

2224
for (let configMethod of configs) {
2325
if (typeof configMethod === 'function') {
24-
let overlayConfig = configMethod.apply(config) as WebpackConfig
26+
let overlayConfig = configMethod.apply(config) as WebpackConfigWithMetadata
2527
config = assign(config, overlayConfig, configMethod['name'] || 'config', 'replace')
2628
} else {
2729
let overlayConfig = configMethod
@@ -31,4 +33,13 @@ export function generateConfig(...configs: Array<EasyWebpackConfig>) {
3133
return config
3234
}
3335

36+
export function stripMetadata(config: EasyWebpackConfig) {
37+
let overlayConfig: WebpackConfigWithMetadata
38+
if (typeof config === 'function') {
39+
overlayConfig = config.apply(config)
40+
}
41+
delete overlayConfig.metadata
42+
return overlayConfig as WebpackConfig
43+
}
44+
3445
export default generateConfig

0 commit comments

Comments
 (0)