Skip to content

Commit 7329be4

Browse files
authored
recursive dependecy check (#42)
* recursive dependency check * generate * v0.2.2 * also update mapping
1 parent decc341 commit 7329be4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1331
-48
lines changed

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
"packages": [
44
"packages/*"
55
],
6-
"version": "0.2.1",
6+
"version": "0.2.2",
77
"useWorkspaces": true
88
}

packages/babel-plugin-core-web/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mrhenry/babel-plugin-core-web",
3-
"version": "0.2.1",
3+
"version": "0.2.2",
44
"description": "browser feature polyfills as a babel plugin",
55
"main": "lib/index.js",
66
"author": "Simon Menke <[email protected]>",
@@ -28,7 +28,7 @@
2828
"@babel/parser": "^7.3.1",
2929
"@babel/traverse": "^7.2.3",
3030
"@babel/types": "^7.3.0",
31-
"@mrhenry/core-web": "^0.2.1",
31+
"@mrhenry/core-web": "^0.2.2",
3232
"fast-deep-equal": "^3.1.1"
3333
},
3434
"bugs": {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"name": "core-web-example",
3-
"version": "0.2.1",
3+
"version": "0.2.2",
44
"private": true,
55
"scripts": {
66
"build": "babel src -d lib"
77
},
88
"devDependencies": {
99
"@babel/cli": "^7.2.3",
1010
"@babel/core": "^7.2.2",
11-
"@mrhenry/babel-plugin-core-web": "^0.2.1"
11+
"@mrhenry/babel-plugin-core-web": "^0.2.2"
1212
}
1313
}

