@tamagui/static 1.13.3 → 1.13.4

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 (195) hide show
  1. package/dist/cjs/constants.js +1 -52
  2. package/dist/cjs/constants.js.map +2 -2
  3. package/dist/cjs/extractor/accessSafe.js +1 -52
  4. package/dist/cjs/extractor/accessSafe.js.map +2 -2
  5. package/dist/cjs/extractor/babelParse.js +1 -66
  6. package/dist/cjs/extractor/babelParse.js.map +2 -2
  7. package/dist/cjs/extractor/buildClassName.js +1 -99
  8. package/dist/cjs/extractor/buildClassName.js.map +2 -2
  9. package/dist/cjs/extractor/bundle.js +1 -126
  10. package/dist/cjs/extractor/bundle.js.map +2 -2
  11. package/dist/cjs/extractor/createEvaluator.js +1 -86
  12. package/dist/cjs/extractor/createEvaluator.js.map +2 -2
  13. package/dist/cjs/extractor/createExtractor.js +15 -1630
  14. package/dist/cjs/extractor/createExtractor.js.map +2 -2
  15. package/dist/cjs/extractor/ensureImportingConcat.js +1 -64
  16. package/dist/cjs/extractor/ensureImportingConcat.js.map +2 -2
  17. package/dist/cjs/extractor/evaluateAstNode.js +1 -130
  18. package/dist/cjs/extractor/evaluateAstNode.js.map +2 -2
  19. package/dist/cjs/extractor/extractHelpers.js +1 -207
  20. package/dist/cjs/extractor/extractHelpers.js.map +2 -2
  21. package/dist/cjs/extractor/extractMediaStyle.js +1 -193
  22. package/dist/cjs/extractor/extractMediaStyle.js.map +2 -2
  23. package/dist/cjs/extractor/extractToClassNames.js +13 -413
  24. package/dist/cjs/extractor/extractToClassNames.js.map +2 -2
  25. package/dist/cjs/extractor/findTopmostFunction.js +1 -43
  26. package/dist/cjs/extractor/findTopmostFunction.js.map +2 -2
  27. package/dist/cjs/extractor/generatedUid.js +1 -59
  28. package/dist/cjs/extractor/generatedUid.js.map +2 -2
  29. package/dist/cjs/extractor/getPrefixLogs.js +1 -31
  30. package/dist/cjs/extractor/getPrefixLogs.js.map +2 -2
  31. package/dist/cjs/extractor/getPropValueFromAttributes.js +1 -89
  32. package/dist/cjs/extractor/getPropValueFromAttributes.js.map +2 -2
  33. package/dist/cjs/extractor/getSourceModule.js +1 -103
  34. package/dist/cjs/extractor/getSourceModule.js.map +2 -2
  35. package/dist/cjs/extractor/getStaticBindingsForScope.js +1 -225
  36. package/dist/cjs/extractor/getStaticBindingsForScope.js.map +2 -2
  37. package/dist/cjs/extractor/hoistClassNames.js +1 -74
  38. package/dist/cjs/extractor/hoistClassNames.js.map +2 -2
  39. package/dist/cjs/extractor/literalToAst.js +1 -115
  40. package/dist/cjs/extractor/literalToAst.js.map +2 -2
  41. package/dist/cjs/extractor/loadFile.js +2 -20
  42. package/dist/cjs/extractor/loadFile.js.map +2 -2
  43. package/dist/cjs/extractor/loadTamagui.js +15 -432
  44. package/dist/cjs/extractor/loadTamagui.js.map +2 -2
  45. package/dist/cjs/extractor/logLines.js +3 -43
  46. package/dist/cjs/extractor/logLines.js.map +2 -2
  47. package/dist/cjs/extractor/normalizeTernaries.js +1 -85
  48. package/dist/cjs/extractor/normalizeTernaries.js.map +2 -2
  49. package/dist/cjs/extractor/removeUnusedHooks.js +1 -109
  50. package/dist/cjs/extractor/removeUnusedHooks.js.map +2 -2
  51. package/dist/cjs/extractor/timer.js +1 -52
  52. package/dist/cjs/extractor/timer.js.map +2 -2
  53. package/dist/cjs/extractor/validHTMLAttributes.js +1 -126
  54. package/dist/cjs/extractor/validHTMLAttributes.js.map +2 -2
  55. package/dist/cjs/getPragmaOptions.js +2 -67
  56. package/dist/cjs/getPragmaOptions.js.map +2 -2
  57. package/dist/cjs/helpers/memoize.js +1 -45
  58. package/dist/cjs/helpers/memoize.js.map +2 -2
  59. package/dist/cjs/index.js +1 -42
  60. package/dist/cjs/index.js.map +2 -2
  61. package/dist/cjs/require.js +5 -81
  62. package/dist/cjs/require.js.map +2 -2
  63. package/dist/cjs/types.js +1 -16
  64. package/dist/cjs/types.js.map +2 -2
  65. package/dist/cjs/webpackPlugin.js +1 -34
  66. package/dist/cjs/webpackPlugin.js.map +2 -2
  67. package/dist/esm/constants.js +1 -14
  68. package/dist/esm/constants.js.map +2 -2
  69. package/dist/esm/constants.mjs +1 -14
  70. package/dist/esm/constants.mjs.map +2 -2
  71. package/dist/esm/extractor/accessSafe.js +1 -18
  72. package/dist/esm/extractor/accessSafe.js.map +2 -2
  73. package/dist/esm/extractor/accessSafe.mjs +1 -18
  74. package/dist/esm/extractor/accessSafe.mjs.map +2 -2
  75. package/dist/esm/extractor/babelParse.js +1 -31
  76. package/dist/esm/extractor/babelParse.js.map +2 -2
  77. package/dist/esm/extractor/babelParse.mjs +1 -31
  78. package/dist/esm/extractor/babelParse.mjs.map +2 -2
  79. package/dist/esm/extractor/buildClassName.js +1 -64
  80. package/dist/esm/extractor/buildClassName.js.map +2 -2
  81. package/dist/esm/extractor/buildClassName.mjs +1 -64
  82. package/dist/esm/extractor/buildClassName.mjs.map +2 -2
  83. package/dist/esm/extractor/bundle.js +1 -91
  84. package/dist/esm/extractor/bundle.js.map +2 -2
  85. package/dist/esm/extractor/bundle.mjs +1 -91
  86. package/dist/esm/extractor/bundle.mjs.map +2 -2
  87. package/dist/esm/extractor/createEvaluator.js +1 -51
  88. package/dist/esm/extractor/createEvaluator.js.map +2 -2
  89. package/dist/esm/extractor/createEvaluator.mjs +1 -51
  90. package/dist/esm/extractor/createEvaluator.mjs.map +2 -2
  91. package/dist/esm/extractor/createExtractor.js +15 -1613
  92. package/dist/esm/extractor/createExtractor.js.map +2 -2
  93. package/dist/esm/extractor/createExtractor.mjs +15 -1613
  94. package/dist/esm/extractor/createExtractor.mjs.map +2 -2
  95. package/dist/esm/extractor/ensureImportingConcat.js +1 -30
  96. package/dist/esm/extractor/ensureImportingConcat.js.map +2 -2
  97. package/dist/esm/extractor/ensureImportingConcat.mjs +1 -30
  98. package/dist/esm/extractor/ensureImportingConcat.mjs.map +2 -2
  99. package/dist/esm/extractor/evaluateAstNode.js +1 -96
  100. package/dist/esm/extractor/evaluateAstNode.js.map +2 -2
  101. package/dist/esm/extractor/evaluateAstNode.mjs +1 -96
  102. package/dist/esm/extractor/evaluateAstNode.mjs.map +2 -2
  103. package/dist/esm/extractor/extractHelpers.js +1 -161
  104. package/dist/esm/extractor/extractHelpers.js.map +2 -2
  105. package/dist/esm/extractor/extractHelpers.mjs +1 -161
  106. package/dist/esm/extractor/extractHelpers.mjs.map +2 -2
  107. package/dist/esm/extractor/extractMediaStyle.js +1 -158
  108. package/dist/esm/extractor/extractMediaStyle.js.map +2 -2
  109. package/dist/esm/extractor/extractMediaStyle.mjs +1 -158
  110. package/dist/esm/extractor/extractMediaStyle.mjs.map +2 -2
  111. package/dist/esm/extractor/extractToClassNames.js +13 -379
  112. package/dist/esm/extractor/extractToClassNames.js.map +2 -2
  113. package/dist/esm/extractor/extractToClassNames.mjs +13 -379
  114. package/dist/esm/extractor/extractToClassNames.mjs.map +2 -2
  115. package/dist/esm/extractor/findTopmostFunction.js +1 -19
  116. package/dist/esm/extractor/findTopmostFunction.js.map +2 -2
  117. package/dist/esm/extractor/findTopmostFunction.mjs +1 -19
  118. package/dist/esm/extractor/findTopmostFunction.mjs.map +2 -2
  119. package/dist/esm/extractor/generatedUid.js +1 -25
  120. package/dist/esm/extractor/generatedUid.js.map +2 -2
  121. package/dist/esm/extractor/generatedUid.mjs +1 -25
  122. package/dist/esm/extractor/generatedUid.mjs.map +2 -2
  123. package/dist/esm/extractor/getPrefixLogs.js +1 -7
  124. package/dist/esm/extractor/getPrefixLogs.js.map +2 -2
  125. package/dist/esm/extractor/getPrefixLogs.mjs +1 -7
  126. package/dist/esm/extractor/getPrefixLogs.mjs.map +2 -2
  127. package/dist/esm/extractor/getPropValueFromAttributes.js +1 -55
  128. package/dist/esm/extractor/getPropValueFromAttributes.js.map +2 -2
  129. package/dist/esm/extractor/getPropValueFromAttributes.mjs +1 -55
  130. package/dist/esm/extractor/getPropValueFromAttributes.mjs.map +2 -2
  131. package/dist/esm/extractor/getSourceModule.js +1 -69
  132. package/dist/esm/extractor/getSourceModule.js.map +2 -2
  133. package/dist/esm/extractor/getSourceModule.mjs +1 -69
  134. package/dist/esm/extractor/getSourceModule.mjs.map +2 -2
  135. package/dist/esm/extractor/getStaticBindingsForScope.js +1 -190
  136. package/dist/esm/extractor/getStaticBindingsForScope.js.map +2 -2
  137. package/dist/esm/extractor/getStaticBindingsForScope.mjs +1 -190
  138. package/dist/esm/extractor/getStaticBindingsForScope.mjs.map +2 -2
  139. package/dist/esm/extractor/hoistClassNames.js +1 -40
  140. package/dist/esm/extractor/hoistClassNames.js.map +2 -2
  141. package/dist/esm/extractor/hoistClassNames.mjs +1 -40
  142. package/dist/esm/extractor/hoistClassNames.mjs.map +2 -2
  143. package/dist/esm/extractor/literalToAst.js +1 -80
  144. package/dist/esm/extractor/literalToAst.js.map +2 -2
  145. package/dist/esm/extractor/literalToAst.mjs +1 -80
  146. package/dist/esm/extractor/literalToAst.mjs.map +2 -2
  147. package/dist/esm/extractor/loadFile.js +2 -19
  148. package/dist/esm/extractor/loadFile.js.map +2 -2
  149. package/dist/esm/extractor/loadFile.mjs +2 -19
  150. package/dist/esm/extractor/loadFile.mjs.map +2 -2
  151. package/dist/esm/extractor/loadTamagui.js +15 -396
  152. package/dist/esm/extractor/loadTamagui.js.map +2 -2
  153. package/dist/esm/extractor/loadTamagui.mjs +15 -396
  154. package/dist/esm/extractor/loadTamagui.mjs.map +2 -2
  155. package/dist/esm/extractor/logLines.js +3 -19
  156. package/dist/esm/extractor/logLines.js.map +2 -2
  157. package/dist/esm/extractor/logLines.mjs +3 -19
  158. package/dist/esm/extractor/logLines.mjs.map +2 -2
  159. package/dist/esm/extractor/normalizeTernaries.js +1 -51
  160. package/dist/esm/extractor/normalizeTernaries.js.map +2 -2
  161. package/dist/esm/extractor/normalizeTernaries.mjs +1 -51
  162. package/dist/esm/extractor/normalizeTernaries.mjs.map +2 -2
  163. package/dist/esm/extractor/removeUnusedHooks.js +1 -75
  164. package/dist/esm/extractor/removeUnusedHooks.js.map +2 -2
  165. package/dist/esm/extractor/removeUnusedHooks.mjs +1 -75
  166. package/dist/esm/extractor/removeUnusedHooks.mjs.map +2 -2
  167. package/dist/esm/extractor/timer.js +1 -28
  168. package/dist/esm/extractor/timer.js.map +2 -2
  169. package/dist/esm/extractor/timer.mjs +1 -28
  170. package/dist/esm/extractor/timer.mjs.map +2 -2
  171. package/dist/esm/extractor/validHTMLAttributes.js +1 -101
  172. package/dist/esm/extractor/validHTMLAttributes.js.map +2 -2
  173. package/dist/esm/extractor/validHTMLAttributes.mjs +1 -101
  174. package/dist/esm/extractor/validHTMLAttributes.mjs.map +2 -2
  175. package/dist/esm/getPragmaOptions.js +2 -43
  176. package/dist/esm/getPragmaOptions.js.map +2 -2
  177. package/dist/esm/getPragmaOptions.mjs +2 -43
  178. package/dist/esm/getPragmaOptions.mjs.map +2 -2
  179. package/dist/esm/helpers/memoize.js +1 -21
  180. package/dist/esm/helpers/memoize.js.map +2 -2
  181. package/dist/esm/helpers/memoize.mjs +1 -21
  182. package/dist/esm/helpers/memoize.mjs.map +2 -2
  183. package/dist/esm/index.js +1 -15
  184. package/dist/esm/index.js.map +2 -2
  185. package/dist/esm/index.mjs +1 -15
  186. package/dist/esm/index.mjs.map +2 -2
  187. package/dist/esm/require.js +5 -55
  188. package/dist/esm/require.js.map +2 -2
  189. package/dist/esm/require.mjs +5 -55
  190. package/dist/esm/require.mjs.map +2 -2
  191. package/dist/esm/webpackPlugin.js +1 -10
  192. package/dist/esm/webpackPlugin.js.map +2 -2
  193. package/dist/esm/webpackPlugin.mjs +1 -10
  194. package/dist/esm/webpackPlugin.mjs.map +2 -2
  195. package/package.json +14 -14
