Socket
Socket
Sign inDemoInstall

babel-plugin-inline-import-graphql-ast

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-inline-import-graphql-ast - npm Package Compare versions

Comparing version 2.0.0 to 2.0.1-beta.0

114

build/index.js
Object.defineProperty(exports, "__esModule", {
value: true
value: true
});

@@ -32,60 +32,68 @@

exports.default = function (_ref) {
var t = _ref.types;
return {
visitor: {
ImportDeclaration: {
exit: function exit(curPath, state) {
var importPath = curPath.node.source.value;
if (importPath.endsWith('.graphql') || importPath.endsWith('.gql')) {
var buildInlineVariable = function buildInlineVariable(graphqlAST) {
var babelAST = (0, _babylon.parse)('const obj = ' + JSON.stringify(graphqlAST));
var objExp = babelAST.program.body[0].declarations[0].init;
return t.variableDeclarator(t.identifier(curPath.node.specifiers[0].local.name), t.objectExpression(objExp.properties));
};
var t = _ref.types;
return {
visitor: {
ImportDeclaration: {
exit: function exit(curPath, state) {
var importPath = curPath.node.source.value;
if (importPath.endsWith('.graphql') || importPath.endsWith('.gql')) {
var buildInlineVariable = function buildInlineVariable(graphqlAST) {
var babelAST = (0, _babylon.parse)('const obj = ' + JSON.stringify(graphqlAST));
var objExp = babelAST.program.body[0].declarations[0].init;
return t.variableDeclarator(t.identifier(curPath.node.specifiers[0].local.name), t.objectExpression(objExp.properties));
};
var query = createQuery(importPath, state.file.opts.filename);
query.processFragments();
query.parse();
query.makeSourceEnumerable();
curPath.replaceWith(t.variableDeclaration('const', [buildInlineVariable(query.ast)]));
}
}
}
}
};
var query = createQuery(importPath, state.file.opts.filename);
query.processFragments();
query.dedupeFragments();
query.parse();
query.makeSourceEnumerable();
curPath.replaceWith(t.variableDeclaration('const', [buildInlineVariable(query.ast)]));
}
}
}
}
};
};
function createQuery(queryPath, babelPath) {
var absPath = _path2.default.resolve(_path2.default.dirname(babelPath), queryPath);
var source = _fs2.default.readFileSync(absPath).toString();
var ast = null;
var fragmentDefs = [];
var absPath = _path2.default.resolve(_path2.default.dirname(babelPath), queryPath);
var source = _fs2.default.readFileSync(absPath).toString();
var ast = null;
var fragmentDefs = [];
return {
processFragments: function processFragments() {
var imports = source.split(_os2.default.EOL).filter(function (line) {
return line.startsWith('#import');
});
imports.forEach(function (statement) {
var fragmentPath = statement.split(' ')[1].slice(1, -1);
var absFragmentPath = _path2.default.resolve(_path2.default.dirname(absPath), fragmentPath);
var fragmentSource = _fs2.default.readFileSync(absFragmentPath).toString();
fragmentDefs = [].concat(_toConsumableArray(fragmentDefs), _toConsumableArray((0, _graphqlTag2.default)(_templateObject, fragmentSource).definitions));
});
},
parse: function parse() {
var parsedAST = (0, _graphqlTag2.default)(_templateObject, source);
parsedAST.definitions = [].concat(_toConsumableArray(parsedAST.definitions), _toConsumableArray(fragmentDefs));
ast = parsedAST;
},
makeSourceEnumerable: function makeSourceEnumerable() {
var newAST = JSON.parse(JSON.stringify(ast));
newAST.loc.source = ast.loc.source;
ast = newAST;
},
return {
processFragments: function processFragments() {
var imports = source.split(_os2.default.EOL).filter(function (line) {
return line.startsWith('#import');
});
imports.forEach(function (statement) {
var fragmentPath = statement.split(' ')[1].slice(1, -1);
var absFragmentPath = _path2.default.resolve(_path2.default.dirname(absPath), fragmentPath);
var fragmentSource = _fs2.default.readFileSync(absFragmentPath).toString();
fragmentDefs = [].concat(_toConsumableArray(fragmentDefs), _toConsumableArray((0, _graphqlTag2.default)(_templateObject, fragmentSource).definitions));
});
},
dedupeFragments: function dedupeFragments() {
var seenNames = {};
fragmentDefs = fragmentDefs.filter(function (def) {
if (def.kind !== 'FragmentDefinition') return true;
return seenNames[def.name.value] ? false : seenNames[def.name.value] = true;
});
},
parse: function parse() {
var parsedAST = (0, _graphqlTag2.default)(_templateObject, source);
parsedAST.definitions = [].concat(_toConsumableArray(parsedAST.definitions), _toConsumableArray(fragmentDefs));
ast = parsedAST;
},
makeSourceEnumerable: function makeSourceEnumerable() {
var newAST = JSON.parse(JSON.stringify(ast));
newAST.loc.source = ast.loc.source;
ast = newAST;
},
get ast() {
return ast;
}
};
get ast() {
return ast;
}
};
}

@@ -0,0 +0,0 @@ # ChangeLog

{
"name": "babel-plugin-inline-import-graphql-ast",
"version": "2.0.0",
"version": "2.0.1-beta.0",
"description": "Babel plugin to make raw files importable",

@@ -5,0 +5,0 @@ "author": "Alexander Roberts <detrohutt@gmail.com>",

@@ -0,0 +0,0 @@ # Babel Inline Import GraphQL AST

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc