babel-plugin-transform-metadata
Advanced tools
Comparing version 0.0.3 to 0.0.4
'use strict'; | ||
exports.__esModule = true; | ||
exports.C = exports.Widget2 = exports.Widget = exports.B = exports.A = undefined; | ||
exports.C = exports.Widget3 = exports.Widget2 = exports.Widget = exports.B = exports.A = undefined; | ||
exports.test2 = test2; | ||
@@ -17,2 +18,3 @@ var _2 = require('../../_'); | ||
/*:: import type {ITest as IT3} from 'babel-plugin-transform-metadata/__tests__/data/ITest'*/ | ||
/*:: import type {Deps} from 'babel-plugin-transform-metadata/Deps'*/ | ||
@@ -58,2 +60,15 @@ var A = exports.A = function A() { | ||
exports.Widget2 = Widget2; | ||
/*:: type W3Props = { | ||
deps: Deps<{ | ||
a: A; | ||
}>; | ||
d: D; | ||
d2: D; | ||
}*/ | ||
var Widget3 = function Widget3(props /*: W3Props*/) { | ||
_classCallCheck(this, Widget3); | ||
}; | ||
exports.Widget3 = Widget3; | ||
/*:: export type R<V> = { | ||
@@ -72,4 +87,5 @@ some: V; | ||
exports.default = test; | ||
function test2(deps /*: Deps<{a: A}>*/, d /*: D*/, d2 /*: D*/) /*: void*/ {} | ||
var types = [[(_3.default /*: R*/), '213']]; | ||
//# sourceMappingURL=Example.js.map |
'use strict'; | ||
exports.__esModule = true; | ||
exports.C = exports.Widget2 = exports.Widget = exports.B = exports.A = undefined; | ||
exports.C = exports.Widget3 = exports.Widget2 = exports.Widget = exports.B = exports.A = undefined; | ||
exports.test2 = test2; | ||
@@ -17,2 +18,3 @@ var _inject2 = require('reactive-di/inject'); | ||
/*:: import type { ITest as IT3 } from 'babel-plugin-transform-metadata/__tests__/data/ITest';*/ | ||
/*:: import type { Deps } from 'babel-plugin-transform-metadata/Deps';*/ | ||
@@ -72,2 +74,19 @@ var A = exports.A = function A() { | ||
exports.Widget2 = Widget2; | ||
/*:: type W3Props = { | ||
deps: Deps<{ | ||
a: A | ||
}>; | ||
d: D; | ||
d2: D; | ||
};*/ | ||
var Widget3 = function Widget3(props /*: W3Props*/) { | ||
_classCallCheck(this, Widget3); | ||
}; | ||
(0, _inject3.default)([{ | ||
a: A | ||
}], Widget3); | ||
exports.Widget3 = Widget3; | ||
/*:: export type R<V> = { | ||
@@ -90,4 +109,9 @@ some: V | ||
exports.default = test; | ||
function test2(deps /*: Deps<{ a: A }>*/, d /*: D*/, d2 /*: D*/) /*: void*/ {} | ||
(0, _inject3.default)([{ | ||
a: A | ||
}], test2); | ||
var types = [['R', '213']]; | ||
//# sourceMappingURL=ExampleTranspiled.js.map |
@@ -14,5 +14,10 @@ 'use strict'; | ||
function createCreateCreateGenericTypeMetadata(t, externalTypeNames, internalTypes) { | ||
function createCreateCreateGenericTypeMetadata(t, externalTypeNames, internalTypes, depsId) { | ||
return function createCreateGenericTypeMetadata(createObjectTypeMetadata) { | ||
return function createGenericTypeMetadata(annotation) { | ||
var id = annotation.id; | ||
if (id.name === depsId) { | ||
return createObjectTypeMetadata(annotation.typeParameters.params[0]); | ||
} | ||
if (annotation.typeParameters) { | ||
@@ -24,3 +29,2 @@ var genericCode = (0, _babelGenerator2.default)(annotation).code; | ||
} | ||
var id = annotation.id; | ||
var internalType = internalTypes.get(id.name); | ||
@@ -27,0 +31,0 @@ if (internalType) { |
@@ -5,3 +5,9 @@ 'use strict'; | ||
exports.default = createCreateCreateObjectTypeMetadata; | ||
function createCreateCreateObjectTypeMetadata(t, hasComment) { | ||
function createCreateCreateObjectTypeMetadata(t, hasComment, depsId) { | ||
function isDepsId(_ref) /*: boolean*/ { | ||
var value = _ref.value; | ||
return value.id.name === depsId; | ||
} | ||
return function createCreateObjectTypeMetadata(typeForAnnotation) { | ||
@@ -12,2 +18,12 @@ return function createObjectTypeMetadata(annotation) { | ||
var properties = annotation.properties; | ||
var pr = properties.find(isDepsId); | ||
if (pr) { | ||
if (pr.value.typeParameters) { | ||
return typeForAnnotation(pr.value.typeParameters.params[0]); | ||
// properties = pr.value.typeParameters.params[0].properties | ||
} | ||
// console.log(properties) | ||
// | ||
} | ||
for (var i = 0, l = properties.length; i < l; i++) { | ||
@@ -14,0 +30,0 @@ var property = properties[i]; |
@@ -5,3 +5,3 @@ "use strict"; | ||
exports.default = createTypeForAnnotations; | ||
function createTypeForAnnotations(hasComment, typeForAnnotation) { | ||
function createTypeForAnnotations(hasComment, typeForAnnotation, depsId) { | ||
return function typeForAnnotations(types) { | ||
@@ -12,2 +12,3 @@ var result = []; | ||
var typeAnnotation = type.typeAnnotation && type.typeAnnotation.typeAnnotation; | ||
var id = typeForAnnotation(typeAnnotation); | ||
@@ -20,2 +21,6 @@ if (hasComment(type)) { | ||
} | ||
// console.log(typeAnnotation.id) | ||
if (typeAnnotation.id && typeAnnotation.id.name === depsId) { | ||
break; | ||
} | ||
} | ||
@@ -22,0 +27,0 @@ return result; |
@@ -71,3 +71,5 @@ 'use strict'; | ||
ambiantTypeCastImport: opts.ambiantTypeCastImport || 'babel-plugin-transform-metadata/_', | ||
ambiantDepsImport: opts.ambiantDepsImport || 'babel-plugin-transform-metadata/Deps', | ||
depsId: null, | ||
injectId: null, | ||
@@ -79,2 +81,3 @@ ambiantTypeCast: null, | ||
}; | ||
state.externalTypeNames.delete(state.depsId); | ||
path.traverse(_getTypesInfo2.default, state); | ||
@@ -84,6 +87,6 @@ | ||
var hasComment = (0, _createHasComment2.default)(opts.argComment || '@args'); | ||
var createCreateObjectTypeMetadata = (0, _createCreateCreateObjectTypeMetadata2.default)(t, hasComment); | ||
var createCreateGenericTypeMetadata = (0, _createCreateCreateGenericTypeMetadata2.default)(t, state.externalTypeNames, state.internalTypes); | ||
var createCreateObjectTypeMetadata = (0, _createCreateCreateObjectTypeMetadata2.default)(t, hasComment, state.depsId); | ||
var createCreateGenericTypeMetadata = (0, _createCreateCreateGenericTypeMetadata2.default)(t, state.externalTypeNames, state.internalTypes, state.depsId); | ||
var typeForAnnotation = (0, _createTypeForAnnotation2.default)(t, state.externalTypeNames, createCreateObjectTypeMetadata, createCreateGenericTypeMetadata); | ||
var typeForAnnotations = (0, _createTypeForAnnotations2.default)(hasComment, typeForAnnotation); | ||
var typeForAnnotations = (0, _createTypeForAnnotations2.default)(hasComment, typeForAnnotation, state.depsId); | ||
@@ -90,0 +93,0 @@ var defineParamTypes = void 0; |
@@ -15,2 +15,5 @@ 'use strict'; | ||
} | ||
if (strPath === state.ambiantDepsImport) { | ||
state.depsId = node.specifiers[0].local.name; | ||
} | ||
}, | ||
@@ -17,0 +20,0 @@ ImportSpecifier: function ImportSpecifier(path, state) { |
{ | ||
"name": "babel-plugin-transform-metadata", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "Reflection metadata support for classes and functions", | ||
@@ -5,0 +5,0 @@ "publishConfig": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
65039
40
584