@@ -1,26 +1,2 @@
1
- import * as t from "@babel/types";
2
- function generateUid(scope, name) {
3
- if (!(typeof scope === "object"))
4
- throw "generateUid expects a scope object as its first parameter";
5
- if (!(typeof name === "string" && name !== ""))
6
- throw "generateUid expects a valid name as its second parameter";
7
- name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, "");
8
- let uid;
9
- let i = 0;
10
- do {
11
- if (i > 1) {
12
- uid = name + i;
13
- } else {
14
- uid = name;
15
- }
16
- i++;
17
- } while (scope.hasLabel(uid) || scope.hasBinding(uid) || scope.hasGlobal(uid) || scope.hasReference(uid));
18
- const program = scope.getProgramParent();
19
- program.references[uid] = true;
20
- program.uids[uid] = true;
21
- return uid;
22
- }
23
- export {
24
- generateUid
25
- };
1
+ import*as n from"@babel/types";function f(t,r){if(typeof t!="object")throw"generateUid expects a scope object as its first parameter";if(!(typeof r=="string"&&r!==""))throw"generateUid expects a valid name as its second parameter";r=n.toIdentifier(r).replace(/^_+/,"").replace(/[0-9]+$/g,"");let e,i=0;do i>1?e=r+i:e=r,i++;while(t.hasLabel(e)||t.hasBinding(e)||t.hasGlobal(e)||t.hasReference(e));const a=t.getProgramParent();return a.references[e]=!0,a.uids[e]=!0,e}export{f as generateUid};
26
2
  //# sourceMappingURL=generatedUid.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/generatedUid.ts"],
4
4
  "sourcesContent": ["import * as t from '@babel/types'\nimport invariant from 'invariant'\n\n// TODO: open a PR upstream\ndeclare module '@babel/types' {\n export function toIdentifier(input: string): string\n}\n\n// A clone of path.scope.generateUid that doesn't prepend underscores\nexport function generateUid(scope: any, name: string): string {\n if (!(typeof scope === 'object'))\n throw 'generateUid expects a scope object as its first parameter'\n if (!(typeof name === 'string' && name !== ''))\n throw 'generateUid expects a valid name as its second parameter'\n\n name = t\n .toIdentifier(name)\n .replace(/^_+/, '')\n .replace(/[0-9]+$/g, '')\n\n let uid\n let i = 0\n do {\n if (i > 1) {\n uid = name + i\n } else {\n uid = name\n }\n i++\n } while (\n scope.hasLabel(uid) ||\n scope.hasBinding(uid) ||\n scope.hasGlobal(uid) ||\n scope.hasReference(uid)\n )\n\n const program = scope.getProgramParent()\n program.references[uid] = true\n program.uids[uid] = true\n\n return uid\n}\n"],
