UNPKG

1.67 kBJavaScriptView Raw
1"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var ts=require("typescript"),through=require("through2"),rollup_pluginutils_1=require("rollup-pluginutils");function classAnnotations(){return through.obj(function(t,n,r){if(t.isNull())return r(null,t);if(t.isStream())return r("doesn't support Streams");var e=t.contents.toString("utf8");e=iocAnnotations(e),t.contents=new Buffer(e),this.push(t),r()})}function iocAnnotations(u){u=u.replace(/\'\$\'/gi,'"$"');var t=ts.createSourceFile("cache.source.ts",u,ts.ScriptTarget.Latest,!0),l=function(t,n){if(ts.isClassDeclaration(t)){var r={name:t.name.text,params:{}},e=t.getText();ts.forEachChild(t,function(t){return l(t,r)});var s="\n static getClassAnnations():any {\n return "+JSON.stringify(r)+";\n }\n ",o=e.replace(/\s*$/,"").length-1;u=u.replace(e,e.substring(0,o)+s+e.substring(o))}else if(ts.isConstructorDeclaration(t)){if(n){var a=t.parameters.map(function(t){return t.name.getText()});n.params.constructor=a}}else if(ts.isMethodDeclaration(t)&&n){a=t.parameters.map(function(t){return t.name.getText()});var i=t.name.getText();n.params[i]=a}};return ts.forEachChild(t,l),u}function rollupClassAnnotations(t){t=t||{};var e=rollup_pluginutils_1.createFilter(t.include,t.exclude);return{name:"classAnnations",transform:function(n,t){var r=this;return e(t)||/\.ts$/.test(t)?new Promise(function(t){try{t({code:iocAnnotations(n),map:null})}catch(t){if(!("position"in t&&r.error))throw t;r.error(t.message,t.position)}}):null}}}exports.classAnnotations=classAnnotations,exports.rollupClassAnnotations=rollupClassAnnotations;
\No newline at end of file