packages/core-web-generator/generate.js

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,23 +69,24 @@ async function gen(feature, mapping) {
6969
const meta = await polyfillLibrary.describePolyfill(feature);
7070
const output = mergeStream();
7171
const helperName = normalizeHelperName(feature);
72+
const dependencies = await allDependencies(feature);
7273

7374
if (!helperName) {
7475
mapping.push({
7576
name: feature,
76-
deps: (meta.dependencies || []).filter(n => !providedByBabel(n)),
77+
deps: Array.from(dependencies).filter(n => !providedByBabel(n)),
7778
browsers: meta.browsers,
7879
});
7980
}
8081

81-
for (const dep of (meta.dependencies || [])) {
82+
dependencies.forEach((dep) => {
8283
const name = normalizeHelperName(dep);
8384
if (name && !providedByBabel(dep)) {
8485
output.add(streamFromString(
8586
`import ${name} from "../helpers/${dep}";\n`
8687
));
8788
}
88-
}
89+
});
8990

9091
if (!helperName) {
9192
output.add(streamFromString("(function(undefined) {\n"));
@@ -118,6 +119,22 @@ async function gen(feature, mapping) {
118119
return await streamToString(output);
119120
}
120121

122+
async function allDependencies(feature) {
123+
const dependencies = new Set();
124+
const meta = await polyfillLibrary.describePolyfill(feature);
125+
126+
for (const dep of (meta.dependencies || [])) {
127+
dependencies.add(dep);
128+
129+
const nestedDepedencies = await allDependencies(dep);
130+
nestedDepedencies.forEach((dep2) => {
131+
dependencies.add(dep2);
132+
});
133+
}
134+
135+
return dependencies;
136+
}
137+
121138
function providedByBabel(f) {
122139
const p = /^(_(String|Array)?Iterator|_TypedArray|Function|Date|Math|Object|String|Number|(Weak)?(Map|Set)|Symbol|Array|RegExp|Promise|Reflect)($|\.)/;
123140
return p.test(f) || f.endsWith('.@@iterator');

packages/core-web-generator/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mrhenry/core-web-generator",
3-
"version": "0.2.1",
3+
"version": "0.2.2",
44
"private": true,
55
"scripts": {
66
"build": "node ./generate.js"

packages/core-web/helpers/_ESAbstract.AddEntriesFromIterable.js

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,35 @@
11
import IsCallable from "../helpers/_ESAbstract.IsCallable";
22
import GetIterator from "../helpers/_ESAbstract.GetIterator";
3+
import Call from "../helpers/_ESAbstract.Call";
4+
import GetMethod from "../helpers/_ESAbstract.GetMethod";
5+
import GetV from "../helpers/_ESAbstract.GetV";
6+
import ToObject from "../helpers/_ESAbstract.ToObject";
7+
import Type from "../helpers/_ESAbstract.Type";
8+
import CreateMethodProperty from "../helpers/_ESAbstract.CreateMethodProperty";
9+
import Get from "../helpers/_ESAbstract.Get";
10+
import HasOwnProperty from "../helpers/_ESAbstract.HasOwnProperty";
11+
import ToPropertyKey from "../helpers/_ESAbstract.ToPropertyKey";
12+
import ToPrimitive from "../helpers/_ESAbstract.ToPrimitive";
13+
import OrdinaryToPrimitive from "../helpers/_ESAbstract.OrdinaryToPrimitive";
14+
import ToString from "../helpers/_ESAbstract.ToString";
15+
import ToLength from "../helpers/_ESAbstract.ToLength";
16+
import ToInteger from "../helpers/_ESAbstract.ToInteger";
17+
import HasProperty from "../helpers/_ESAbstract.HasProperty";
18+
import ArraySpeciesCreate from "../helpers/_ESAbstract.ArraySpeciesCreate";
19+
import IsArray from "../helpers/_ESAbstract.IsArray";
20+
import ArrayCreate from "../helpers/_ESAbstract.ArrayCreate";
21+
import IsConstructor from "../helpers/_ESAbstract.IsConstructor";
22+
import Construct from "../helpers/_ESAbstract.Construct";
23+
import OrdinaryCreateFromConstructor from "../helpers/_ESAbstract.OrdinaryCreateFromConstructor";
24+
import GetPrototypeFromConstructor from "../helpers/_ESAbstract.GetPrototypeFromConstructor";
25+
import ToBoolean from "../helpers/_ESAbstract.ToBoolean";
26+
import CreateDataPropertyOrThrow from "../helpers/_ESAbstract.CreateDataPropertyOrThrow";
27+
import CreateDataProperty from "../helpers/_ESAbstract.CreateDataProperty";
328
import IteratorStep from "../helpers/_ESAbstract.IteratorStep";
29+
import IteratorNext from "../helpers/_ESAbstract.IteratorNext";
30+
import IteratorComplete from "../helpers/_ESAbstract.IteratorComplete";
431
import IteratorValue from "../helpers/_ESAbstract.IteratorValue";
532
import IteratorClose from "../helpers/_ESAbstract.IteratorClose";
6-
import Get from "../helpers/_ESAbstract.Get";
7-
import Call from "../helpers/_ESAbstract.Call";
8-
import Type from "../helpers/_ESAbstract.Type";
933

1034
// _ESAbstract.AddEntriesFromIterable
1135
/* global IsCallable, GetIterator, IteratorStep, IteratorValue, IteratorClose, Get, Call, Type */

packages/core-web/helpers/_ESAbstract.ArraySpeciesCreate.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,20 @@ import ArrayCreate from "../helpers/_ESAbstract.ArrayCreate";
33
import Get from "../helpers/_ESAbstract.Get";
44
import Type from "../helpers/_ESAbstract.Type";
55
import IsConstructor from "../helpers/_ESAbstract.IsConstructor";
6+
import GetMethod from "../helpers/_ESAbstract.GetMethod";
7+
import GetV from "../helpers/_ESAbstract.GetV";
8+
import ToObject from "../helpers/_ESAbstract.ToObject";
9+
import IsCallable from "../helpers/_ESAbstract.IsCallable";
610
import Construct from "../helpers/_ESAbstract.Construct";
11+
import OrdinaryCreateFromConstructor from "../helpers/_ESAbstract.OrdinaryCreateFromConstructor";
12+
import GetPrototypeFromConstructor from "../helpers/_ESAbstract.GetPrototypeFromConstructor";
13+
import CreateMethodProperty from "../helpers/_ESAbstract.CreateMethodProperty";
14+
import HasOwnProperty from "../helpers/_ESAbstract.HasOwnProperty";
15+
import ToPropertyKey from "../helpers/_ESAbstract.ToPropertyKey";
16+
import ToPrimitive from "../helpers/_ESAbstract.ToPrimitive";
17+
import Call from "../helpers/_ESAbstract.Call";
18+
import OrdinaryToPrimitive from "../helpers/_ESAbstract.OrdinaryToPrimitive";
19+
import ToString from "../helpers/_ESAbstract.ToString";
720

821
// _ESAbstract.ArraySpeciesCreate
922
/* global IsArray, ArrayCreate, Get, Type, IsConstructor, Construct */

packages/core-web/helpers/_ESAbstract.CanonicalNumericIndexString.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
import SameValue from "../helpers/_ESAbstract.SameValue";
2+
import SameValueNonNumber from "../helpers/_ESAbstract.SameValueNonNumber";
3+
import Type from "../helpers/_ESAbstract.Type";
24
import ToNumber from "../helpers/_ESAbstract.ToNumber";
35
import ToString from "../helpers/_ESAbstract.ToString";
6+
import ToPrimitive from "../helpers/_ESAbstract.ToPrimitive";
7+
import Call from "../helpers/_ESAbstract.Call";
8+
import GetMethod from "../helpers/_ESAbstract.GetMethod";
9+
import GetV from "../helpers/_ESAbstract.GetV";
10+
import ToObject from "../helpers/_ESAbstract.ToObject";
11+
import IsCallable from "../helpers/_ESAbstract.IsCallable";
12+
import OrdinaryToPrimitive from "../helpers/_ESAbstract.OrdinaryToPrimitive";
13+
import Get from "../helpers/_ESAbstract.Get";
414

515
// _ESAbstract.CanonicalNumericIndexString
616
/* global ToNumber, SameValue, ToString */

packages/core-web/helpers/_ESAbstract.Construct.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
import IsConstructor from "../helpers/_ESAbstract.IsConstructor";
2+
import GetMethod from "../helpers/_ESAbstract.GetMethod";
3+
import GetV from "../helpers/_ESAbstract.GetV";
4+
import ToObject from "../helpers/_ESAbstract.ToObject";
5+
import IsCallable from "../helpers/_ESAbstract.IsCallable";
6+
import Type from "../helpers/_ESAbstract.Type";
27
import OrdinaryCreateFromConstructor from "../helpers/_ESAbstract.OrdinaryCreateFromConstructor";
8+
import GetPrototypeFromConstructor from "../helpers/_ESAbstract.GetPrototypeFromConstructor";
9+
import Get from "../helpers/_ESAbstract.Get";
10+
import CreateMethodProperty from "../helpers/_ESAbstract.CreateMethodProperty";
11+
import HasOwnProperty from "../helpers/_ESAbstract.HasOwnProperty";
12+
import ToPropertyKey from "../helpers/_ESAbstract.ToPropertyKey";
13+
import ToPrimitive from "../helpers/_ESAbstract.ToPrimitive";
14+
import Call from "../helpers/_ESAbstract.Call";
15+
import OrdinaryToPrimitive from "../helpers/_ESAbstract.OrdinaryToPrimitive";
16+
import ToString from "../helpers/_ESAbstract.ToString";
317

418
// _ESAbstract.Construct
519
/* global IsConstructor, OrdinaryCreateFromConstructor, Call */

packages/core-web/helpers/_ESAbstract.CreateHTML.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
import RequireObjectCoercible from "../helpers/_ESAbstract.RequireObjectCoercible";
22
import ToString from "../helpers/_ESAbstract.ToString";
3+
import ToPrimitive from "../helpers/_ESAbstract.ToPrimitive";
4+
import Call from "../helpers/_ESAbstract.Call";
5+
import GetMethod from "../helpers/_ESAbstract.GetMethod";
6+
import GetV from "../helpers/_ESAbstract.GetV";
7+
import ToObject from "../helpers/_ESAbstract.ToObject";
8+
import IsCallable from "../helpers/_ESAbstract.IsCallable";
9+
import OrdinaryToPrimitive from "../helpers/_ESAbstract.OrdinaryToPrimitive";
10+
import Get from "../helpers/_ESAbstract.Get";
11+
import Type from "../helpers/_ESAbstract.Type";
312

413
// _ESAbstract.CreateHTML
514
/* global RequireObjectCoercible, ToString */

0 commit comments

Comments
 (0)