5
- "mappings": "AAAA,YAAY,OAAO;AASZ,SAAS,YAAY,OAAY,MAAsB;AAC5D,MAAI,EAAE,OAAO,UAAU;AACrB,UAAM;AACR,MAAI,EAAE,OAAO,SAAS,YAAY,SAAS;AACzC,UAAM;AAER,SAAO,EACJ,aAAa,IAAI,EACjB,QAAQ,OAAO,EAAE,EACjB,QAAQ,YAAY,EAAE;AAEzB,MAAI;AACJ,MAAI,IAAI;AACR,KAAG;AACD,QAAI,IAAI,GAAG;AACT,YAAM,OAAO;AAAA,IACf,OAAO;AACL,YAAM;AAAA,IACR;AACA;AAAA,EACF,SACE,MAAM,SAAS,GAAG,KAClB,MAAM,WAAW,GAAG,KACpB,MAAM,UAAU,GAAG,KACnB,MAAM,aAAa,GAAG;AAGxB,QAAM,UAAU,MAAM,iBAAiB;AACvC,UAAQ,WAAW,GAAG,IAAI;AAC1B,UAAQ,KAAK,GAAG,IAAI;AAEpB,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "AAAA,UAAYA,MAAO,eASZ,SAASC,EAAYC,EAAYC,EAAsB,CAC5D,GAAM,OAAOD,GAAU,SACrB,KAAM,4DACR,GAAI,EAAE,OAAOC,GAAS,UAAYA,IAAS,IACzC,KAAM,2DAERA,EAAOH,EACJ,aAAaG,CAAI,EACjB,QAAQ,MAAO,EAAE,EACjB,QAAQ,WAAY,EAAE,EAEzB,IAAIC,EACA,EAAI,EACR,GACM,EAAI,EACNA,EAAMD,EAAO,EAEbC,EAAMD,EAER,UAEAD,EAAM,SAASE,CAAG,GAClBF,EAAM,WAAWE,CAAG,GACpBF,EAAM,UAAUE,CAAG,GACnBF,EAAM,aAAaE,CAAG,GAGxB,MAAMC,EAAUH,EAAM,iBAAiB,EACvC,OAAAG,EAAQ,WAAWD,CAAG,EAAI,GAC1BC,EAAQ,KAAKD,CAAG,EAAI,GAEbA,CACT",
6
+ "names": ["t", "generateUid", "scope", "name", "uid", "program"]
7
7
  }
@@ -1,8 +1,2 @@
1
- function getPrefixLogs(options) {
2
- const { TAMAGUI_TARGET } = process.env;
3
- return (options == null ? void 0 : options.prefixLogs) ?? ` ${TAMAGUI_TARGET} | `;
4
- }
5
- export {
6
- getPrefixLogs
7
- };
1
+ function a(r){const{TAMAGUI_TARGET:e}=process.env;return(r==null?void 0:r.prefixLogs)??` ${e} | `}export{a as getPrefixLogs};
8
2
  //# sourceMappingURL=getPrefixLogs.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/getPrefixLogs.ts"],
4
4
  "sourcesContent": ["import { TamaguiOptions } from '../types.js'\n\nexport function getPrefixLogs(options?: TamaguiOptions) {\n const { TAMAGUI_TARGET } = process.env\n return options?.prefixLogs ?? ` ${TAMAGUI_TARGET} | `\n}\n"],
5
- "mappings": "AAEO,SAAS,cAAc,SAA0B;AACtD,QAAM,EAAE,eAAe,IAAI,QAAQ;AACnC,UAAO,mCAAS,eAAc,IAAI;AACpC;",
6
- "names": []
5
+ "mappings": "AAEO,SAASA,EAAcC,EAA0B,CACtD,KAAM,CAAE,eAAAC,CAAe,EAAI,QAAQ,IACnC,OAAOD,GAAA,YAAAA,EAAS,aAAc,IAAIC,OACpC",
6
+ "names": ["getPrefixLogs", "options", "TAMAGUI_TARGET"]
7
7
  }
@@ -1,8 +1,2 @@
1
- function getPrefixLogs(options) {
2
- const { TAMAGUI_TARGET } = process.env;
3
- return (options == null ? void 0 : options.prefixLogs) ?? ` ${TAMAGUI_TARGET} | `;
4
- }
5
- export {
6
- getPrefixLogs
7
- };
1
+ function a(r){const{TAMAGUI_TARGET:e}=process.env;return(r==null?void 0:r.prefixLogs)??` ${e} | `}export{a as getPrefixLogs};
8
2
  //# sourceMappingURL=getPrefixLogs.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/getPrefixLogs.ts"],
4
4
  "sourcesContent": ["import { TamaguiOptions } from '../types.js'\n\nexport function getPrefixLogs(options?: TamaguiOptions) {\n const { TAMAGUI_TARGET } = process.env\n return options?.prefixLogs ?? ` ${TAMAGUI_TARGET} | `\n}\n"],
5
- "mappings": "AAEO,SAAS,cAAc,SAA0B;AACtD,QAAM,EAAE,eAAe,IAAI,QAAQ;AACnC,UAAO,mCAAS,eAAc,IAAI;AACpC;",
6
- "names": []
5
+ "mappings": "AAEO,SAASA,EAAcC,EAA0B,CACtD,KAAM,CAAE,eAAAC,CAAe,EAAI,QAAQ,IACnC,OAAOD,GAAA,YAAAA,EAAS,aAAc,IAAIC,OACpC",
6
+ "names": ["getPrefixLogs", "options", "TAMAGUI_TARGET"]
7
7
  }
@@ -1,56 +1,2 @@
1
- import generate from "@babel/generator";
2
- import * as t from "@babel/types";
3
- import { accessSafe } from "./accessSafe.js";
4
- function getPropValueFromAttributes(propName, attrs) {
5
- let propIndex = -1;
6
- let jsxAttr = null;
7
- for (let idx = -1, len = attrs.length; ++idx < len; ) {
8
- const attr = attrs[idx];
9
- if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {
10
- propIndex = idx;
11
- jsxAttr = attr;
12
- break;
13
- }
14
- }
15
- if (!jsxAttr || jsxAttr.value == null) {
16
- return null;
17
- }
18
- let propValue = jsxAttr.value;
19
- if (t.isJSXExpressionContainer(propValue)) {
20
- propValue = propValue.expression;
21
- }
22
- if (t.isJSXEmptyExpression(propValue)) {
23
- console.error("encountered JSXEmptyExpression");
24
- return null;
25
- }
26
- const applicableSpreads = attrs.filter(
27
- // 1. idx is greater than propValue prop index
28
- // 2. attr is a spread operator
29
- (attr, idx) => {
30
- if (t.isJSXSpreadAttribute(attr)) {
31
- if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument)) {
32
- return idx > propIndex;
33
- }
34
- if (t.isLogicalExpression(attr.argument)) {
35
- return false;
36
- }
37
- throw new Error(
38
- `unsupported spread of type "${attr.argument.type}": ${// @ts-ignore
39
- generate(attr).code}`
40
- );
41
- }
42
- return false;
43
- }
44
- ).map((attr) => attr.argument);
45
- if (applicableSpreads.length > 0) {
46
- propValue = applicableSpreads.reduce(
47
- (acc, val) => t.logicalExpression("||", accessSafe(val, propName), acc),
48
- propValue
49
- );
50
- }
51
- return propValue;
52
- }
53
- export {
54
- getPropValueFromAttributes
55
- };
1
+ import a from"@babel/generator";import*as r from"@babel/types";import{accessSafe as m}from"./accessSafe.js";function x(l,o){let p=-1,i=null;for(let e=-1,n=o.length;++e<n;){const s=o[e];if(r.isJSXAttribute(s)&&s.name&&s.name.name===l){p=e,i=s;break}}if(!i||i.value==null)return null;let t=i.value;if(r.isJSXExpressionContainer(t)&&(t=t.expression),r.isJSXEmptyExpression(t))return console.error("encountered JSXEmptyExpression"),null;const u=o.filter((e,n)=>{if(r.isJSXSpreadAttribute(e)){if(r.isIdentifier(e.argument)||r.isMemberExpression(e.argument))return n>p;if(r.isLogicalExpression(e.argument))return!1;throw new Error(`unsupported spread of type "${e.argument.type}": ${a(e).code}`)}return!1}).map(e=>e.argument);return u.length>0&&(t=u.reduce((e,n)=>r.logicalExpression("||",m(n,l),e),t)),t}export{x as getPropValueFromAttributes};
56
2
  //# sourceMappingURL=getPropValueFromAttributes.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/getPropValueFromAttributes.ts"],
4
4
  "sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\n\nimport { accessSafe } from './accessSafe.js'\n\n/**\n * getPropValueFromAttributes gets a prop by name from a list of attributes and accounts for potential spread operators.\n * Here's an example. Given this component:\n * ```\n * <Block coolProp=\"wow\" {...spread1} neatProp=\"ok\" {...spread2} />```\n * getPropValueFromAttributes will return the following:\n * - for propName `coolProp`:\n * ```\n * accessSafe(spread1, 'coolProp') || accessSafe(spread2, 'coolProp') || 'wow'```\n * - for propName `neatProp`:\n * ```\n * accessSafe(spread2, 'neatProp') || 'ok'```\n * - for propName `notPresent`: `null`\n *\n * The returned value should (obviously) be placed after spread operators.\n */\nexport function getPropValueFromAttributes(\n propName: string,\n attrs: (t.JSXAttribute | t.JSXSpreadAttribute)[]\n): t.Expression | null {\n let propIndex = -1\n let jsxAttr: t.JSXAttribute | null = null\n for (let idx = -1, len = attrs.length; ++idx < len; ) {\n const attr = attrs[idx]\n if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {\n propIndex = idx\n jsxAttr = attr\n break\n }\n }\n\n if (!jsxAttr || jsxAttr.value == null) {\n return null\n }\n\n let propValue:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | t.JSXEmptyExpression\n | t.Expression = jsxAttr.value\n\n if (t.isJSXExpressionContainer(propValue)) {\n propValue = propValue.expression\n }\n\n // TODO how to handle this??\n if (t.isJSXEmptyExpression(propValue)) {\n // eslint-disable-next-line no-console\n console.error('encountered JSXEmptyExpression')\n return null\n }\n\n // filter out spread props that occur before propValue\n const applicableSpreads = attrs\n .filter(\n // 1. idx is greater than propValue prop index\n // 2. attr is a spread operator\n (attr, idx): attr is t.JSXSpreadAttribute => {\n if (t.isJSXSpreadAttribute(attr)) {\n if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument)) {\n return idx > propIndex\n }\n if (t.isLogicalExpression(attr.argument)) {\n return false\n }\n throw new Error(\n `unsupported spread of type \"${attr.argument.type}\": ${\n // @ts-ignore\n generate(attr as any).code\n }`\n )\n }\n return false\n }\n )\n .map((attr) => attr.argument)\n\n // if spread operators occur after propValue, create a binary expression for each operator\n // i.e. before1.propValue || before2.propValue || propValue\n // TODO: figure out how to do this without all the extra parens\n if (applicableSpreads.length > 0) {\n propValue = applicableSpreads.reduce<t.Expression>(\n (acc, val) => t.logicalExpression('||', accessSafe(val, propName), acc),\n propValue\n )\n }\n\n return propValue\n}\n"],
5
- "mappings": "AAAA,OAAO,cAAc;AACrB,YAAY,OAAO;AAEnB,SAAS,kBAAkB;AAkBpB,SAAS,2BACd,UACA,OACqB;AACrB,MAAI,YAAY;AAChB,MAAI,UAAiC;AACrC,WAAS,MAAM,IAAI,MAAM,MAAM,QAAQ,EAAE,MAAM,OAAO;AACpD,UAAM,OAAO,MAAM,GAAG;AACtB,QAAI,EAAE,eAAe,IAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,UAAU;AACtE,kBAAY;AACZ,gBAAU;AACV;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,WAAW,QAAQ,SAAS,MAAM;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,YAMe,QAAQ;AAE3B,MAAI,EAAE,yBAAyB,SAAS,GAAG;AACzC,gBAAY,UAAU;AAAA,EACxB;AAGA,MAAI,EAAE,qBAAqB,SAAS,GAAG;AAErC,YAAQ,MAAM,gCAAgC;AAC9C,WAAO;AAAA,EACT;AAGA,QAAM,oBAAoB,MACvB;AAAA;AAAA;AAAA,IAGC,CAAC,MAAM,QAAsC;AAC3C,UAAI,EAAE,qBAAqB,IAAI,GAAG;AAChC,YAAI,EAAE,aAAa,KAAK,QAAQ,KAAK,EAAE,mBAAmB,KAAK,QAAQ,GAAG;AACxE,iBAAO,MAAM;AAAA,QACf;AACA,YAAI,EAAE,oBAAoB,KAAK,QAAQ,GAAG;AACxC,iBAAO;AAAA,QACT;AACA,cAAM,IAAI;AAAA,UACR,+BAA+B,KAAK,SAAS;AAAA,UAE3C,SAAS,IAAW,EAAE;AAAA,QAE1B;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF,EACC,IAAI,CAAC,SAAS,KAAK,QAAQ;AAK9B,MAAI,kBAAkB,SAAS,GAAG;AAChC,gBAAY,kBAAkB;AAAA,MAC5B,CAAC,KAAK,QAAQ,EAAE,kBAAkB,MAAM,WAAW,KAAK,QAAQ,GAAG,GAAG;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "AAAA,OAAOA,MAAc,mBACrB,UAAYC,MAAO,eAEnB,OAAS,cAAAC,MAAkB,kBAkBpB,SAASC,EACdC,EACAC,EACqB,CACrB,IAAIC,EAAY,GACZC,EAAiC,KACrC,QAASC,EAAM,GAAIC,EAAMJ,EAAM,OAAQ,EAAEG,EAAMC,GAAO,CACpD,MAAMC,EAAOL,EAAMG,CAAG,EACtB,GAAIP,EAAE,eAAeS,CAAI,GAAKA,EAAK,MAAQA,EAAK,KAAK,OAASN,EAAU,CACtEE,EAAYE,EACZD,EAAUG,EACV,KACF,CACF,CAEA,GAAI,CAACH,GAAWA,EAAQ,OAAS,KAC/B,OAAO,KAGT,IAAII,EAMeJ,EAAQ,MAO3B,GALIN,EAAE,yBAAyBU,CAAS,IACtCA,EAAYA,EAAU,YAIpBV,EAAE,qBAAqBU,CAAS,EAElC,eAAQ,MAAM,gCAAgC,EACvC,KAIT,MAAMC,EAAoBP,EACvB,OAGC,CAACK,EAAMF,IAAsC,CAC3C,GAAIP,EAAE,qBAAqBS,CAAI,EAAG,CAChC,GAAIT,EAAE,aAAaS,EAAK,QAAQ,GAAKT,EAAE,mBAAmBS,EAAK,QAAQ,EACrE,OAAOF,EAAMF,EAEf,GAAIL,EAAE,oBAAoBS,EAAK,QAAQ,EACrC,MAAO,GAET,MAAM,IAAI,MACR,+BAA+BA,EAAK,SAAS,UAE3CV,EAASU,CAAW,EAAE,MAE1B,CACF,CACA,MAAO,EACT,CACF,EACC,IAAKA,GAASA,EAAK,QAAQ,EAK9B,OAAIE,EAAkB,OAAS,IAC7BD,EAAYC,EAAkB,OAC5B,CAACC,EAAKC,IAAQb,EAAE,kBAAkB,KAAMC,EAAWY,EAAKV,CAAQ,EAAGS,CAAG,EACtEF,CACF,GAGKA,CACT",
6
+ "names": ["generate", "t", "accessSafe", "getPropValueFromAttributes", "propName", "attrs", "propIndex", "jsxAttr", "idx", "len", "attr", "propValue", "applicableSpreads", "acc", "val"]
7
7
  }
