@wyw-in-js/transform 0.1.0
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.
- package/LICENSE +21 -0
- package/esm/babel.js +2 -0
- package/esm/babel.js.map +1 -0
- package/esm/cache.js +80 -0
- package/esm/cache.js.map +1 -0
- package/esm/debug/fileReporter.js +144 -0
- package/esm/debug/fileReporter.js.map +1 -0
- package/esm/evaluators/index.js +14 -0
- package/esm/evaluators/index.js.map +1 -0
- package/esm/index.js +24 -0
- package/esm/index.js.map +1 -0
- package/esm/module.js +316 -0
- package/esm/module.js.map +1 -0
- package/esm/options/babel-merge.d.js +2 -0
- package/esm/options/babel-merge.d.js.map +1 -0
- package/esm/options/buildOptions.js +28 -0
- package/esm/options/buildOptions.js.map +1 -0
- package/esm/options/loadBabelOptions.js +24 -0
- package/esm/options/loadBabelOptions.js.map +1 -0
- package/esm/plugins/babel-transform.js +53 -0
- package/esm/plugins/babel-transform.js.map +1 -0
- package/esm/plugins/collector.js +66 -0
- package/esm/plugins/collector.js.map +1 -0
- package/esm/plugins/dynamic-import.js +28 -0
- package/esm/plugins/dynamic-import.js.map +1 -0
- package/esm/plugins/preeval.js +75 -0
- package/esm/plugins/preeval.js.map +1 -0
- package/esm/plugins/shaker.js +296 -0
- package/esm/plugins/shaker.js.map +1 -0
- package/esm/shaker.js +50 -0
- package/esm/shaker.js.map +1 -0
- package/esm/transform/BaseEntrypoint.js +164 -0
- package/esm/transform/BaseEntrypoint.js.map +1 -0
- package/esm/transform/Entrypoint.helpers.js +168 -0
- package/esm/transform/Entrypoint.helpers.js.map +1 -0
- package/esm/transform/Entrypoint.js +212 -0
- package/esm/transform/Entrypoint.js.map +1 -0
- package/esm/transform/Entrypoint.types.js +2 -0
- package/esm/transform/Entrypoint.types.js.map +1 -0
- package/esm/transform/EvaluatedEntrypoint.js +6 -0
- package/esm/transform/EvaluatedEntrypoint.js.map +1 -0
- package/esm/transform/actions/AbortError.js +8 -0
- package/esm/transform/actions/AbortError.js.map +1 -0
- package/esm/transform/actions/BaseAction.js +134 -0
- package/esm/transform/actions/BaseAction.js.map +1 -0
- package/esm/transform/actions/UnprocessedEntrypointError.js +8 -0
- package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -0
- package/esm/transform/actions/actionRunner.js +73 -0
- package/esm/transform/actions/actionRunner.js.map +1 -0
- package/esm/transform/actions/types.js +2 -0
- package/esm/transform/actions/types.js.map +1 -0
- package/esm/transform/generators/baseProcessingHandlers.js +22 -0
- package/esm/transform/generators/baseProcessingHandlers.js.map +1 -0
- package/esm/transform/generators/collect.js +58 -0
- package/esm/transform/generators/collect.js.map +1 -0
- package/esm/transform/generators/evalFile.js +50 -0
- package/esm/transform/generators/evalFile.js.map +1 -0
- package/esm/transform/generators/explodeReexports.js +63 -0
- package/esm/transform/generators/explodeReexports.js.map +1 -0
- package/esm/transform/generators/extract.js +120 -0
- package/esm/transform/generators/extract.js.map +1 -0
- package/esm/transform/generators/getExports.js +73 -0
- package/esm/transform/generators/getExports.js.map +1 -0
- package/esm/transform/generators/index.js +13 -0
- package/esm/transform/generators/index.js.map +1 -0
- package/esm/transform/generators/processEntrypoint.js +43 -0
- package/esm/transform/generators/processEntrypoint.js.map +1 -0
- package/esm/transform/generators/processImports.js +23 -0
- package/esm/transform/generators/processImports.js.map +1 -0
- package/esm/transform/generators/resolveImports.js +148 -0
- package/esm/transform/generators/resolveImports.js.map +1 -0
- package/esm/transform/generators/transform.js +117 -0
- package/esm/transform/generators/transform.js.map +1 -0
- package/esm/transform/generators/workflow.js +82 -0
- package/esm/transform/generators/workflow.js.map +1 -0
- package/esm/transform/helpers/loadLinariaOptions.js +66 -0
- package/esm/transform/helpers/loadLinariaOptions.js.map +1 -0
- package/esm/transform/helpers/withDefaultServices.js +21 -0
- package/esm/transform/helpers/withDefaultServices.js.map +1 -0
- package/esm/transform/rootLog.js +3 -0
- package/esm/transform/rootLog.js.map +1 -0
- package/esm/transform/types.js +2 -0
- package/esm/transform/types.js.map +1 -0
- package/esm/transform.js +121 -0
- package/esm/transform.js.map +1 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/esm/utils/EventEmitter.js +52 -0
- package/esm/utils/EventEmitter.js.map +1 -0
- package/esm/utils/ShakerMetadata.js +2 -0
- package/esm/utils/ShakerMetadata.js.map +1 -0
- package/esm/utils/TransformMetadata.js +11 -0
- package/esm/utils/TransformMetadata.js.map +1 -0
- package/esm/utils/addIdentifierToLinariaPreval.js +68 -0
- package/esm/utils/addIdentifierToLinariaPreval.js.map +1 -0
- package/esm/utils/collectExportsAndImports.js +974 -0
- package/esm/utils/collectExportsAndImports.js.map +1 -0
- package/esm/utils/collectTemplateDependencies.js +219 -0
- package/esm/utils/collectTemplateDependencies.js.map +1 -0
- package/esm/utils/createId.js +6 -0
- package/esm/utils/createId.js.map +1 -0
- package/esm/utils/dispose-polyfill.js +6 -0
- package/esm/utils/dispose-polyfill.js.map +1 -0
- package/esm/utils/findIdentifiers.js +62 -0
- package/esm/utils/findIdentifiers.js.map +1 -0
- package/esm/utils/findPackageJSON.js +22 -0
- package/esm/utils/findPackageJSON.js.map +1 -0
- package/esm/utils/getFileIdx.js +10 -0
- package/esm/utils/getFileIdx.js.map +1 -0
- package/esm/utils/getPluginKey.js +13 -0
- package/esm/utils/getPluginKey.js.map +1 -0
- package/esm/utils/getScope.js +6 -0
- package/esm/utils/getScope.js.map +1 -0
- package/esm/utils/getSource.js +15 -0
- package/esm/utils/getSource.js.map +1 -0
- package/esm/utils/getTagProcessor.js +304 -0
- package/esm/utils/getTagProcessor.js.map +1 -0
- package/esm/utils/getVisitorKeys.js +5 -0
- package/esm/utils/getVisitorKeys.js.map +1 -0
- package/esm/utils/hasLinariaPreval.js +7 -0
- package/esm/utils/hasLinariaPreval.js.map +1 -0
- package/esm/utils/isExports.js +22 -0
- package/esm/utils/isExports.js.map +1 -0
- package/esm/utils/isGlobal.js +6 -0
- package/esm/utils/isGlobal.js.map +1 -0
- package/esm/utils/isNode.js +2 -0
- package/esm/utils/isNode.js.map +1 -0
- package/esm/utils/isNodePath.js +4 -0
- package/esm/utils/isNodePath.js.map +1 -0
- package/esm/utils/isNotNull.js +4 -0
- package/esm/utils/isNotNull.js.map +1 -0
- package/esm/utils/isRemoved.js +46 -0
- package/esm/utils/isRemoved.js.map +1 -0
- package/esm/utils/isRequire.js +13 -0
- package/esm/utils/isRequire.js.map +1 -0
- package/esm/utils/isSerializable.js +13 -0
- package/esm/utils/isSerializable.js.map +1 -0
- package/esm/utils/isTypedNode.js +6 -0
- package/esm/utils/isTypedNode.js.map +1 -0
- package/esm/utils/isUnnecessaryReactCall.js +72 -0
- package/esm/utils/isUnnecessaryReactCall.js.map +1 -0
- package/esm/utils/peek.js +2 -0
- package/esm/utils/peek.js.map +1 -0
- package/esm/utils/processTemplateExpression.js +11 -0
- package/esm/utils/processTemplateExpression.js.map +1 -0
- package/esm/utils/removeDangerousCode.js +127 -0
- package/esm/utils/removeDangerousCode.js.map +1 -0
- package/esm/utils/scopeHelpers.js +514 -0
- package/esm/utils/scopeHelpers.js.map +1 -0
- package/esm/utils/traversalCache.js +28 -0
- package/esm/utils/traversalCache.js.map +1 -0
- package/esm/utils/unwrapSequence.js +14 -0
- package/esm/utils/unwrapSequence.js.map +1 -0
- package/esm/utils/valueToLiteral.js +59 -0
- package/esm/utils/valueToLiteral.js.map +1 -0
- package/esm/utils/visitors/JSXElementsRemover.js +51 -0
- package/esm/utils/visitors/JSXElementsRemover.js.map +1 -0
- package/esm/vm/createVmContext.js +72 -0
- package/esm/vm/createVmContext.js.map +1 -0
- package/esm/vm/process.js +29 -0
- package/esm/vm/process.js.map +1 -0
- package/lib/babel.js +2 -0
- package/lib/babel.js.map +1 -0
- package/lib/cache.js +87 -0
- package/lib/cache.js.map +1 -0
- package/lib/debug/fileReporter.js +153 -0
- package/lib/debug/fileReporter.js.map +1 -0
- package/lib/evaluators/index.js +20 -0
- package/lib/evaluators/index.js.map +1 -0
- package/lib/index.js +225 -0
- package/lib/index.js.map +1 -0
- package/lib/module.js +327 -0
- package/lib/module.js.map +1 -0
- package/lib/options/babel-merge.d.js +2 -0
- package/lib/options/babel-merge.d.js.map +1 -0
- package/lib/options/buildOptions.js +35 -0
- package/lib/options/buildOptions.js.map +1 -0
- package/lib/options/loadBabelOptions.js +31 -0
- package/lib/options/loadBabelOptions.js.map +1 -0
- package/lib/plugins/babel-transform.js +60 -0
- package/lib/plugins/babel-transform.js.map +1 -0
- package/lib/plugins/collector.js +76 -0
- package/lib/plugins/collector.js.map +1 -0
- package/lib/plugins/dynamic-import.js +34 -0
- package/lib/plugins/dynamic-import.js.map +1 -0
- package/lib/plugins/preeval.js +82 -0
- package/lib/plugins/preeval.js.map +1 -0
- package/lib/plugins/shaker.js +303 -0
- package/lib/plugins/shaker.js.map +1 -0
- package/lib/shaker.js +58 -0
- package/lib/shaker.js.map +1 -0
- package/lib/transform/BaseEntrypoint.js +175 -0
- package/lib/transform/BaseEntrypoint.js.map +1 -0
- package/lib/transform/Entrypoint.helpers.js +182 -0
- package/lib/transform/Entrypoint.helpers.js.map +1 -0
- package/lib/transform/Entrypoint.js +226 -0
- package/lib/transform/Entrypoint.js.map +1 -0
- package/lib/transform/Entrypoint.types.js +2 -0
- package/lib/transform/Entrypoint.types.js.map +1 -0
- package/lib/transform/EvaluatedEntrypoint.js +13 -0
- package/lib/transform/EvaluatedEntrypoint.js.map +1 -0
- package/lib/transform/actions/AbortError.js +16 -0
- package/lib/transform/actions/AbortError.js.map +1 -0
- package/lib/transform/actions/BaseAction.js +144 -0
- package/lib/transform/actions/BaseAction.js.map +1 -0
- package/lib/transform/actions/UnprocessedEntrypointError.js +16 -0
- package/lib/transform/actions/UnprocessedEntrypointError.js.map +1 -0
- package/lib/transform/actions/actionRunner.js +82 -0
- package/lib/transform/actions/actionRunner.js.map +1 -0
- package/lib/transform/actions/types.js +2 -0
- package/lib/transform/actions/types.js.map +1 -0
- package/lib/transform/generators/baseProcessingHandlers.js +27 -0
- package/lib/transform/generators/baseProcessingHandlers.js.map +1 -0
- package/lib/transform/generators/collect.js +66 -0
- package/lib/transform/generators/collect.js.map +1 -0
- package/lib/transform/generators/evalFile.js +57 -0
- package/lib/transform/generators/evalFile.js.map +1 -0
- package/lib/transform/generators/explodeReexports.js +70 -0
- package/lib/transform/generators/explodeReexports.js.map +1 -0
- package/lib/transform/generators/extract.js +128 -0
- package/lib/transform/generators/extract.js.map +1 -0
- package/lib/transform/generators/getExports.js +80 -0
- package/lib/transform/generators/getExports.js.map +1 -0
- package/lib/transform/generators/index.js +19 -0
- package/lib/transform/generators/index.js.map +1 -0
- package/lib/transform/generators/processEntrypoint.js +49 -0
- package/lib/transform/generators/processEntrypoint.js.map +1 -0
- package/lib/transform/generators/processImports.js +29 -0
- package/lib/transform/generators/processImports.js.map +1 -0
- package/lib/transform/generators/resolveImports.js +158 -0
- package/lib/transform/generators/resolveImports.js.map +1 -0
- package/lib/transform/generators/transform.js +130 -0
- package/lib/transform/generators/transform.js.map +1 -0
- package/lib/transform/generators/workflow.js +90 -0
- package/lib/transform/generators/workflow.js.map +1 -0
- package/lib/transform/helpers/loadLinariaOptions.js +73 -0
- package/lib/transform/helpers/loadLinariaOptions.js.map +1 -0
- package/lib/transform/helpers/withDefaultServices.js +30 -0
- package/lib/transform/helpers/withDefaultServices.js.map +1 -0
- package/lib/transform/rootLog.js +9 -0
- package/lib/transform/rootLog.js.map +1 -0
- package/lib/transform/types.js +8 -0
- package/lib/transform/types.js.map +1 -0
- package/lib/transform.js +128 -0
- package/lib/transform.js.map +1 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/EventEmitter.js +61 -0
- package/lib/utils/EventEmitter.js.map +1 -0
- package/lib/utils/ShakerMetadata.js +9 -0
- package/lib/utils/ShakerMetadata.js.map +1 -0
- package/lib/utils/TransformMetadata.js +19 -0
- package/lib/utils/TransformMetadata.js.map +1 -0
- package/lib/utils/addIdentifierToLinariaPreval.js +75 -0
- package/lib/utils/addIdentifierToLinariaPreval.js.map +1 -0
- package/lib/utils/collectExportsAndImports.js +990 -0
- package/lib/utils/collectExportsAndImports.js.map +1 -0
- package/lib/utils/collectTemplateDependencies.js +233 -0
- package/lib/utils/collectTemplateDependencies.js.map +1 -0
- package/lib/utils/createId.js +13 -0
- package/lib/utils/createId.js.map +1 -0
- package/lib/utils/dispose-polyfill.js +9 -0
- package/lib/utils/dispose-polyfill.js.map +1 -0
- package/lib/utils/findIdentifiers.js +73 -0
- package/lib/utils/findIdentifiers.js.map +1 -0
- package/lib/utils/findPackageJSON.js +29 -0
- package/lib/utils/findPackageJSON.js.map +1 -0
- package/lib/utils/getFileIdx.js +16 -0
- package/lib/utils/getFileIdx.js.map +1 -0
- package/lib/utils/getPluginKey.js +21 -0
- package/lib/utils/getPluginKey.js.map +1 -0
- package/lib/utils/getScope.js +12 -0
- package/lib/utils/getScope.js.map +1 -0
- package/lib/utils/getSource.js +24 -0
- package/lib/utils/getSource.js.map +1 -0
- package/lib/utils/getTagProcessor.js +318 -0
- package/lib/utils/getTagProcessor.js.map +1 -0
- package/lib/utils/getVisitorKeys.js +11 -0
- package/lib/utils/getVisitorKeys.js.map +1 -0
- package/lib/utils/hasLinariaPreval.js +13 -0
- package/lib/utils/hasLinariaPreval.js.map +1 -0
- package/lib/utils/isExports.js +27 -0
- package/lib/utils/isExports.js.map +1 -0
- package/lib/utils/isGlobal.js +13 -0
- package/lib/utils/isGlobal.js.map +1 -0
- package/lib/utils/isNode.js +9 -0
- package/lib/utils/isNode.js.map +1 -0
- package/lib/utils/isNodePath.js +10 -0
- package/lib/utils/isNodePath.js.map +1 -0
- package/lib/utils/isNotNull.js +10 -0
- package/lib/utils/isNotNull.js.map +1 -0
- package/lib/utils/isRemoved.js +52 -0
- package/lib/utils/isRemoved.js.map +1 -0
- package/lib/utils/isRequire.js +18 -0
- package/lib/utils/isRequire.js.map +1 -0
- package/lib/utils/isSerializable.js +19 -0
- package/lib/utils/isSerializable.js.map +1 -0
- package/lib/utils/isTypedNode.js +13 -0
- package/lib/utils/isTypedNode.js.map +1 -0
- package/lib/utils/isUnnecessaryReactCall.js +81 -0
- package/lib/utils/isUnnecessaryReactCall.js.map +1 -0
- package/lib/utils/peek.js +9 -0
- package/lib/utils/peek.js.map +1 -0
- package/lib/utils/processTemplateExpression.js +18 -0
- package/lib/utils/processTemplateExpression.js.map +1 -0
- package/lib/utils/removeDangerousCode.js +134 -0
- package/lib/utils/removeDangerousCode.js.map +1 -0
- package/lib/utils/scopeHelpers.js +544 -0
- package/lib/utils/scopeHelpers.js.map +1 -0
- package/lib/utils/traversalCache.js +38 -0
- package/lib/utils/traversalCache.js.map +1 -0
- package/lib/utils/unwrapSequence.js +20 -0
- package/lib/utils/unwrapSequence.js.map +1 -0
- package/lib/utils/valueToLiteral.js +65 -0
- package/lib/utils/valueToLiteral.js.map +1 -0
- package/lib/utils/visitors/JSXElementsRemover.js +57 -0
- package/lib/utils/visitors/JSXElementsRemover.js.map +1 -0
- package/lib/vm/createVmContext.js +80 -0
- package/lib/vm/createVmContext.js.map +1 -0
- package/lib/vm/process.js +38 -0
- package/lib/vm/process.js.map +1 -0
- package/package.json +63 -0
- package/types/babel.d.ts +2 -0
- package/types/babel.js +2 -0
- package/types/cache.d.ts +24 -0
- package/types/cache.js +85 -0
- package/types/debug/fileReporter.d.ts +27 -0
- package/types/debug/fileReporter.js +151 -0
- package/types/evaluators/index.d.ts +10 -0
- package/types/evaluators/index.js +15 -0
- package/types/index.d.ts +30 -0
- package/types/index.js +69 -0
- package/types/module.d.ts +62 -0
- package/types/module.js +318 -0
- package/types/options/buildOptions.d.ts +7 -0
- package/types/options/buildOptions.js +35 -0
- package/types/options/loadBabelOptions.d.ts +3 -0
- package/types/options/loadBabelOptions.js +27 -0
- package/types/plugins/babel-transform.d.ts +4 -0
- package/types/plugins/babel-transform.js +49 -0
- package/types/plugins/collector.d.ts +16 -0
- package/types/plugins/collector.js +67 -0
- package/types/plugins/dynamic-import.d.ts +6 -0
- package/types/plugins/dynamic-import.js +32 -0
- package/types/plugins/preeval.d.ts +16 -0
- package/types/plugins/preeval.js +69 -0
- package/types/plugins/shaker.d.ts +11 -0
- package/types/plugins/shaker.js +299 -0
- package/types/shaker.d.ts +3 -0
- package/types/shaker.js +64 -0
- package/types/transform/BaseEntrypoint.d.ts +23 -0
- package/types/transform/BaseEntrypoint.js +182 -0
- package/types/transform/Entrypoint.d.ts +50 -0
- package/types/transform/Entrypoint.helpers.d.ts +14 -0
- package/types/transform/Entrypoint.helpers.js +169 -0
- package/types/transform/Entrypoint.js +223 -0
- package/types/transform/Entrypoint.types.d.ts +23 -0
- package/types/transform/Entrypoint.types.js +2 -0
- package/types/transform/EvaluatedEntrypoint.d.ts +16 -0
- package/types/transform/EvaluatedEntrypoint.js +9 -0
- package/types/transform/actions/AbortError.d.ts +4 -0
- package/types/transform/actions/AbortError.js +12 -0
- package/types/transform/actions/BaseAction.d.ts +40 -0
- package/types/transform/actions/BaseAction.js +149 -0
- package/types/transform/actions/UnprocessedEntrypointError.d.ts +6 -0
- package/types/transform/actions/UnprocessedEntrypointError.js +13 -0
- package/types/transform/actions/actionRunner.d.ts +4 -0
- package/types/transform/actions/actionRunner.js +86 -0
- package/types/transform/actions/types.d.ts +15 -0
- package/types/transform/actions/types.js +2 -0
- package/types/transform/generators/baseProcessingHandlers.d.ts +17 -0
- package/types/transform/generators/baseProcessingHandlers.js +23 -0
- package/types/transform/generators/collect.d.ts +6 -0
- package/types/transform/generators/collect.js +57 -0
- package/types/transform/generators/evalFile.d.ts +6 -0
- package/types/transform/generators/evalFile.js +56 -0
- package/types/transform/generators/explodeReexports.d.ts +7 -0
- package/types/transform/generators/explodeReexports.js +67 -0
- package/types/transform/generators/extract.d.ts +8 -0
- package/types/transform/generators/extract.js +116 -0
- package/types/transform/generators/getExports.d.ts +8 -0
- package/types/transform/generators/getExports.js +65 -0
- package/types/transform/generators/index.d.ts +15 -0
- package/types/transform/generators/index.js +15 -0
- package/types/transform/generators/processEntrypoint.d.ts +9 -0
- package/types/transform/generators/processEntrypoint.js +88 -0
- package/types/transform/generators/processImports.d.ts +5 -0
- package/types/transform/generators/processImports.js +21 -0
- package/types/transform/generators/resolveImports.d.ts +9 -0
- package/types/transform/generators/resolveImports.js +124 -0
- package/types/transform/generators/transform.d.ts +17 -0
- package/types/transform/generators/transform.js +115 -0
- package/types/transform/generators/workflow.d.ts +7 -0
- package/types/transform/generators/workflow.js +77 -0
- package/types/transform/helpers/loadLinariaOptions.d.ts +6 -0
- package/types/transform/helpers/loadLinariaOptions.js +86 -0
- package/types/transform/helpers/withDefaultServices.d.ts +5 -0
- package/types/transform/helpers/withDefaultServices.js +40 -0
- package/types/transform/rootLog.d.ts +3 -0
- package/types/transform/rootLog.js +5 -0
- package/types/transform/types.d.ts +137 -0
- package/types/transform/types.js +4 -0
- package/types/transform.d.ts +20 -0
- package/types/transform.js +121 -0
- package/types/types.d.ts +72 -0
- package/types/types.js +5 -0
- package/types/utils/EventEmitter.d.ts +58 -0
- package/types/utils/EventEmitter.js +61 -0
- package/types/utils/ShakerMetadata.d.ts +7 -0
- package/types/utils/ShakerMetadata.js +5 -0
- package/types/utils/TransformMetadata.d.ts +13 -0
- package/types/utils/TransformMetadata.js +17 -0
- package/types/utils/addIdentifierToLinariaPreval.d.ts +4 -0
- package/types/utils/addIdentifierToLinariaPreval.js +75 -0
- package/types/utils/collectExportsAndImports.d.ts +31 -0
- package/types/utils/collectExportsAndImports.js +962 -0
- package/types/utils/collectTemplateDependencies.d.ts +17 -0
- package/types/utils/collectTemplateDependencies.js +212 -0
- package/types/utils/createId.d.ts +2 -0
- package/types/utils/createId.js +9 -0
- package/types/utils/dispose-polyfill.d.ts +0 -0
- package/types/utils/dispose-polyfill.js +5 -0
- package/types/utils/findIdentifiers.d.ts +6 -0
- package/types/utils/findIdentifiers.js +68 -0
- package/types/utils/findPackageJSON.d.ts +1 -0
- package/types/utils/findPackageJSON.js +29 -0
- package/types/utils/getFileIdx.d.ts +1 -0
- package/types/utils/getFileIdx.js +13 -0
- package/types/utils/getPluginKey.d.ts +2 -0
- package/types/utils/getPluginKey.js +16 -0
- package/types/utils/getScope.d.ts +2 -0
- package/types/utils/getScope.js +11 -0
- package/types/utils/getSource.d.ts +2 -0
- package/types/utils/getSource.js +22 -0
- package/types/utils/getTagProcessor.d.ts +6 -0
- package/types/utils/getTagProcessor.js +315 -0
- package/types/utils/getVisitorKeys.d.ts +5 -0
- package/types/utils/getVisitorKeys.js +8 -0
- package/types/utils/hasLinariaPreval.d.ts +4 -0
- package/types/utils/hasLinariaPreval.js +9 -0
- package/types/utils/isExports.d.ts +6 -0
- package/types/utils/isExports.js +20 -0
- package/types/utils/isGlobal.d.ts +2 -0
- package/types/utils/isGlobal.js +9 -0
- package/types/utils/isNode.d.ts +2 -0
- package/types/utils/isNode.js +7 -0
- package/types/utils/isNodePath.d.ts +3 -0
- package/types/utils/isNodePath.js +7 -0
- package/types/utils/isNotNull.d.ts +1 -0
- package/types/utils/isNotNull.js +7 -0
- package/types/utils/isRemoved.d.ts +5 -0
- package/types/utils/isRemoved.js +42 -0
- package/types/utils/isRequire.d.ts +6 -0
- package/types/utils/isRequire.js +15 -0
- package/types/utils/isSerializable.d.ts +2 -0
- package/types/utils/isSerializable.js +18 -0
- package/types/utils/isTypedNode.d.ts +5 -0
- package/types/utils/isTypedNode.js +9 -0
- package/types/utils/isUnnecessaryReactCall.d.ts +3 -0
- package/types/utils/isUnnecessaryReactCall.js +76 -0
- package/types/utils/peek.d.ts +1 -0
- package/types/utils/peek.js +5 -0
- package/types/utils/processTemplateExpression.d.ts +5 -0
- package/types/utils/processTemplateExpression.js +17 -0
- package/types/utils/removeDangerousCode.d.ts +3 -0
- package/types/utils/removeDangerousCode.js +144 -0
- package/types/utils/scopeHelpers.d.ts +12 -0
- package/types/utils/scopeHelpers.js +568 -0
- package/types/utils/traversalCache.d.ts +5 -0
- package/types/utils/traversalCache.js +36 -0
- package/types/utils/unwrapSequence.d.ts +8 -0
- package/types/utils/unwrapSequence.js +17 -0
- package/types/utils/valueToLiteral.d.ts +3 -0
- package/types/utils/valueToLiteral.js +64 -0
- package/types/utils/visitors/JSXElementsRemover.d.ts +3 -0
- package/types/utils/visitors/JSXElementsRemover.js +52 -0
- package/types/vm/createVmContext.d.ts +7 -0
- package/types/vm/createVmContext.js +92 -0
- package/types/vm/process.d.ts +25 -0
- package/types/vm/process.js +32 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NodePath } from '@babel/traverse';
|
|
2
|
+
import type { Expression, TaggedTemplateExpression, TemplateElement } from '@babel/types';
|
|
3
|
+
import type { ExpressionValue } from '@wyw-in-js/shared';
|
|
4
|
+
import type { IImport } from './collectExportsAndImports';
|
|
5
|
+
/**
|
|
6
|
+
* Only an expression that can be evaluated in the root scope can be
|
|
7
|
+
* used in a Linaria template. This function tries to hoist the expression.
|
|
8
|
+
* @param ex The expression to hoist.
|
|
9
|
+
* @param evaluate If true, we try to statically evaluate the expression.
|
|
10
|
+
* @param imports All the imports of the file.
|
|
11
|
+
*/
|
|
12
|
+
export declare function extractExpression(ex: NodePath<Expression>, evaluate?: boolean, imports?: IImport[]): Omit<ExpressionValue, 'buildCodeFrameError' | 'source'>;
|
|
13
|
+
/**
|
|
14
|
+
* Collects, hoists, and makes lazy all expressions in the given template
|
|
15
|
+
* If evaluate is true, it will try to evaluate the expressions
|
|
16
|
+
*/
|
|
17
|
+
export declare function collectTemplateDependencies(path: NodePath<TaggedTemplateExpression>, evaluate?: boolean): [quasis: TemplateElement[], expressionValues: ExpressionValue[]];
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint @typescript-eslint/no-use-before-define: ["error", { "functions": false }] */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.collectTemplateDependencies = exports.extractExpression = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* This file is a visitor that checks TaggedTemplateExpressions and look for Linaria css or styled templates.
|
|
7
|
+
* For each template it makes a list of dependencies, try to evaluate expressions, and if it is not possible, mark them as lazy dependencies.
|
|
8
|
+
*/
|
|
9
|
+
const template_1 = require("@babel/template");
|
|
10
|
+
const types_1 = require("@babel/types");
|
|
11
|
+
const shared_1 = require("@wyw-in-js/shared");
|
|
12
|
+
const createId_1 = require("./createId");
|
|
13
|
+
const findIdentifiers_1 = require("./findIdentifiers");
|
|
14
|
+
const getSource_1 = require("./getSource");
|
|
15
|
+
const scopeHelpers_1 = require("./scopeHelpers");
|
|
16
|
+
const valueToLiteral_1 = require("./valueToLiteral");
|
|
17
|
+
function staticEval(ex, evaluate = false) {
|
|
18
|
+
if (!evaluate)
|
|
19
|
+
return undefined;
|
|
20
|
+
const result = ex.evaluate();
|
|
21
|
+
if (result.confident && !(0, shared_1.hasEvalMeta)(result.value)) {
|
|
22
|
+
return [result.value];
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
const expressionDeclarationTpl = (0, template_1.statement)('const %%expId%% = /*#__PURE__*/ () => %%expression%%', {
|
|
27
|
+
preserveComments: true,
|
|
28
|
+
});
|
|
29
|
+
const unsupported = (ex, reason) => ex.buildCodeFrameError(`This ${ex.isIdentifier() ? 'identifier' : 'expression'} cannot be used in the template${reason ? `, because it ${reason}` : ''}.`);
|
|
30
|
+
function getUidInRootScope(path) {
|
|
31
|
+
const { name } = path.node;
|
|
32
|
+
const rootScope = path.scope.getProgramParent();
|
|
33
|
+
if (rootScope.hasBinding(name)) {
|
|
34
|
+
return rootScope.generateUid(name);
|
|
35
|
+
}
|
|
36
|
+
return name;
|
|
37
|
+
}
|
|
38
|
+
function hoistVariableDeclarator(ex) {
|
|
39
|
+
if (!ex.scope.parent) {
|
|
40
|
+
// It is already in the root scope
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const referencedIdentifiers = (0, findIdentifiers_1.findIdentifiers)([ex], 'reference');
|
|
44
|
+
referencedIdentifiers.forEach((identifier) => {
|
|
45
|
+
if (identifier.isIdentifier()) {
|
|
46
|
+
hoistIdentifier(identifier);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const bindingIdentifiers = (0, findIdentifiers_1.findIdentifiers)([ex], 'declaration');
|
|
50
|
+
bindingIdentifiers.forEach((path) => {
|
|
51
|
+
const newName = getUidInRootScope(path);
|
|
52
|
+
if (newName !== path.node.name) {
|
|
53
|
+
path.scope.rename(path.node.name, newName);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
const rootScope = ex.scope.getProgramParent();
|
|
57
|
+
const statementInRoot = ex.findParent((p) => p.parentPath?.isProgram() === true);
|
|
58
|
+
const declaration = {
|
|
59
|
+
type: 'VariableDeclaration',
|
|
60
|
+
kind: 'let',
|
|
61
|
+
declarations: [(0, types_1.cloneNode)(ex.node)],
|
|
62
|
+
};
|
|
63
|
+
const [inserted] = statementInRoot.insertBefore(declaration);
|
|
64
|
+
(0, scopeHelpers_1.referenceAll)(inserted);
|
|
65
|
+
rootScope.registerDeclaration(inserted);
|
|
66
|
+
}
|
|
67
|
+
function hoistIdentifier(idPath) {
|
|
68
|
+
if (!idPath.isReferenced()) {
|
|
69
|
+
throw unsupported(idPath);
|
|
70
|
+
}
|
|
71
|
+
const binding = idPath.scope.getBinding(idPath.node.name);
|
|
72
|
+
if (!binding) {
|
|
73
|
+
// It's something strange
|
|
74
|
+
throw unsupported(idPath, 'is undefined');
|
|
75
|
+
}
|
|
76
|
+
if (binding.kind === 'module') {
|
|
77
|
+
// Modules are global by default
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (!['var', 'let', 'const', 'hoisted'].includes(binding.kind)) {
|
|
81
|
+
// This is not a variable, we can't hoist it
|
|
82
|
+
throw unsupported(binding.path, 'is a function parameter');
|
|
83
|
+
}
|
|
84
|
+
const { scope, path: bindingPath } = binding;
|
|
85
|
+
// parent here can be null or undefined in different versions of babel
|
|
86
|
+
if (!scope.parent) {
|
|
87
|
+
// The variable is already in the root scope
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (bindingPath.isVariableDeclarator()) {
|
|
91
|
+
hoistVariableDeclarator(bindingPath);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
throw unsupported(idPath);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Only an expression that can be evaluated in the root scope can be
|
|
98
|
+
* used in a Linaria template. This function tries to hoist the expression.
|
|
99
|
+
* @param ex The expression to hoist.
|
|
100
|
+
* @param evaluate If true, we try to statically evaluate the expression.
|
|
101
|
+
* @param imports All the imports of the file.
|
|
102
|
+
*/
|
|
103
|
+
function extractExpression(ex, evaluate = false, imports = []) {
|
|
104
|
+
if (ex.isLiteral() &&
|
|
105
|
+
('value' in ex.node || ex.node.type === 'NullLiteral')) {
|
|
106
|
+
return {
|
|
107
|
+
ex: ex.node,
|
|
108
|
+
kind: shared_1.ValueType.CONST,
|
|
109
|
+
value: ex.node.type === 'NullLiteral' ? null : ex.node.value,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const { loc } = ex.node;
|
|
113
|
+
const rootScope = ex.scope.getProgramParent();
|
|
114
|
+
const statementInRoot = ex.findParent((p) => p.parentPath?.isProgram() === true);
|
|
115
|
+
const isFunction = ex.isFunctionExpression() || ex.isArrowFunctionExpression();
|
|
116
|
+
// Generate next _expN name
|
|
117
|
+
const expUid = rootScope.generateUid('exp');
|
|
118
|
+
const evaluated = staticEval(ex, evaluate);
|
|
119
|
+
if (!evaluated) {
|
|
120
|
+
// If expression is not statically evaluable,
|
|
121
|
+
// we need to hoist all its referenced identifiers
|
|
122
|
+
// Collect all referenced identifiers
|
|
123
|
+
(0, findIdentifiers_1.findIdentifiers)([ex], 'reference').forEach((id) => {
|
|
124
|
+
if (!id.isIdentifier())
|
|
125
|
+
return;
|
|
126
|
+
// Try to evaluate and inline them…
|
|
127
|
+
const evaluatedId = staticEval(id, evaluate);
|
|
128
|
+
if (evaluatedId) {
|
|
129
|
+
(0, scopeHelpers_1.mutate)(id, (p) => {
|
|
130
|
+
p.replaceWith((0, valueToLiteral_1.valueToLiteral)(evaluatedId[0], ex));
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// … or hoist them to the root scope
|
|
135
|
+
hoistIdentifier(id);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
const kind = isFunction ? shared_1.ValueType.FUNCTION : shared_1.ValueType.LAZY;
|
|
140
|
+
// Declare _expN const with the lazy expression
|
|
141
|
+
const declaration = expressionDeclarationTpl({
|
|
142
|
+
expId: (0, createId_1.createId)(expUid),
|
|
143
|
+
expression: evaluated
|
|
144
|
+
? (0, valueToLiteral_1.valueToLiteral)(evaluated[0], ex)
|
|
145
|
+
: (0, types_1.cloneNode)(ex.node),
|
|
146
|
+
});
|
|
147
|
+
// Insert the declaration as close as possible to the original expression
|
|
148
|
+
const [inserted] = statementInRoot.insertBefore(declaration);
|
|
149
|
+
(0, scopeHelpers_1.referenceAll)(inserted);
|
|
150
|
+
rootScope.registerDeclaration(inserted);
|
|
151
|
+
const importedFrom = [];
|
|
152
|
+
function findImportSourceOfIdentifier(idPath) {
|
|
153
|
+
const exBindingIdentifier = idPath.scope.getBinding(idPath.node.name)
|
|
154
|
+
?.identifier;
|
|
155
|
+
const exImport = imports.find((i) => i.local.node === exBindingIdentifier) ?? null;
|
|
156
|
+
if (exImport) {
|
|
157
|
+
importedFrom.push(exImport.source);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (ex.isIdentifier()) {
|
|
161
|
+
findImportSourceOfIdentifier(ex);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
ex.traverse({
|
|
165
|
+
Identifier: findImportSourceOfIdentifier,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
// Replace the expression with the _expN() call
|
|
169
|
+
(0, scopeHelpers_1.mutate)(ex, (p) => {
|
|
170
|
+
p.replaceWith({
|
|
171
|
+
type: 'CallExpression',
|
|
172
|
+
callee: (0, createId_1.createId)(expUid),
|
|
173
|
+
arguments: [],
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
// eslint-disable-next-line no-param-reassign
|
|
177
|
+
ex.node.loc = loc;
|
|
178
|
+
// noinspection UnnecessaryLocalVariableJS
|
|
179
|
+
const result = {
|
|
180
|
+
kind,
|
|
181
|
+
ex: (0, createId_1.createId)(expUid, loc),
|
|
182
|
+
importedFrom,
|
|
183
|
+
};
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
exports.extractExpression = extractExpression;
|
|
187
|
+
const debug = shared_1.logger.extend('template-parse:identify-expressions');
|
|
188
|
+
/**
|
|
189
|
+
* Collects, hoists, and makes lazy all expressions in the given template
|
|
190
|
+
* If evaluate is true, it will try to evaluate the expressions
|
|
191
|
+
*/
|
|
192
|
+
function collectTemplateDependencies(path, evaluate = false) {
|
|
193
|
+
const quasi = path.get('quasi');
|
|
194
|
+
const quasis = quasi.get('quasis');
|
|
195
|
+
const expressions = quasi.get('expressions');
|
|
196
|
+
debug('Found: %s', expressions.length);
|
|
197
|
+
const expressionValues = expressions.map((ex) => {
|
|
198
|
+
const buildCodeFrameError = ex.buildCodeFrameError.bind(ex);
|
|
199
|
+
const source = (0, getSource_1.getSource)(ex);
|
|
200
|
+
if (!ex.isExpression()) {
|
|
201
|
+
throw buildCodeFrameError(`The expression '${source}' is not supported.`);
|
|
202
|
+
}
|
|
203
|
+
const extracted = extractExpression(ex, evaluate);
|
|
204
|
+
return {
|
|
205
|
+
...extracted,
|
|
206
|
+
source,
|
|
207
|
+
buildCodeFrameError,
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
return [quasis.map((p) => p.node), expressionValues];
|
|
211
|
+
}
|
|
212
|
+
exports.collectTemplateDependencies = collectTemplateDependencies;
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { NodePath } from '@babel/traverse';
|
|
2
|
+
import type { Node, Identifier, JSXIdentifier } from '@babel/types';
|
|
3
|
+
type FindType = 'any' | 'binding' | 'declaration' | 'reference';
|
|
4
|
+
export declare function nonType(path: NodePath): boolean;
|
|
5
|
+
export declare function findIdentifiers(expressions: NodePath<Node | null | undefined>[], type?: FindType): NodePath<Identifier | JSXIdentifier>[];
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findIdentifiers = exports.nonType = void 0;
|
|
4
|
+
const getScope_1 = require("./getScope");
|
|
5
|
+
function isInUnary(path) {
|
|
6
|
+
return path.parentPath?.isUnaryExpression() ?? false;
|
|
7
|
+
}
|
|
8
|
+
// It's possible for non-strict mode code to have variable deletions.
|
|
9
|
+
function isInDelete(path) {
|
|
10
|
+
return path.parentPath.node.operator === 'delete';
|
|
11
|
+
}
|
|
12
|
+
function isBindingIdentifier(path) {
|
|
13
|
+
return path.isBindingIdentifier() && (!isInUnary(path) || isInDelete(path));
|
|
14
|
+
}
|
|
15
|
+
function isReferencedIdentifier(path) {
|
|
16
|
+
return (path.isReferencedIdentifier() || (isInUnary(path) && !isInDelete(path)));
|
|
17
|
+
}
|
|
18
|
+
// For some reasons, `isBindingIdentifier` returns true for identifiers inside unary expressions.
|
|
19
|
+
const checkers = {
|
|
20
|
+
any: (ex) => isBindingIdentifier(ex) || isReferencedIdentifier(ex),
|
|
21
|
+
binding: (ex) => isBindingIdentifier(ex),
|
|
22
|
+
declaration: (ex) => isBindingIdentifier(ex) &&
|
|
23
|
+
ex.scope.getBinding(ex.node.name)?.identifier === ex.node,
|
|
24
|
+
reference: (ex) => isReferencedIdentifier(ex),
|
|
25
|
+
};
|
|
26
|
+
function nonType(path) {
|
|
27
|
+
return !path.find((p) => p.isTSTypeReference() ||
|
|
28
|
+
p.isTSTypeQuery() ||
|
|
29
|
+
p.isFlowType() ||
|
|
30
|
+
p.isFlowDeclaration() ||
|
|
31
|
+
p.isTSInterfaceDeclaration());
|
|
32
|
+
}
|
|
33
|
+
exports.nonType = nonType;
|
|
34
|
+
function findIdentifiers(expressions, type = 'reference') {
|
|
35
|
+
const identifiers = [];
|
|
36
|
+
expressions.forEach((ex) => {
|
|
37
|
+
const emit = (path) => {
|
|
38
|
+
if (!path.node || path.removed || !checkers[type](path)) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// TODO: Is there a better way to check that it's a local variable?
|
|
42
|
+
const binding = (0, getScope_1.getScope)(path).getBinding(path.node.name);
|
|
43
|
+
if (!binding) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (type === 'reference' && ex.isAncestor(binding.path)) {
|
|
47
|
+
// This identifier is declared inside the expression. We don't need it.
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
identifiers.push(path);
|
|
51
|
+
};
|
|
52
|
+
if (ex.isIdentifier() || ex.isJSXIdentifier()) {
|
|
53
|
+
emit(ex);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
ex.traverse({
|
|
57
|
+
Identifier(path) {
|
|
58
|
+
emit(path);
|
|
59
|
+
},
|
|
60
|
+
JSXIdentifier(path) {
|
|
61
|
+
emit(path);
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return identifiers;
|
|
67
|
+
}
|
|
68
|
+
exports.findIdentifiers = findIdentifiers;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function findPackageJSON(pkgName: string, filename: string | null | undefined): string | undefined;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.findPackageJSON = void 0;
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const find_up_1 = __importDefault(require("find-up"));
|
|
9
|
+
const cache = new Map();
|
|
10
|
+
function findPackageJSON(pkgName, filename) {
|
|
11
|
+
try {
|
|
12
|
+
const pkgPath = pkgName === '.' && filename && (0, path_1.isAbsolute)(filename)
|
|
13
|
+
? filename
|
|
14
|
+
: require.resolve(pkgName, filename ? { paths: [(0, path_1.dirname)(filename)] } : {});
|
|
15
|
+
if (!cache.has(pkgPath)) {
|
|
16
|
+
cache.set(pkgPath, find_up_1.default.sync('package.json', { cwd: pkgPath }));
|
|
17
|
+
}
|
|
18
|
+
return cache.get(pkgPath);
|
|
19
|
+
}
|
|
20
|
+
catch (er) {
|
|
21
|
+
if (typeof er === 'object' &&
|
|
22
|
+
er !== null &&
|
|
23
|
+
er.code === 'MODULE_NOT_FOUND') {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
throw er;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.findPackageJSON = findPackageJSON;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getFileIdx(name: string): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFileIdx = void 0;
|
|
4
|
+
let nextIdx = 1;
|
|
5
|
+
const processed = new Map();
|
|
6
|
+
function getFileIdx(name) {
|
|
7
|
+
if (!processed.has(name)) {
|
|
8
|
+
// eslint-disable-next-line no-plusplus
|
|
9
|
+
processed.set(name, nextIdx++);
|
|
10
|
+
}
|
|
11
|
+
return processed.get(name).toString().padStart(5, '0');
|
|
12
|
+
}
|
|
13
|
+
exports.getFileIdx = getFileIdx;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPluginKey = void 0;
|
|
4
|
+
const getPluginKey = (plugin) => {
|
|
5
|
+
if (typeof plugin === 'string') {
|
|
6
|
+
return plugin;
|
|
7
|
+
}
|
|
8
|
+
if (Array.isArray(plugin)) {
|
|
9
|
+
return (0, exports.getPluginKey)(plugin[0]);
|
|
10
|
+
}
|
|
11
|
+
if (typeof plugin === 'object' && plugin !== null && 'key' in plugin) {
|
|
12
|
+
return plugin.key ?? null;
|
|
13
|
+
}
|
|
14
|
+
return null;
|
|
15
|
+
};
|
|
16
|
+
exports.getPluginKey = getPluginKey;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getScope = void 0;
|
|
4
|
+
function getScope(path) {
|
|
5
|
+
// In some nodes (like FunctionDeclaration) `scope` for `id` returns
|
|
6
|
+
// local function scope instead of a scope where function is declared.
|
|
7
|
+
return path.key === 'id' && path.parent === path.scope.block
|
|
8
|
+
? path.scope.parent
|
|
9
|
+
: path.scope;
|
|
10
|
+
}
|
|
11
|
+
exports.getScope = getScope;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSource = void 0;
|
|
7
|
+
const generator_1 = __importDefault(require("@babel/generator"));
|
|
8
|
+
const getSource = (path, force = false) => {
|
|
9
|
+
if (path.isIdentifier()) {
|
|
10
|
+
// Fast-lane for identifiers
|
|
11
|
+
return path.node.name;
|
|
12
|
+
}
|
|
13
|
+
let source;
|
|
14
|
+
try {
|
|
15
|
+
source = force ? undefined : path.getSource();
|
|
16
|
+
// eslint-disable-next-line no-empty
|
|
17
|
+
}
|
|
18
|
+
catch { }
|
|
19
|
+
source = source || (0, generator_1.default)(path.node).code;
|
|
20
|
+
return path.node.extra?.parenthesized ? `(${source})` : source;
|
|
21
|
+
};
|
|
22
|
+
exports.getSource = getSource;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { NodePath } from '@babel/traverse';
|
|
2
|
+
import type { Identifier } from '@babel/types';
|
|
3
|
+
import { BaseProcessor } from '@wyw-in-js/processor-utils';
|
|
4
|
+
import type { IFileContext } from '@wyw-in-js/processor-utils';
|
|
5
|
+
import type { StrictOptions } from '@wyw-in-js/shared';
|
|
6
|
+
export declare function getTagProcessor(path: NodePath<Identifier>, fileContext: IFileContext, options: Pick<StrictOptions, 'classNameSlug' | 'displayName' | 'evaluate' | 'tagResolver'>): BaseProcessor | null;
|