@gluestack-style/babel-plugin-styled-resolver
Advanced tools
Comparing version 0.1.14 to 0.1.15-alpha.0
@@ -1,1 +0,1 @@ | ||
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var fs=require('fs');var path=require('path');var babel=require('@babel/parser');var generate=require('@babel/generator').default;var babelPresetTypeScript=require('@babel/preset-typescript');var traverse=require('@babel/traverse').default;var types=require('@babel/types');var _require=require('@gluestack-style/react/lib/commonjs/resolver'),styledResolvedToOrderedSXResolved=_require.styledResolvedToOrderedSXResolved,styledToStyledResolved=_require.styledToStyledResolved,getStyleIds=_require.getStyleIds;var _require2=require('@gluestack-style/react/lib/commonjs/convertSxToSxVerbosed'),convertStyledToStyledVerbosed=_require2.convertStyledToStyledVerbosed,convertSxToSxVerbosed=_require2.convertSxToSxVerbosed;var _require3=require('@gluestack-style/react/lib/commonjs/propertyTokenMap'),propertyTokenMap=_require3.propertyTokenMap;var _require4=require('@gluestack-style/react/lib/commonjs/stableHash'),stableHash=_require4.stableHash;var _require5=require('@gluestack-style/react/lib/commonjs/updateCSSStyleInOrderedResolved'),INTERNAL_updateCSSStyleInOrderedResolved=_require5.INTERNAL_updateCSSStyleInOrderedResolved;var _require6=require('@gluestack-style/react/lib/commonjs/updateCSSStyleInOrderedResolved.web'),INTERNAL_updateCSSStyleInOrderedResolvedWeb=_require6.INTERNAL_updateCSSStyleInOrderedResolved;var IMPORT_NAME='@gluestack-style/react';var configThemePath=[];function addQuotesToObjectKeys(code){var ast=babel.parse("var a = "+code,{presets:[babelPresetTypeScript],plugins:['typescript'],sourceType:'module'});traverse(ast,{ObjectProperty:function ObjectProperty(path){if(types.isTemplateLiteral(path.node.value)){path.node.value=types.stringLiteral(path.node.value.quasis[0].value.raw);}if(types.isIdentifier(path.node.key)){path.node.key=types.stringLiteral(path.node.key.name);}if(types.isNumericLiteral(path.node.key)){path.node.key=types.stringLiteral(path.node.key.extra.raw);}if(types.isStringLiteral(path.node.value)){path.node.value=types.stringLiteral(path.node.value.value);}}});var initAst;traverse(ast,{VariableDeclarator:function VariableDeclarator(path){initAst=path.node.init;}});var _generate=generate(initAst,{sourceType:'module',presets:[babelPresetTypeScript],plugins:['typescript']}),output=_generate.code;return output;}var merge=require('lodash.merge');var _require7=require('process'),exit=_require7.exit;var checkIfPathIsAbsolute=function checkIfPathIsAbsolute(path){return path.startsWith('/');};function getConfig(configPath){if(configPath){return fs.readFileSync(path.join(!checkIfPathIsAbsolute(configPath)?process.cwd():'',configPath),'utf8');}var isConfigJSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-style.config.js'));var isGlueStackUIConfigJSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-ui.config.js'));var isConfigTSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-style.config.ts'));var isGlueStackUIConfigTSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-ui.config.ts'));if(isConfigTSExist){return fs.readFileSync(path.join(process.cwd(),'./gluestack-style.config.ts'),'utf8');}if(isConfigJSExist){return fs.readFileSync(path.join(process.cwd(),'./gluestack-style.config.js'),'utf8');}if(isGlueStackUIConfigJSExist){configThemePath=['theme'];return fs.readFileSync(path.join(process.cwd(),'./gluestack-ui.config.js'),'utf8');}if(isGlueStackUIConfigTSExist){configThemePath=['theme'];return fs.readFileSync(path.join(process.cwd(),'./gluestack-ui.config.ts'),'utf8');}}function getSurroundingCharacters(string,index){var start=Math.max(0,index-5);var end=Math.min(string.length,index+6);return string.slice(start,end);}function getExportedConfigFromFileString(fileData){var _fileData,_objectCode,_addQuotesToObjectKey;if(!fileData){return{};}fileData=(_fileData=fileData)==null?void 0:_fileData.replace(/as const/g,'');var ast=babel.parse(fileData,{presets:[babelPresetTypeScript],plugins:['typescript'],sourceType:'module',comments:false});var config={};traverse(ast,{CallExpression:function CallExpression(path){var _path$node=path.node,callee=_path$node.callee,args=_path$node.arguments;if(types.isIdentifier(callee,{name:'createConfig'})&&args.length===1&&types.isObjectExpression(args[0])){path.replaceWith(args[0]);}}});traverse(ast,{ExportNamedDeclaration:function ExportNamedDeclaration(path){path.traverse({VariableDeclarator:function VariableDeclarator(variableDeclaratorPath){config=variableDeclaratorPath.node.init;}});},Identifier:function Identifier(path){if(path.node.name==='undefined'){path.node.name='null';}}});var objectCode=generate(config).code;objectCode=(_objectCode=objectCode)==null?void 0:_objectCode.replace(/\/\/.*|\/\*[\s\S]*?\*\//g,'');objectCode=(_addQuotesToObjectKey=addQuotesToObjectKeys(objectCode))==null?void 0:_addQuotesToObjectKey.replace(/'/g,'"');return JSON.parse(objectCode);}function replaceSingleQuotes(str){var inDoubleQuotes=false;var newStr='';for(var i=0;i<str.length;i++){if(str[i]==='"'){inDoubleQuotes=!inDoubleQuotes;}if(str[i]==="'"&&!inDoubleQuotes){newStr+='"';}else{newStr+=str[i];}}return newStr;}function getObjectFromAstNode(node){var objectCode=generate(node).code;objectCode=addQuotesToObjectKeys(objectCode.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g,function(m,g){return g?'':m;}));objectCode=replaceSingleQuotes(objectCode);return JSON.parse(objectCode);}var CONFIG=getExportedConfigFromFileString(getConfig());var ConfigDefault=CONFIG;module.exports=function(b){var t=b.types;function generateObjectAst(obj){var properties=Object.entries(obj).map(function(_ref){var _ref2=(0,_slicedToArray2.default)(_ref,2),key=_ref2[0],value=_ref2[1];if(typeof value==='undefined'){return;}else if(typeof value==='object'&&!Array.isArray(value)){return t.objectProperty(t.stringLiteral(key),generateObjectAst(value));}else if(typeof value==='object'&&Array.isArray(value)){var elements=value.map(function(obj){if(typeof obj==='string'){return t.stringLiteral(obj);}else{return generateObjectAst(obj);}});return t.objectProperty(t.stringLiteral(key),t.arrayExpression(elements));}else if(typeof value==='boolean'){return t.objectProperty(t.stringLiteral(key),t.booleanLiteral(value));}else{return t.objectProperty(t.stringLiteral(key),typeof value==='number'?t.numericLiteral(value):t.stringLiteral(value));}});return t.objectExpression(properties.filter(function(property){return property;}));}function generateArrayAst(arr){return t.arrayExpression(arr.map(function(obj){return generateObjectAst(obj);}));}function checkWebFileExists(filePath){if(filePath.includes('node_modules')){return false;}var ext=path.extname(filePath);var dirname=path.dirname(filePath);var basename=path.basename(filePath,ext);var webFilePath=path.join(dirname,basename+".web"+ext);return fs.existsSync(webFilePath);}var styledImportName='';var styledAlias='';var styledAliasImportedName='';var tempPropertyResolverNode;var isValidConfig=true;var platform='all';var sourceFileName=IMPORT_NAME;var currentFileName='file not found!';var configPath;var libraryName='@gluestack-style/react';var outputLibrary;return{name:'ast-transform',visitor:{ImportDeclaration:function ImportDeclaration(importPath,state){var _state$opts,_state$opts2,_state$opts3,_state$opts4,_state$opts5,_state$opts7,_state$opts9;sourceFileName=(state==null?void 0:(_state$opts=state.opts)==null?void 0:_state$opts.filename)||IMPORT_NAME;currentFileName=state.file.opts.filename;styledAlias=state==null?void 0:(_state$opts2=state.opts)==null?void 0:_state$opts2.styledAlias;libraryName=(state==null?void 0:(_state$opts3=state.opts)==null?void 0:_state$opts3.libraryName)||libraryName;outputLibrary=(state==null?void 0:(_state$opts4=state.opts)==null?void 0:_state$opts4.outputLibrary)||outputLibrary;if(state!=null&&(_state$opts5=state.opts)!=null&&_state$opts5.configPath){var _state$opts6;configPath=state==null?void 0:(_state$opts6=state.opts)==null?void 0:_state$opts6.configPath;}if(state!=null&&(_state$opts7=state.opts)!=null&&_state$opts7.configThemePath){var _state$opts8;configThemePath=state==null?void 0:(_state$opts8=state.opts)==null?void 0:_state$opts8.configThemePath;}if(state!=null&&(_state$opts9=state.opts)!=null&&_state$opts9.platform){var _state$opts10;platform=state==null?void 0:(_state$opts10=state.opts)==null?void 0:_state$opts10.platform;}else{platform='all';}if(configPath){ConfigDefault=getExportedConfigFromFileString(getConfig(configPath));}configThemePath.forEach(function(path){var _ConfigDefault;ConfigDefault=(_ConfigDefault=ConfigDefault)==null?void 0:_ConfigDefault[path];});configThemePath=[];if(!currentFileName.includes('node_modules')){if(currentFileName.includes('.web.')){platform='web';}else if(checkWebFileExists(currentFileName)){platform='native';}}var filePath=state.file.opts.filename.split('/');filePath.pop();var absoluteStyledImportPath=path.resolve(filePath.join('/'),importPath.node.source.value);if(importPath.node.source.value===libraryName||absoluteStyledImportPath===sourceFileName){importPath.traverse({ImportSpecifier:function ImportSpecifier(importSpecifierPath){if(importSpecifierPath.node.imported.name==='styled'){styledImportName=importSpecifierPath.node.local.name;}if(importSpecifierPath.node.imported.name===styledAlias){styledAliasImportedName=importSpecifierPath.node.local.name;}}});}},CallExpression:function CallExpression(path){if(path.node.callee.name===styledAliasImportedName||path.node.callee.name===styledImportName){path.traverse({ObjectProperty:function ObjectProperty(ObjectPath){if(t.isIdentifier(ObjectPath.node.value)){if(ObjectPath.node.value.name==='undefined'){ObjectPath.remove();}}}});if(isValidConfig){var _args$,_args$2,_ConfigDefault2;var args=path.node.arguments;var componentThemeNode=args[1];var componentConfigNode=(_args$=args[2])!=null?_args$:t.objectExpression([]);var extendedThemeNode=(_args$2=args[3])!=null?_args$2:t.objectExpression([]);var extendedThemeNodeProps=[];if(extendedThemeNode&&extendedThemeNode!=null&&extendedThemeNode.properties){extendedThemeNode==null?void 0:extendedThemeNode.properties.forEach(function(prop){if(prop.key.name==='propertyResolver'){tempPropertyResolverNode=prop;}else{extendedThemeNodeProps.push(prop);}});extendedThemeNode.properties=extendedThemeNodeProps;}var theme=getObjectFromAstNode(componentThemeNode);var ExtendedConfig=getObjectFromAstNode(extendedThemeNode);var componentConfig=getObjectFromAstNode(componentConfigNode);if(extendedThemeNode&&tempPropertyResolverNode){extendedThemeNode.properties.push(tempPropertyResolverNode);}var mergedPropertyConfig=(0,_extends2.default)({},(_ConfigDefault2=ConfigDefault)==null?void 0:_ConfigDefault2.propertyTokenMap,propertyTokenMap);var componentExtendedConfig=merge({},(0,_extends2.default)({},ConfigDefault,{propertyTokenMap:(0,_extends2.default)({},mergedPropertyConfig)}),ExtendedConfig);var verbosedTheme=convertStyledToStyledVerbosed(theme);var resolvedStyles=styledToStyledResolved(verbosedTheme,[],componentExtendedConfig);var orderedResolved=styledResolvedToOrderedSXResolved(resolvedStyles);var themeHash=stableHash((0,_extends2.default)({},verbosedTheme,componentConfig));if(outputLibrary){themeHash=outputLibrary+'-'+themeHash;}if(platform==='all'){INTERNAL_updateCSSStyleInOrderedResolvedWeb(orderedResolved,themeHash,true);}else if(platform==='web'){INTERNAL_updateCSSStyleInOrderedResolvedWeb(orderedResolved,themeHash,false);}else{INTERNAL_updateCSSStyleInOrderedResolved(orderedResolved,themeHash,true);}var styleIds=getStyleIds(orderedResolved,componentConfig);var styleIdsAst=generateObjectAst(styleIds);var themeHashAst=t.stringLiteral(themeHash);var orderedResolvedAst=generateArrayAst(orderedResolved);var resultParamsNode=t.objectExpression([t.objectProperty(t.stringLiteral('orderedResolved'),orderedResolvedAst),t.objectProperty(t.stringLiteral('styleIds'),styleIdsAst),t.objectProperty(t.stringLiteral('themeHash'),themeHashAst)]);while(args.length<4){args.push(t.objectExpression([]));}if(!args[4]){args.push(resultParamsNode);}else{args[4]=resultParamsNode;}}}}}};}; | ||
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var fs=require('fs');var path=require('path');var babel=require('@babel/parser');var generate=require('@babel/generator').default;var babelPresetTypeScript=require('@babel/preset-typescript');var traverse=require('@babel/traverse').default;var types=require('@babel/types');var _require=require('@gluestack-style/react/lib/commonjs/resolver/getStyleIds'),getStyleIds=_require.getStyleIds;var _require2=require('@gluestack-style/react/lib/commonjs/resolver/orderedResolved'),styledResolvedToOrderedSXResolved=_require2.styledResolvedToOrderedSXResolved;var _require3=require('@gluestack-style/react/lib/commonjs/resolver/styledResolved'),styledToStyledResolved=_require3.styledToStyledResolved;var _require4=require('@gluestack-style/react/lib/commonjs/convertSxToSxVerbosed'),convertStyledToStyledVerbosed=_require4.convertStyledToStyledVerbosed,convertSxToSxVerbosed=_require4.convertSxToSxVerbosed;var _require5=require('@gluestack-style/react/lib/commonjs/propertyTokenMap'),propertyTokenMap=_require5.propertyTokenMap;var _require6=require('@gluestack-style/react/lib/commonjs/stableHash'),stableHash=_require6.stableHash;var _require7=require('@gluestack-style/react/lib/commonjs/updateCSSStyleInOrderedResolved'),INTERNAL_updateCSSStyleInOrderedResolved=_require7.INTERNAL_updateCSSStyleInOrderedResolved;var _require8=require('@gluestack-style/react/lib/commonjs/updateCSSStyleInOrderedResolved.web'),INTERNAL_updateCSSStyleInOrderedResolvedWeb=_require8.INTERNAL_updateCSSStyleInOrderedResolved;var _require9=require('@gluestack-style/react/lib/commonjs/core/convert-utility-to-sx'),convertUtilityPropsToSX=_require9.convertUtilityPropsToSX;var _require10=require('@gluestack-style/react/lib/commonjs/core/styled-system'),CSSPropertiesMap=_require10.CSSPropertiesMap;var IMPORT_NAME='@gluestack-style/react';var configThemePath=[];function addQuotesToObjectKeys(code){var ast=babel.parse("var a = "+code,{presets:[babelPresetTypeScript],plugins:['typescript'],sourceType:'module'});traverse(ast,{ObjectProperty:function ObjectProperty(path){if(types.isTemplateLiteral(path.node.value)){path.node.value=types.stringLiteral(path.node.value.quasis[0].value.raw);}if(types.isIdentifier(path.node.key)){path.node.key=types.stringLiteral(path.node.key.name);}if(types.isNumericLiteral(path.node.key)){path.node.key=types.stringLiteral(path.node.key.extra.raw);}if(types.isStringLiteral(path.node.value)){path.node.value=types.stringLiteral(path.node.value.value);}}});var initAst;traverse(ast,{VariableDeclarator:function VariableDeclarator(path){initAst=path.node.init;}});var _generate=generate(initAst,{sourceType:'module',presets:[babelPresetTypeScript],plugins:['typescript']}),output=_generate.code;return output;}var merge=require('lodash.merge');var _require11=require('process'),exit=_require11.exit;var checkIfPathIsAbsolute=function checkIfPathIsAbsolute(path){return path.startsWith('/');};function getConfig(configPath){if(configPath){return fs.readFileSync(path.join(!checkIfPathIsAbsolute(configPath)?process.cwd():'',configPath),'utf8');}var isConfigJSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-style.config.js'));var isGlueStackUIConfigJSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-ui.config.js'));var isConfigTSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-style.config.ts'));var isGlueStackUIConfigTSExist=fs.existsSync(path.join(process.cwd(),'./gluestack-ui.config.ts'));if(isConfigTSExist){return fs.readFileSync(path.join(process.cwd(),'./gluestack-style.config.ts'),'utf8');}if(isConfigJSExist){return fs.readFileSync(path.join(process.cwd(),'./gluestack-style.config.js'),'utf8');}if(isGlueStackUIConfigJSExist){configThemePath=['theme'];return fs.readFileSync(path.join(process.cwd(),'./gluestack-ui.config.js'),'utf8');}if(isGlueStackUIConfigTSExist){configThemePath=['theme'];return fs.readFileSync(path.join(process.cwd(),'./gluestack-ui.config.ts'),'utf8');}}function getSurroundingCharacters(string,index){var start=Math.max(0,index-5);var end=Math.min(string.length,index+6);return string.slice(start,end);}function getExportedConfigFromFileString(fileData){var _fileData,_objectCode,_addQuotesToObjectKey;if(!fileData){return{};}fileData=(_fileData=fileData)==null?void 0:_fileData.replace(/as const/g,'');var ast=babel.parse(fileData,{presets:[babelPresetTypeScript],plugins:['typescript'],sourceType:'module',comments:false});var config={};traverse(ast,{CallExpression:function CallExpression(path){var _path$node=path.node,callee=_path$node.callee,args=_path$node.arguments;if(types.isIdentifier(callee,{name:'createConfig'})&&args.length===1&&types.isObjectExpression(args[0])){path.replaceWith(args[0]);}}});traverse(ast,{ExportNamedDeclaration:function ExportNamedDeclaration(path){path.traverse({VariableDeclarator:function VariableDeclarator(variableDeclaratorPath){config=variableDeclaratorPath.node.init;}});},Identifier:function Identifier(path){if(path.node.name==='undefined'){path.node.name='null';}}});var objectCode=generate(config).code;objectCode=(_objectCode=objectCode)==null?void 0:_objectCode.replace(/\/\/.*|\/\*[\s\S]*?\*\//g,'');objectCode=(_addQuotesToObjectKey=addQuotesToObjectKeys(objectCode))==null?void 0:_addQuotesToObjectKey.replace(/'/g,'"');return JSON.parse(objectCode);}function replaceSingleQuotes(str){var inDoubleQuotes=false;var newStr='';for(var i=0;i<str.length;i++){if(str[i]==='"'){inDoubleQuotes=!inDoubleQuotes;}if(str[i]==="'"&&!inDoubleQuotes){newStr+='"';}else{newStr+=str[i];}}return newStr;}function getObjectFromAstNode(node){var objectCode=generate(node).code;objectCode=addQuotesToObjectKeys(objectCode.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g,function(m,g){return g?'':m;}));objectCode=replaceSingleQuotes(objectCode);return JSON.parse(objectCode);}var CONFIG=getExportedConfigFromFileString(getConfig());var ConfigDefault=CONFIG;module.exports=function(b){var t=b.types;function generateObjectAst(obj){var properties=Object.entries(obj).map(function(_ref){var _ref2=(0,_slicedToArray2.default)(_ref,2),key=_ref2[0],value=_ref2[1];if(typeof value==='undefined'){return;}else if(typeof value==='object'&&!Array.isArray(value)){return t.objectProperty(t.stringLiteral(key),generateObjectAst(value));}else if(typeof value==='object'&&Array.isArray(value)){var elements=value.map(function(obj){if(typeof obj==='string'){return t.stringLiteral(obj);}else{return generateObjectAst(obj);}});return t.objectProperty(t.stringLiteral(key),t.arrayExpression(elements));}else if(typeof value==='boolean'){return t.objectProperty(t.stringLiteral(key),t.booleanLiteral(value));}else{return t.objectProperty(t.stringLiteral(key),typeof value==='number'?t.numericLiteral(value):t.stringLiteral(value));}});return t.objectExpression(properties.filter(function(property){return property;}));}function generateArrayAst(arr){return t.arrayExpression(arr.map(function(obj){return generateObjectAst(obj);}));}function checkWebFileExists(filePath){if(filePath.includes('node_modules')){return false;}var ext=path.extname(filePath);var dirname=path.dirname(filePath);var basename=path.basename(filePath,ext);var webFilePath=path.join(dirname,basename+".web"+ext);return fs.existsSync(webFilePath);}var styledImportName='';var styledAlias='';var styledAliasImportedName='';var tempPropertyResolverNode;var isValidConfig=true;var platform='all';var sourceFileName=IMPORT_NAME;var currentFileName='file not found!';var configPath;var libraryName='@gluestack-style/react';var uiLibraryName='';var outputLibrary;var componentSXProp;var componentUtilityProps;var uiLibraryPath;var guessingStyledComponents=[];return{name:'ast-transform',visitor:{ImportDeclaration:function ImportDeclaration(importPath,state){var _state$opts,_state$opts2,_state$opts3,_state$opts4,_state$opts5,_state$opts6,_state$opts7,_state$opts9,_state$opts11;sourceFileName=(state==null?void 0:(_state$opts=state.opts)==null?void 0:_state$opts.filename)||IMPORT_NAME;currentFileName=state.file.opts.filename;styledAlias=state==null?void 0:(_state$opts2=state.opts)==null?void 0:_state$opts2.styledAlias;libraryName=(state==null?void 0:(_state$opts3=state.opts)==null?void 0:_state$opts3.libraryName)||libraryName;outputLibrary=(state==null?void 0:(_state$opts4=state.opts)==null?void 0:_state$opts4.outputLibrary)||outputLibrary;uiLibraryName=(state==null?void 0:(_state$opts5=state.opts)==null?void 0:_state$opts5.uiLibraryName)||uiLibraryName;uiLibraryPath=(state==null?void 0:(_state$opts6=state.opts)==null?void 0:_state$opts6.uiLibraryPath)||uiLibraryPath;if(state!=null&&(_state$opts7=state.opts)!=null&&_state$opts7.configPath){var _state$opts8;configPath=state==null?void 0:(_state$opts8=state.opts)==null?void 0:_state$opts8.configPath;}if(state!=null&&(_state$opts9=state.opts)!=null&&_state$opts9.configThemePath){var _state$opts10;configThemePath=state==null?void 0:(_state$opts10=state.opts)==null?void 0:_state$opts10.configThemePath;}if(state!=null&&(_state$opts11=state.opts)!=null&&_state$opts11.platform){var _state$opts12;platform=state==null?void 0:(_state$opts12=state.opts)==null?void 0:_state$opts12.platform;}else{platform='all';}if(configPath){ConfigDefault=getExportedConfigFromFileString(getConfig(configPath));}configThemePath.forEach(function(path){var _ConfigDefault;ConfigDefault=(_ConfigDefault=ConfigDefault)==null?void 0:_ConfigDefault[path];});configThemePath=[];if(!currentFileName.includes('node_modules')){if(currentFileName.includes('.web.')){platform='web';}else if(checkWebFileExists(currentFileName)){platform='native';}}var filePath=state.file.opts.filename.split('/');filePath.pop();var absoluteStyledImportPath=path.resolve(filePath.join('/'),importPath.node.source.value);if(importPath.node.source.value===uiLibraryName||absoluteStyledImportPath===uiLibraryPath){importPath.traverse({ImportSpecifier:function ImportSpecifier(importSpecifierPath){guessingStyledComponents.push(importSpecifierPath.node.local.name);}});}if(importPath.node.source.value===libraryName||absoluteStyledImportPath===sourceFileName){importPath.traverse({ImportSpecifier:function ImportSpecifier(importSpecifierPath){if(importSpecifierPath.node.imported.name==='styled'){styledImportName=importSpecifierPath.node.local.name;}if(importSpecifierPath.node.imported.name===styledAlias){styledAliasImportedName=importSpecifierPath.node.local.name;}}});}},CallExpression:function CallExpression(callExpressionPath){if(callExpressionPath.node.callee.name===styledAliasImportedName||callExpressionPath.node.callee.name===styledImportName){var _callExpressionPath$p,_callExpressionPath$p2;if(callExpressionPath!=null&&(_callExpressionPath$p=callExpressionPath.parent)!=null&&(_callExpressionPath$p2=_callExpressionPath$p.id)!=null&&_callExpressionPath$p2.name)guessingStyledComponents.push(callExpressionPath.parent.id.name);callExpressionPath.traverse({ObjectProperty:function ObjectProperty(ObjectPath){if(t.isIdentifier(ObjectPath.node.value)){if(ObjectPath.node.value.name==='undefined'){ObjectPath.remove();}}}});if(isValidConfig){var _args$,_args$2,_ConfigDefault2;var args=callExpressionPath.node.arguments;var componentThemeNode=args[1];var componentConfigNode=(_args$=args[2])!=null?_args$:t.objectExpression([]);var extendedThemeNode=(_args$2=args[3])!=null?_args$2:t.objectExpression([]);var extendedThemeNodeProps=[];if(extendedThemeNode&&extendedThemeNode!=null&&extendedThemeNode.properties){extendedThemeNode==null?void 0:extendedThemeNode.properties.forEach(function(prop){if(prop.key.name==='propertyResolver'){tempPropertyResolverNode=prop;}else{extendedThemeNodeProps.push(prop);}});extendedThemeNode.properties=extendedThemeNodeProps;}var theme=getObjectFromAstNode(componentThemeNode);var ExtendedConfig=getObjectFromAstNode(extendedThemeNode);var componentConfig=getObjectFromAstNode(componentConfigNode);if(extendedThemeNode&&tempPropertyResolverNode){extendedThemeNode.properties.push(tempPropertyResolverNode);}var mergedPropertyConfig=(0,_extends2.default)({},(_ConfigDefault2=ConfigDefault)==null?void 0:_ConfigDefault2.propertyTokenMap,propertyTokenMap);var componentExtendedConfig=merge({},(0,_extends2.default)({},ConfigDefault,{propertyTokenMap:(0,_extends2.default)({},mergedPropertyConfig)}),ExtendedConfig);var verbosedTheme=convertStyledToStyledVerbosed(theme);var resolvedStyles=styledToStyledResolved(verbosedTheme,[],componentExtendedConfig);var orderedResolved=styledResolvedToOrderedSXResolved(resolvedStyles);var themeHash=stableHash((0,_extends2.default)({},verbosedTheme,componentConfig));if(outputLibrary){themeHash=outputLibrary+'-'+themeHash;}if(platform==='all'){INTERNAL_updateCSSStyleInOrderedResolvedWeb(orderedResolved,themeHash,true);}else if(platform==='web'){INTERNAL_updateCSSStyleInOrderedResolvedWeb(orderedResolved,themeHash,false);}else{INTERNAL_updateCSSStyleInOrderedResolved(orderedResolved,themeHash,true);}var styleIds=getStyleIds(orderedResolved,componentConfig);var styleIdsAst=generateObjectAst(styleIds);var themeHashAst=t.stringLiteral(themeHash);var orderedResolvedAst=generateArrayAst(orderedResolved);var resultParamsNode=t.objectExpression([t.objectProperty(t.stringLiteral('orderedResolved'),orderedResolvedAst),t.objectProperty(t.stringLiteral('styleIds'),styleIdsAst),t.objectProperty(t.stringLiteral('themeHash'),themeHashAst)]);while(args.length<4){args.push(t.objectExpression([]));}if(!args[4]){args.push(resultParamsNode);}else{args[4]=resultParamsNode;}}}}}};}; |
{ | ||
"name": "@gluestack-style/babel-plugin-styled-resolver", | ||
"version": "0.1.14", | ||
"version": "0.1.15-alpha.0", | ||
"description": "A gluestack-style babel plugin that transpiles your styled function calls and resolves the component styling in build time.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
193
src/index.js
@@ -9,6 +9,10 @@ const fs = require('fs'); | ||
const { | ||
getStyleIds, | ||
} = require('@gluestack-style/react/lib/commonjs/resolver/getStyleIds'); | ||
const { | ||
styledResolvedToOrderedSXResolved, | ||
} = require('@gluestack-style/react/lib/commonjs/resolver/orderedResolved'); | ||
const { | ||
styledToStyledResolved, | ||
getStyleIds, | ||
} = require('@gluestack-style/react/lib/commonjs/resolver'); | ||
} = require('@gluestack-style/react/lib/commonjs/resolver/styledResolved'); | ||
@@ -32,2 +36,8 @@ const { | ||
} = require('@gluestack-style/react/lib/commonjs/updateCSSStyleInOrderedResolved.web'); | ||
const { | ||
convertUtilityPropsToSX, | ||
} = require('@gluestack-style/react/lib/commonjs/core/convert-utility-to-sx'); | ||
const { | ||
CSSPropertiesMap, | ||
} = require('@gluestack-style/react/lib/commonjs/core/styled-system'); | ||
@@ -287,3 +297,8 @@ const IMPORT_NAME = '@gluestack-style/react'; | ||
let libraryName = '@gluestack-style/react'; | ||
let uiLibraryName = ''; | ||
let outputLibrary; | ||
let componentSXProp; | ||
let componentUtilityProps; | ||
let uiLibraryPath; | ||
let guessingStyledComponents = []; | ||
@@ -299,2 +314,4 @@ return { | ||
outputLibrary = state?.opts?.outputLibrary || outputLibrary; | ||
uiLibraryName = state?.opts?.uiLibraryName || uiLibraryName; | ||
uiLibraryPath = state?.opts?.uiLibraryPath || uiLibraryPath; | ||
@@ -342,2 +359,15 @@ if (state?.opts?.configPath) { | ||
if ( | ||
importPath.node.source.value === uiLibraryName || | ||
absoluteStyledImportPath === uiLibraryPath | ||
) { | ||
importPath.traverse({ | ||
ImportSpecifier(importSpecifierPath) { | ||
guessingStyledComponents.push( | ||
importSpecifierPath.node.local.name | ||
); | ||
}, | ||
}); | ||
} | ||
if ( | ||
importPath.node.source.value === libraryName || | ||
@@ -358,8 +388,10 @@ absoluteStyledImportPath === sourceFileName | ||
}, | ||
CallExpression(path) { | ||
CallExpression(callExpressionPath) { | ||
if ( | ||
path.node.callee.name === styledAliasImportedName || | ||
path.node.callee.name === styledImportName | ||
callExpressionPath.node.callee.name === styledAliasImportedName || | ||
callExpressionPath.node.callee.name === styledImportName | ||
) { | ||
path.traverse({ | ||
if (callExpressionPath?.parent?.id?.name) | ||
guessingStyledComponents.push(callExpressionPath.parent.id.name); | ||
callExpressionPath.traverse({ | ||
ObjectProperty(ObjectPath) { | ||
@@ -375,3 +407,3 @@ if (t.isIdentifier(ObjectPath.node.value)) { | ||
if (isValidConfig) { | ||
let args = path.node.arguments; | ||
let args = callExpressionPath.node.arguments; | ||
@@ -512,4 +544,151 @@ let componentThemeNode = args[1]; | ||
}, | ||
// JSXOpeningElement(jsxOpeningElementPath) { | ||
// if ( | ||
// jsxOpeningElementPath.node.name && | ||
// jsxOpeningElementPath.node.name.name && | ||
// guessingStyledComponents.includes( | ||
// jsxOpeningElementPath.node.name.name | ||
// ) | ||
// ) { | ||
// let propsToBePersist = []; | ||
// let mergedPropertyConfig = { | ||
// ...ConfigDefault?.propertyTokenMap, | ||
// ...propertyTokenMap, | ||
// }; | ||
// const styledSystemProps = { | ||
// ...CSSPropertiesMap, | ||
// ...CONFIG?.aliases, | ||
// }; | ||
// const attr = jsxOpeningElementPath.node.attributes; | ||
// attr.forEach((attribute, index) => { | ||
// if (t.isJSXAttribute(attribute)) { | ||
// const propName = attribute.name.name; | ||
// const propValue = attribute.value; | ||
// if ( | ||
// propValue.type === 'JSXExpressionContainer' && | ||
// !t.isIdentifier(propValue.expression) && | ||
// propName === 'sx' | ||
// ) { | ||
// const objectProperties = propValue.expression; | ||
// componentSXProp = getObjectFromAstNode(objectProperties); | ||
// } else if (styledSystemProps[propName]) { | ||
// componentUtilityProps = Object.assign( | ||
// componentUtilityProps ?? {}, | ||
// { | ||
// [propName]: propValue.value, | ||
// } | ||
// ); | ||
// } else { | ||
// propsToBePersist.push(attribute); | ||
// } | ||
// } | ||
// }); | ||
// jsxOpeningElementPath.node.attributes.splice( | ||
// 0, | ||
// jsxOpeningElementPath.node.attributes.length | ||
// ); | ||
// const sx = { | ||
// ...componentUtilityProps, | ||
// ...componentSXProp, | ||
// }; | ||
// if (sx) { | ||
// const verbosedSx = convertSxToSxVerbosed(sx); | ||
// const inlineSxTheme = { | ||
// baseStyle: verbosedSx, | ||
// }; | ||
// let componentExtendedConfig = merge( | ||
// {}, | ||
// { | ||
// ...ConfigDefault, | ||
// propertyTokenMap: { ...mergedPropertyConfig }, | ||
// } | ||
// ); | ||
// let resolvedStyles = styledToStyledResolved( | ||
// inlineSxTheme, | ||
// [], | ||
// componentExtendedConfig | ||
// ); | ||
// let orderedResolved = | ||
// styledResolvedToOrderedSXResolved(resolvedStyles); | ||
// let sxHash = stableHash(sx); | ||
// if (outputLibrary) { | ||
// sxHash = outputLibrary + '-' + sxHash; | ||
// } | ||
// if (platform === 'all') { | ||
// INTERNAL_updateCSSStyleInOrderedResolvedWeb( | ||
// orderedResolved, | ||
// sxHash, | ||
// true, | ||
// 'gs' | ||
// ); | ||
// } else if (platform === 'web') { | ||
// INTERNAL_updateCSSStyleInOrderedResolvedWeb( | ||
// orderedResolved, | ||
// sxHash, | ||
// false, | ||
// 'gs' | ||
// ); | ||
// } else { | ||
// INTERNAL_updateCSSStyleInOrderedResolved( | ||
// orderedResolved, | ||
// sxHash, | ||
// true, | ||
// 'gs' | ||
// ); | ||
// } | ||
// let styleIds = getStyleIds( | ||
// orderedResolved, | ||
// componentExtendedConfig | ||
// ); | ||
// let styleIdsAst = generateObjectAst(styleIds); | ||
// let orderResolvedArrayExpression = []; | ||
// orderedResolved.forEach((styledResolved) => { | ||
// let orderedResolvedAst = generateObjectAst(styledResolved); | ||
// orderResolvedArrayExpression.push(orderedResolvedAst); | ||
// }); | ||
// jsxOpeningElementPath.node.attributes = propsToBePersist; | ||
// jsxOpeningElementPath.node.attributes.push( | ||
// t.jsxAttribute( | ||
// t.jsxIdentifier('styledIds'), | ||
// t.jsxExpressionContainer(styleIdsAst) | ||
// ) | ||
// ); | ||
// jsxOpeningElementPath.node.attributes.push( | ||
// t.jsxAttribute( | ||
// t.jsxIdentifier('orderResolved'), | ||
// t.jsxExpressionContainer( | ||
// t.arrayExpression(orderResolvedArrayExpression) | ||
// ) | ||
// ) | ||
// ); | ||
// jsxOpeningElementPath.node.attributes.push( | ||
// t.jsxAttribute(t.jsxIdentifier('sxHash'), t.stringLiteral(sxHash)) | ||
// ); | ||
// } | ||
// componentSXProp = undefined; | ||
// componentUtilityProps = undefined; | ||
// } | ||
// }, | ||
}, | ||
}; | ||
}; |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
56370
6
1265