@@ -1,56 +1,2 @@
1
- import generate from "@babel/generator";
2
- import * as t from "@babel/types";
3
- import { accessSafe } from "./accessSafe.js";
4
- function getPropValueFromAttributes(propName, attrs) {
5
- let propIndex = -1;
6
- let jsxAttr = null;
7
- for (let idx = -1, len = attrs.length; ++idx < len; ) {
8
- const attr = attrs[idx];
9
- if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {
10
- propIndex = idx;
11
- jsxAttr = attr;
12
- break;
13
- }
14
- }
15
- if (!jsxAttr || jsxAttr.value == null) {
16
- return null;
17
- }
18
- let propValue = jsxAttr.value;
19
- if (t.isJSXExpressionContainer(propValue)) {
20
- propValue = propValue.expression;
21
- }
22
- if (t.isJSXEmptyExpression(propValue)) {
23
- console.error("encountered JSXEmptyExpression");
24
- return null;
25
- }
26
- const applicableSpreads = attrs.filter(
27
- // 1. idx is greater than propValue prop index
28
- // 2. attr is a spread operator
29
- (attr, idx) => {
30
- if (t.isJSXSpreadAttribute(attr)) {
31
- if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument)) {
32
- return idx > propIndex;
33
- }
34
- if (t.isLogicalExpression(attr.argument)) {
35
- return false;
36
- }
37
- throw new Error(
38
- `unsupported spread of type "${attr.argument.type}": ${// @ts-ignore
39
- generate(attr).code}`
40
- );
41
- }
42
- return false;
43
- }
44
- ).map((attr) => attr.argument);
45
- if (applicableSpreads.length > 0) {
46
- propValue = applicableSpreads.reduce(
47
- (acc, val) => t.logicalExpression("||", accessSafe(val, propName), acc),
48
- propValue
49
- );
50
- }
51
- return propValue;
52
- }
53
- export {
54
- getPropValueFromAttributes
55
- };
1
+ import a from"@babel/generator";import*as r from"@babel/types";import{accessSafe as m}from"./accessSafe.js";function x(l,o){let p=-1,i=null;for(let e=-1,n=o.length;++e<n;){const s=o[e];if(r.isJSXAttribute(s)&&s.name&&s.name.name===l){p=e,i=s;break}}if(!i||i.value==null)return null;let t=i.value;if(r.isJSXExpressionContainer(t)&&(t=t.expression),r.isJSXEmptyExpression(t))return console.error("encountered JSXEmptyExpression"),null;const u=o.filter((e,n)=>{if(r.isJSXSpreadAttribute(e)){if(r.isIdentifier(e.argument)||r.isMemberExpression(e.argument))return n>p;if(r.isLogicalExpression(e.argument))return!1;throw new Error(`unsupported spread of type "${e.argument.type}": ${a(e).code}`)}return!1}).map(e=>e.argument);return u.length>0&&(t=u.reduce((e,n)=>r.logicalExpression("||",m(n,l),e),t)),t}export{x as getPropValueFromAttributes};
56
2
  //# sourceMappingURL=getPropValueFromAttributes.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/getPropValueFromAttributes.ts"],
4
4
  "sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\n\nimport { accessSafe } from './accessSafe.js'\n\n/**\n * getPropValueFromAttributes gets a prop by name from a list of attributes and accounts for potential spread operators.\n * Here's an example. Given this component:\n * ```\n * <Block coolProp=\"wow\" {...spread1} neatProp=\"ok\" {...spread2} />```\n * getPropValueFromAttributes will return the following:\n * - for propName `coolProp`:\n * ```\n * accessSafe(spread1, 'coolProp') || accessSafe(spread2, 'coolProp') || 'wow'```\n * - for propName `neatProp`:\n * ```\n * accessSafe(spread2, 'neatProp') || 'ok'```\n * - for propName `notPresent`: `null`\n *\n * The returned value should (obviously) be placed after spread operators.\n */\nexport function getPropValueFromAttributes(\n propName: string,\n attrs: (t.JSXAttribute | t.JSXSpreadAttribute)[]\n): t.Expression | null {\n let propIndex = -1\n let jsxAttr: t.JSXAttribute | null = null\n for (let idx = -1, len = attrs.length; ++idx < len; ) {\n const attr = attrs[idx]\n if (t.isJSXAttribute(attr) && attr.name && attr.name.name === propName) {\n propIndex = idx\n jsxAttr = attr\n break\n }\n }\n\n if (!jsxAttr || jsxAttr.value == null) {\n return null\n }\n\n let propValue:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | t.JSXEmptyExpression\n | t.Expression = jsxAttr.value\n\n if (t.isJSXExpressionContainer(propValue)) {\n propValue = propValue.expression\n }\n\n // TODO how to handle this??\n if (t.isJSXEmptyExpression(propValue)) {\n // eslint-disable-next-line no-console\n console.error('encountered JSXEmptyExpression')\n return null\n }\n\n // filter out spread props that occur before propValue\n const applicableSpreads = attrs\n .filter(\n // 1. idx is greater than propValue prop index\n // 2. attr is a spread operator\n (attr, idx): attr is t.JSXSpreadAttribute => {\n if (t.isJSXSpreadAttribute(attr)) {\n if (t.isIdentifier(attr.argument) || t.isMemberExpression(attr.argument)) {\n return idx > propIndex\n }\n if (t.isLogicalExpression(attr.argument)) {\n return false\n }\n throw new Error(\n `unsupported spread of type \"${attr.argument.type}\": ${\n // @ts-ignore\n generate(attr as any).code\n }`\n )\n }\n return false\n }\n )\n .map((attr) => attr.argument)\n\n // if spread operators occur after propValue, create a binary expression for each operator\n // i.e. before1.propValue || before2.propValue || propValue\n // TODO: figure out how to do this without all the extra parens\n if (applicableSpreads.length > 0) {\n propValue = applicableSpreads.reduce<t.Expression>(\n (acc, val) => t.logicalExpression('||', accessSafe(val, propName), acc),\n propValue\n )\n }\n\n return propValue\n}\n"],
5
- "mappings": "AAAA,OAAO,cAAc;AACrB,YAAY,OAAO;AAEnB,SAAS,kBAAkB;AAkBpB,SAAS,2BACd,UACA,OACqB;AACrB,MAAI,YAAY;AAChB,MAAI,UAAiC;AACrC,WAAS,MAAM,IAAI,MAAM,MAAM,QAAQ,EAAE,MAAM,OAAO;AACpD,UAAM,OAAO,MAAM,GAAG;AACtB,QAAI,EAAE,eAAe,IAAI,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,UAAU;AACtE,kBAAY;AACZ,gBAAU;AACV;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,WAAW,QAAQ,SAAS,MAAM;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,YAMe,QAAQ;AAE3B,MAAI,EAAE,yBAAyB,SAAS,GAAG;AACzC,gBAAY,UAAU;AAAA,EACxB;AAGA,MAAI,EAAE,qBAAqB,SAAS,GAAG;AAErC,YAAQ,MAAM,gCAAgC;AAC9C,WAAO;AAAA,EACT;AAGA,QAAM,oBAAoB,MACvB;AAAA;AAAA;AAAA,IAGC,CAAC,MAAM,QAAsC;AAC3C,UAAI,EAAE,qBAAqB,IAAI,GAAG;AAChC,YAAI,EAAE,aAAa,KAAK,QAAQ,KAAK,EAAE,mBAAmB,KAAK,QAAQ,GAAG;AACxE,iBAAO,MAAM;AAAA,QACf;AACA,YAAI,EAAE,oBAAoB,KAAK,QAAQ,GAAG;AACxC,iBAAO;AAAA,QACT;AACA,cAAM,IAAI;AAAA,UACR,+BAA+B,KAAK,SAAS;AAAA,UAE3C,SAAS,IAAW,EAAE;AAAA,QAE1B;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF,EACC,IAAI,CAAC,SAAS,KAAK,QAAQ;AAK9B,MAAI,kBAAkB,SAAS,GAAG;AAChC,gBAAY,kBAAkB;AAAA,MAC5B,CAAC,KAAK,QAAQ,EAAE,kBAAkB,MAAM,WAAW,KAAK,QAAQ,GAAG,GAAG;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "AAAA,OAAOA,MAAc,mBACrB,UAAYC,MAAO,eAEnB,OAAS,cAAAC,MAAkB,kBAkBpB,SAASC,EACdC,EACAC,EACqB,CACrB,IAAIC,EAAY,GACZC,EAAiC,KACrC,QAASC,EAAM,GAAIC,EAAMJ,EAAM,OAAQ,EAAEG,EAAMC,GAAO,CACpD,MAAMC,EAAOL,EAAMG,CAAG,EACtB,GAAIP,EAAE,eAAeS,CAAI,GAAKA,EAAK,MAAQA,EAAK,KAAK,OAASN,EAAU,CACtEE,EAAYE,EACZD,EAAUG,EACV,KACF,CACF,CAEA,GAAI,CAACH,GAAWA,EAAQ,OAAS,KAC/B,OAAO,KAGT,IAAII,EAMeJ,EAAQ,MAO3B,GALIN,EAAE,yBAAyBU,CAAS,IACtCA,EAAYA,EAAU,YAIpBV,EAAE,qBAAqBU,CAAS,EAElC,eAAQ,MAAM,gCAAgC,EACvC,KAIT,MAAMC,EAAoBP,EACvB,OAGC,CAACK,EAAMF,IAAsC,CAC3C,GAAIP,EAAE,qBAAqBS,CAAI,EAAG,CAChC,GAAIT,EAAE,aAAaS,EAAK,QAAQ,GAAKT,EAAE,mBAAmBS,EAAK,QAAQ,EACrE,OAAOF,EAAMF,EAEf,GAAIL,EAAE,oBAAoBS,EAAK,QAAQ,EACrC,MAAO,GAET,MAAM,IAAI,MACR,+BAA+BA,EAAK,SAAS,UAE3CV,EAASU,CAAW,EAAE,MAE1B,CACF,CACA,MAAO,EACT,CACF,EACC,IAAKA,GAASA,EAAK,QAAQ,EAK9B,OAAIE,EAAkB,OAAS,IAC7BD,EAAYC,EAAkB,OAC5B,CAACC,EAAKC,IAAQb,EAAE,kBAAkB,KAAMC,EAAWY,EAAKV,CAAQ,EAAGS,CAAG,EACtEF,CACF,GAGKA,CACT",
6
+ "names": ["generate", "t", "accessSafe", "getPropValueFromAttributes", "propName", "attrs", "propIndex", "jsxAttr", "idx", "len", "attr", "propValue", "applicableSpreads", "acc", "val"]
7
7
  }
@@ -1,70 +1,2 @@
1
- import * as t from "@babel/types";
2
- function getSourceModule(itemName, itemBinding) {
3
- if (!itemBinding.constant) {
4
- return null;
5
- }
6
- let sourceModule;
7
- let imported;
8
- let local;
9
- let destructured;
10
- let usesImportSyntax = false;
11
- const itemNode = itemBinding.path.node;
12
- if (
13
- // import x from 'y';
14
- t.isImportDefaultSpecifier(itemNode) || // import {x} from 'y';
15
- t.isImportSpecifier(itemNode)
16
- ) {
17
- if (t.isImportDeclaration(itemBinding.path.parent)) {
18
- sourceModule = itemBinding.path.parent.source.value;
19
- local = itemNode.local.name;
20
- usesImportSyntax = true;
21
- if (t.isImportSpecifier(itemNode)) {
22
- imported = itemNode.imported["name"];
23
- destructured = true;
24
- } else {
25
- imported = itemNode.local.name;
26
- destructured = false;
27
- }
28
- }
29
- } else if (t.isVariableDeclarator(itemNode) && itemNode.init != null && t.isCallExpression(itemNode.init) && t.isIdentifier(itemNode.init.callee) && itemNode.init.callee.name === "require" && itemNode.init.arguments.length === 1) {
30
- const firstArg = itemNode.init.arguments[0];
31
- if (!t.isStringLiteral(firstArg)) {
32
- return null;
33
- }
34
- sourceModule = firstArg.value;
35
- if (t.isIdentifier(itemNode.id)) {
36
- local = itemNode.id.name;
37
- imported = itemNode.id.name;
38
- destructured = false;
39
- } else if (t.isObjectPattern(itemNode.id)) {
40
- for (const objProp of itemNode.id.properties) {
41
- if (t.isObjectProperty(objProp) && t.isIdentifier(objProp.value) && objProp.value.name === itemName) {
42
- local = objProp.value.name;
43
- imported = objProp.key.name;
44
- destructured = true;
45
- break;
46
- }
47
- }
48
- if (!local || !imported) {
49
- console.error("could not find prop with value `%s`", itemName);
50
- return null;
51
- }
52
- } else {
53
- console.error("Unhandled id type: %s", itemNode.id.type);
54
- return null;
55
- }
56
- } else {
57
- return null;
58
- }
59
- return {
60
- destructured,
61
- imported,
62
- local,
63
- sourceModule,
64
- usesImportSyntax
65
- };
66
- }
67
- export {
68
- getSourceModule
69
- };
1
+ import*as r from"@babel/types";function c(s,o){if(!o.constant)return null;let a,t,n,i,u=!1;const e=o.path.node;if(r.isImportDefaultSpecifier(e)||r.isImportSpecifier(e))r.isImportDeclaration(o.path.parent)&&(a=o.path.parent.source.value,n=e.local.name,u=!0,r.isImportSpecifier(e)?(t=e.imported.name,i=!0):(t=e.local.name,i=!1));else if(r.isVariableDeclarator(e)&&e.init!=null&&r.isCallExpression(e.init)&&r.isIdentifier(e.init.callee)&&e.init.callee.name==="require"&&e.init.arguments.length===1){const d=e.init.arguments[0];if(!r.isStringLiteral(d))return null;if(a=d.value,r.isIdentifier(e.id))n=e.id.name,t=e.id.name,i=!1;else if(r.isObjectPattern(e.id)){for(const l of e.id.properties)if(r.isObjectProperty(l)&&r.isIdentifier(l.value)&&l.value.name===s){n=l.value.name,t=l.key.name,i=!0;break}if(!n||!t)return console.error("could not find prop with value `%s`",s),null}else return console.error("Unhandled id type: %s",e.id.type),null}else return null;return{destructured:i,imported:t,local:n,sourceModule:a,usesImportSyntax:u}}export{c as getSourceModule};
70
2
  //# sourceMappingURL=getSourceModule.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/getSourceModule.ts"],
4
4
  "sourcesContent": ["import * as t from '@babel/types'\n\nexport interface SourceModule {\n sourceModule?: string\n imported?: string\n local?: string\n destructured?: boolean\n usesImportSyntax: boolean\n}\n\nexport function getSourceModule(\n itemName: string,\n itemBinding: {\n constant?: boolean\n path: { node: t.Node; parent: any }\n }\n): SourceModule | null {\n // TODO: deal with reassignment\n if (!itemBinding.constant) {\n return null\n }\n\n let sourceModule: string | undefined\n let imported: string | undefined\n let local: string | undefined\n let destructured: boolean | undefined\n let usesImportSyntax = false\n\n const itemNode = itemBinding.path.node\n\n if (\n // import x from 'y';\n t.isImportDefaultSpecifier(itemNode) ||\n // import {x} from 'y';\n t.isImportSpecifier(itemNode)\n ) {\n if (t.isImportDeclaration(itemBinding.path.parent)) {\n sourceModule = itemBinding.path.parent.source.value\n local = itemNode.local.name\n usesImportSyntax = true\n if (t.isImportSpecifier(itemNode)) {\n imported = itemNode.imported['name']\n destructured = true\n } else {\n imported = itemNode.local.name\n destructured = false\n }\n }\n } else if (\n t.isVariableDeclarator(itemNode) &&\n itemNode.init != null &&\n t.isCallExpression(itemNode.init) &&\n t.isIdentifier(itemNode.init.callee) &&\n itemNode.init.callee.name === 'require' &&\n itemNode.init.arguments.length === 1\n ) {\n const firstArg = itemNode.init.arguments[0]\n if (!t.isStringLiteral(firstArg)) {\n return null\n }\n sourceModule = firstArg.value\n\n if (t.isIdentifier(itemNode.id)) {\n local = itemNode.id.name\n imported = itemNode.id.name\n destructured = false\n } else if (t.isObjectPattern(itemNode.id)) {\n for (const objProp of itemNode.id.properties) {\n if (\n t.isObjectProperty(objProp) &&\n t.isIdentifier(objProp.value) &&\n objProp.value.name === itemName\n ) {\n local = objProp.value.name\n // @ts-ignore TODO remove this is only an issue on CI\n imported = objProp.key.name\n destructured = true\n break\n }\n }\n\n if (!local || !imported) {\n // eslint-disable-next-line no-console\n console.error('could not find prop with value `%s`', itemName)\n return null\n }\n } else {\n // eslint-disable-next-line no-console\n console.error('Unhandled id type: %s', itemNode.id.type)\n return null\n }\n } else {\n return null\n }\n\n return {\n destructured,\n imported,\n local,\n sourceModule,\n usesImportSyntax,\n }\n}\n"],
5
- "mappings": "AAAA,YAAY,OAAO;AAUZ,SAAS,gBACd,UACA,aAIqB;AAErB,MAAI,CAAC,YAAY,UAAU;AACzB,WAAO;AAAA,EACT;AAEA,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI,mBAAmB;AAEvB,QAAM,WAAW,YAAY,KAAK;AAElC;AAAA;AAAA,IAEE,EAAE,yBAAyB,QAAQ;AAAA,IAEnC,EAAE,kBAAkB,QAAQ;AAAA,IAC5B;AACA,QAAI,EAAE,oBAAoB,YAAY,KAAK,MAAM,GAAG;AAClD,qBAAe,YAAY,KAAK,OAAO,OAAO;AAC9C,cAAQ,SAAS,MAAM;AACvB,yBAAmB;AACnB,UAAI,EAAE,kBAAkB,QAAQ,GAAG;AACjC,mBAAW,SAAS,SAAS,MAAM;AACnC,uBAAe;AAAA,MACjB,OAAO;AACL,mBAAW,SAAS,MAAM;AAC1B,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF,WACE,EAAE,qBAAqB,QAAQ,KAC/B,SAAS,QAAQ,QACjB,EAAE,iBAAiB,SAAS,IAAI,KAChC,EAAE,aAAa,SAAS,KAAK,MAAM,KACnC,SAAS,KAAK,OAAO,SAAS,aAC9B,SAAS,KAAK,UAAU,WAAW,GACnC;AACA,UAAM,WAAW,SAAS,KAAK,UAAU,CAAC;AAC1C,QAAI,CAAC,EAAE,gBAAgB,QAAQ,GAAG;AAChC,aAAO;AAAA,IACT;AACA,mBAAe,SAAS;AAExB,QAAI,EAAE,aAAa,SAAS,EAAE,GAAG;AAC/B,cAAQ,SAAS,GAAG;AACpB,iBAAW,SAAS,GAAG;AACvB,qBAAe;AAAA,IACjB,WAAW,EAAE,gBAAgB,SAAS,EAAE,GAAG;AACzC,iBAAW,WAAW,SAAS,GAAG,YAAY;AAC5C,YACE,EAAE,iBAAiB,OAAO,KAC1B,EAAE,aAAa,QAAQ,KAAK,KAC5B,QAAQ,MAAM,SAAS,UACvB;AACA,kBAAQ,QAAQ,MAAM;AAEtB,qBAAW,QAAQ,IAAI;AACvB,yBAAe;AACf;AAAA,QACF;AAAA,MACF;AAEA,UAAI,CAAC,SAAS,CAAC,UAAU;AAEvB,gBAAQ,MAAM,uCAAuC,QAAQ;AAC7D,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AAEL,cAAQ,MAAM,yBAAyB,SAAS,GAAG,IAAI;AACvD,aAAO;AAAA,IACT;AAAA,EACF,OAAO;AACL,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
- "names": []
5
+ "mappings": "AAAA,UAAYA,MAAO,eAUZ,SAASC,EACdC,EACAC,EAIqB,CAErB,GAAI,CAACA,EAAY,SACf,OAAO,KAGT,IAAIC,EACAC,EACAC,EACAC,EACAC,EAAmB,GAEvB,MAAMC,EAAWN,EAAY,KAAK,KAElC,GAEEH,EAAE,yBAAyBS,CAAQ,GAEnCT,EAAE,kBAAkBS,CAAQ,EAExBT,EAAE,oBAAoBG,EAAY,KAAK,MAAM,IAC/CC,EAAeD,EAAY,KAAK,OAAO,OAAO,MAC9CG,EAAQG,EAAS,MAAM,KACvBD,EAAmB,GACfR,EAAE,kBAAkBS,CAAQ,GAC9BJ,EAAWI,EAAS,SAAS,KAC7BF,EAAe,KAEfF,EAAWI,EAAS,MAAM,KAC1BF,EAAe,aAInBP,EAAE,qBAAqBS,CAAQ,GAC/BA,EAAS,MAAQ,MACjBT,EAAE,iBAAiBS,EAAS,IAAI,GAChCT,EAAE,aAAaS,EAAS,KAAK,MAAM,GACnCA,EAAS,KAAK,OAAO,OAAS,WAC9BA,EAAS,KAAK,UAAU,SAAW,EACnC,CACA,MAAMC,EAAWD,EAAS,KAAK,UAAU,CAAC,EAC1C,GAAI,CAACT,EAAE,gBAAgBU,CAAQ,EAC7B,OAAO,KAIT,GAFAN,EAAeM,EAAS,MAEpBV,EAAE,aAAaS,EAAS,EAAE,EAC5BH,EAAQG,EAAS,GAAG,KACpBJ,EAAWI,EAAS,GAAG,KACvBF,EAAe,WACNP,EAAE,gBAAgBS,EAAS,EAAE,EAAG,CACzC,UAAWE,KAAWF,EAAS,GAAG,WAChC,GACET,EAAE,iBAAiBW,CAAO,GAC1BX,EAAE,aAAaW,EAAQ,KAAK,GAC5BA,EAAQ,MAAM,OAAST,EACvB,CACAI,EAAQK,EAAQ,MAAM,KAEtBN,EAAWM,EAAQ,IAAI,KACvBJ,EAAe,GACf,KACF,CAGF,GAAI,CAACD,GAAS,CAACD,EAEb,eAAQ,MAAM,sCAAuCH,CAAQ,EACtD,IAEX,KAEE,gBAAQ,MAAM,wBAAyBO,EAAS,GAAG,IAAI,EAChD,IAEX,KACE,QAAO,KAGT,MAAO,CACL,aAAAF,EACA,SAAAF,EACA,MAAAC,EACA,aAAAF,EACA,iBAAAI,CACF,CACF",
6
+ "names": ["t", "getSourceModule", "itemName", "itemBinding", "sourceModule", "imported", "local", "destructured", "usesImportSyntax", "itemNode", "firstArg", "objProp"]
7
7
  }
@@ -1,70 +1,2 @@
1
- import * as t from "@babel/types";
2
- function getSourceModule(itemName, itemBinding) {
3
- if (!itemBinding.constant) {
4
- return null;
5
- }
6
- let sourceModule;
7
- let imported;
8
- let local;
9
- let destructured;
10
- let usesImportSyntax = false;
11
- const itemNode = itemBinding.path.node;
12
- if (
13
- // import x from 'y';
14
- t.isImportDefaultSpecifier(itemNode) || // import {x} from 'y';
15
- t.isImportSpecifier(itemNode)
16
- ) {
17
- if (t.isImportDeclaration(itemBinding.path.parent)) {
18
- sourceModule = itemBinding.path.parent.source.value;
19
- local = itemNode.local.name;
20
- usesImportSyntax = true;
21
- if (t.isImportSpecifier(itemNode)) {
22
- imported = itemNode.imported["name"];
23
- destructured = true;
24
- } else {
25
- imported = itemNode.local.name;
26
- destructured = false;
27
- }
28
- }
29
- } else if (t.isVariableDeclarator(itemNode) && itemNode.init != null && t.isCallExpression(itemNode.init) && t.isIdentifier(itemNode.init.callee) && itemNode.init.callee.name === "require" && itemNode.init.arguments.length === 1) {
30
- const firstArg = itemNode.init.arguments[0];
31
- if (!t.isStringLiteral(firstArg)) {
32
- return null;
33
- }
34
- sourceModule = firstArg.value;
35
- if (t.isIdentifier(itemNode.id)) {
36
- local = itemNode.id.name;
37
- imported = itemNode.id.name;
38
- destructured = false;
39
- } else if (t.isObjectPattern(itemNode.id)) {
40
- for (const objProp of itemNode.id.properties) {
41
- if (t.isObjectProperty(objProp) && t.isIdentifier(objProp.value) && objProp.value.name === itemName) {
42
- local = objProp.value.name;
43
- imported = objProp.key.name;
44
- destructured = true;
45
- break;
46
- }
47
- }
48
- if (!local || !imported) {
49
- console.error("could not find prop with value `%s`", itemName);
50
- return null;
51
- }
52
- } else {
53
- console.error("Unhandled id type: %s", itemNode.id.type);
54
- return null;
55
- }
56
- } else {
57
- return null;
58
- }
59
- return {
60
- destructured,
61
- imported,
62
- local,
63
- sourceModule,
64
- usesImportSyntax
65
- };
66
- }
67
- export {
68
- getSourceModule
69
- };
1
+ import*as r from"@babel/types";function c(s,o){if(!o.constant)return null;let a,t,n,i,u=!1;const e=o.path.node;if(r.isImportDefaultSpecifier(e)||r.isImportSpecifier(e))r.isImportDeclaration(o.path.parent)&&(a=o.path.parent.source.value,n=e.local.name,u=!0,r.isImportSpecifier(e)?(t=e.imported.name,i=!0):(t=e.local.name,i=!1));else if(r.isVariableDeclarator(e)&&e.init!=null&&r.isCallExpression(e.init)&&r.isIdentifier(e.init.callee)&&e.init.callee.name==="require"&&e.init.arguments.length===1){const d=e.init.arguments[0];if(!r.isStringLiteral(d))return null;if(a=d.value,r.isIdentifier(e.id))n=e.id.name,t=e.id.name,i=!1;else if(r.isObjectPattern(e.id)){for(const l of e.id.properties)if(r.isObjectProperty(l)&&r.isIdentifier(l.value)&&l.value.name===s){n=l.value.name,t=l.key.name,i=!0;break}if(!n||!t)return console.error("could not find prop with value `%s`",s),null}else return console.error("Unhandled id type: %s",e.id.type),null}else return null;return{destructured:i,imported:t,local:n,sourceModule:a,usesImportSyntax:u}}export{c as getSourceModule};
70
2
  //# sourceMappingURL=getSourceModule.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/extractor/getSourceModule.ts"],
4
4
  "sourcesContent": ["import * as t from '@babel/types'\n\nexport interface SourceModule {\n sourceModule?: string\n imported?: string\n local?: string\n destructured?: boolean\n usesImportSyntax: boolean\n}\n\nexport function getSourceModule(\n itemName: string,\n itemBinding: {\n constant?: boolean\n path: { node: t.Node; parent: any }\n }\n): SourceModule | null {\n // TODO: deal with reassignment\n if (!itemBinding.constant) {\n return null\n }\n\n let sourceModule: string | undefined\n let imported: string | undefined\n let local: string | undefined\n let destructured: boolean | undefined\n let usesImportSyntax = false\n\n const itemNode = itemBinding.path.node\n\n if (\n // import x from 'y';\n t.isImportDefaultSpecifier(itemNode) ||\n // import {x} from 'y';\n t.isImportSpecifier(itemNode)\n ) {\n if (t.isImportDeclaration(itemBinding.path.parent)) {\n sourceModule = itemBinding.path.parent.source.value\n local = itemNode.local.name\n usesImportSyntax = true\n if (t.isImportSpecifier(itemNode)) {\n imported = itemNode.imported['name']\n destructured = true\n } else {\n imported = itemNode.local.name\n destructured = false\n }\n }\n } else if (\n t.isVariableDeclarator(itemNode) &&\n itemNode.init != null &&\n t.isCallExpression(itemNode.init) &&\n t.isIdentifier(itemNode.init.callee) &&\n itemNode.init.callee.name === 'require' &&\n itemNode.init.arguments.length === 1\n ) {\n const firstArg = itemNode.init.arguments[0]\n if (!t.isStringLiteral(firstArg)) {\n return null\n }\n sourceModule = firstArg.value\n\n if (t.isIdentifier(itemNode.id)) {\n local = itemNode.id.name\n imported = itemNode.id.name\n destructured = false\n } else if (t.isObjectPattern(itemNode.id)) {\n for (const objProp of itemNode.id.properties) {\n if (\n t.isObjectProperty(objProp) &&\n t.isIdentifier(objProp.value) &&\n objProp.value.name === itemName\n ) {\n local = objProp.value.name\n // @ts-ignore TODO remove this is only an issue on CI\n imported = objProp.key.name\n destructured = true\n break\n }\n }\n\n if (!local || !imported) {\n // eslint-disable-next-line no-console\n console.error('could not find prop with value `%s`', itemName)\n return null\n }\n } else {\n // eslint-disable-next-line no-console\n console.error('Unhandled id type: %s', itemNode.id.type)\n return null\n }\n } else {\n return null\n }\n\n return {\n destructured,\n imported,\n local,\n sourceModule,\n usesImportSyntax,\n }\n}\n"],
5
- "mappings": "AAAA,YAAY,OAAO;AAUZ,SAAS,gBACd,UACA,aAIqB;AAErB,MAAI,CAAC,YAAY,UAAU;AACzB,WAAO;AAAA,EACT;AAEA,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI,mBAAmB;AAEvB,QAAM,WAAW,YAAY,KAAK;AAElC;AAAA;AAAA,IAEE,EAAE,yBAAyB,QAAQ;AAAA,IAEnC,EAAE,kBAAkB,QAAQ;AAAA,IAC5B;AACA,QAAI,EAAE,oBAAoB,YAAY,KAAK,MAAM,GAAG;AAClD,qBAAe,YAAY,KAAK,OAAO,OAAO;AAC9C,cAAQ,SAAS,MAAM;AACvB,yBAAmB;AACnB,UAAI,EAAE,kBAAkB,QAAQ,GAAG;AACjC,mBAAW,SAAS,SAAS,MAAM;AACnC,uBAAe;AAAA,MACjB,OAAO;AACL,mBAAW,SAAS,MAAM;AAC1B,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF,WACE,EAAE,qBAAqB,QAAQ,KAC/B,SAAS,QAAQ,QACjB,EAAE,iBAAiB,SAAS,IAAI,KAChC,EAAE,aAAa,SAAS,KAAK,MAAM,KACnC,SAAS,KAAK,OAAO,SAAS,aAC9B,SAAS,KAAK,UAAU,WAAW,GACnC;AACA,UAAM,WAAW,SAAS,KAAK,UAAU,CAAC;AAC1C,QAAI,CAAC,EAAE,gBAAgB,QAAQ,GAAG;AAChC,aAAO;AAAA,IACT;AACA,mBAAe,SAAS;AAExB,QAAI,EAAE,aAAa,SAAS,EAAE,GAAG;AAC/B,cAAQ,SAAS,GAAG;AACpB,iBAAW,SAAS,GAAG;AACvB,qBAAe;AAAA,IACjB,WAAW,EAAE,gBAAgB,SAAS,EAAE,GAAG;AACzC,iBAAW,WAAW,SAAS,GAAG,YAAY;AAC5C,YACE,EAAE,iBAAiB,OAAO,KAC1B,EAAE,aAAa,QAAQ,KAAK,KAC5B,QAAQ,MAAM,SAAS,UACvB;AACA,kBAAQ,QAAQ,MAAM;AAEtB,qBAAW,QAAQ,IAAI;AACvB,yBAAe;AACf;AAAA,QACF;AAAA,MACF;AAEA,UAAI,CAAC,SAAS,CAAC,UAAU;AAEvB,gBAAQ,MAAM,uCAAuC,QAAQ;AAC7D,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AAEL,cAAQ,MAAM,yBAAyB,SAAS,GAAG,IAAI;AACvD,aAAO;AAAA,IACT;AAAA,EACF,OAAO;AACL,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
- "names": []
5
+ "mappings": "AAAA,UAAYA,MAAO,eAUZ,SAASC,EACdC,EACAC,EAIqB,CAErB,GAAI,CAACA,EAAY,SACf,OAAO,KAGT,IAAIC,EACAC,EACAC,EACAC,EACAC,EAAmB,GAEvB,MAAMC,EAAWN,EAAY,KAAK,KAElC,GAEEH,EAAE,yBAAyBS,CAAQ,GAEnCT,EAAE,kBAAkBS,CAAQ,EAExBT,EAAE,oBAAoBG,EAAY,KAAK,MAAM,IAC/CC,EAAeD,EAAY,KAAK,OAAO,OAAO,MAC9CG,EAAQG,EAAS,MAAM,KACvBD,EAAmB,GACfR,EAAE,kBAAkBS,CAAQ,GAC9BJ,EAAWI,EAAS,SAAS,KAC7BF,EAAe,KAEfF,EAAWI,EAAS,MAAM,KAC1BF,EAAe,aAInBP,EAAE,qBAAqBS,CAAQ,GAC/BA,EAAS,MAAQ,MACjBT,EAAE,iBAAiBS,EAAS,IAAI,GAChCT,EAAE,aAAaS,EAAS,KAAK,MAAM,GACnCA,EAAS,KAAK,OAAO,OAAS,WAC9BA,EAAS,KAAK,UAAU,SAAW,EACnC,CACA,MAAMC,EAAWD,EAAS,KAAK,UAAU,CAAC,EAC1C,GAAI,CAACT,EAAE,gBAAgBU,CAAQ,EAC7B,OAAO,KAIT,GAFAN,EAAeM,EAAS,MAEpBV,EAAE,aAAaS,EAAS,EAAE,EAC5BH,EAAQG,EAAS,GAAG,KACpBJ,EAAWI,EAAS,GAAG,KACvBF,EAAe,WACNP,EAAE,gBAAgBS,EAAS,EAAE,EAAG,CACzC,UAAWE,KAAWF,EAAS,GAAG,WAChC,GACET,EAAE,iBAAiBW,CAAO,GAC1BX,EAAE,aAAaW,EAAQ,KAAK,GAC5BA,EAAQ,MAAM,OAAST,EACvB,CACAI,EAAQK,EAAQ,MAAM,KAEtBN,EAAWM,EAAQ,IAAI,KACvBJ,EAAe,GACf,KACF,CAGF,GAAI,CAACD,GAAS,CAACD,EAEb,eAAQ,MAAM,sCAAuCH,CAAQ,EACtD,IAEX,KAEE,gBAAQ,MAAM,wBAAyBO,EAAS,GAAG,IAAI,EAChD,IAEX,KACE,QAAO,KAGT,MAAO,CACL,aAAAF,EACA,SAAAF,EACA,MAAAC,EACA,aAAAF,EACA,iBAAAI,CACF,CACF",
6
+ "names": ["t", "getSourceModule", "itemName", "itemBinding", "sourceModule", "imported", "local", "destructured", "usesImportSyntax", "itemNode", "firstArg", "objProp"]
7
7
  }