New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

0gql

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

0gql - npm Package Compare versions

Comparing version 0.0.6 to 0.0.7

6

CHANGELOG.md
# 0gql
## 0.0.7
### Patch Changes
- 8d24742: Add --remove option
## 0.0.6

@@ -4,0 +10,0 @@

19

dist/bin.js

@@ -9,5 +9,6 @@ #!/usr/bin/env node

.name("0gql")
.version("0.0.1")
.version("0.0.7")
.option("-e, --extension <target extension>", "extension of the generated file/s", ".graphql")
.option("-m, --modules <gql tag module/s>", "Module/s where gql tag could be imported from. Comma separated.", "graphql-tag")
.option("-m, --modules <gql tag module/s>", "module/s where gql tag are imported from. Comma separated", "graphql-tag")
.option("-r, --remove", "remove original gql tag usage")
.argument("<file pattern>")

@@ -20,3 +21,3 @@ .action((filePattern, options) => {

}
console.log(`"${filePattern}":`);
console.log(`🔎 "${filePattern}":`);
files.map((file) => console.log(file));

@@ -27,13 +28,5 @@ console.log("");

gqlTagModules: options.modules.split(","),
shouldRemoveOriginalUsage: Boolean(options.remove),
})
.then((files) => {
if (files.length > 0) {
console.log("Generated files:");
files.forEach((file) => console.log(file.filename));
}
else {
console.log("No generated files.");
}
process.exit(0);
})
.then(() => process.exit(0))
.catch((e) => {

@@ -40,0 +33,0 @@ console.error(e);

@@ -1,10 +0,7 @@

interface GeneratedFile {
filename: string;
content: string;
}
interface ParsedOptions {
targetExtension: string;
gqlTagModules: string[];
shouldRemoveOriginalUsage: boolean;
}
export declare const main: (input: string[], options: ParsedOptions) => Promise<GeneratedFile[]>;
export declare const main: (input: string[], options: ParsedOptions) => Promise<void>;
export {};

@@ -34,6 +34,9 @@ "use strict";

});
files.length ? console.log("Input files:") : console.log("No input files.");
files.length
? console.log("🧐 Input files:")
: console.log("🧐 No input files.");
files.map((file) => console.log(file));
console.log("");
const targetFiles = [];
const filesToGenerate = [];
const filesToUpdate = [];
const program = typescript_1.default.createProgram(files, { allowJs: false });

@@ -50,2 +53,3 @@ files.forEach((file) => {

};
const nodesToRemove = [];
const graphqlTemplates = [];

@@ -81,2 +85,3 @@ typescript_1.default.forEachChild(sourceFile, (node) => {

if (typescript_1.default.isNoSubstitutionTemplateLiteral(template)) {
nodesToRemove.push(node);
// If no subscription, use full template

@@ -87,2 +92,3 @@ const tagTemplate = (0, trimBackTicks_1.trimBackTicks)(template.getText(sourceFile));

else if (typescript_1.default.isTemplateExpression(template)) {
nodesToRemove.push(node);
// If has subscription, ASSUME it's fragment. Replace usages and push template

@@ -109,3 +115,3 @@ const convertedGraphqlImportLines = []; // ['#import "./a/b.graphql"','#import "./c/d.graphql"']

if (fileContent) {
targetFiles.push({
filesToGenerate.push({
filename: targetFilename,

@@ -115,6 +121,49 @@ content: fileContent,

}
if (options.shouldRemoveOriginalUsage && nodesToRemove.length > 0) {
// Transformer to remove variable declaration nodes if matches nodesToRemove
// How transformer work: https://github.com/madou/typescript-transformer-handbook
const transformer = (context) => {
return (src) => {
const visitor = (node) => {
// If found a node that's at the same position as the a node to remove, assume
// they are the same and remove them ( by returning undefined )
if (typescript_1.default.isVariableStatement(node) &&
nodesToRemove.find((nodeToRemove) => nodeToRemove.pos === node.pos && nodeToRemove.end === node.end) !== undefined) {
return undefined;
}
return typescript_1.default.visitEachChild(node, visitor, context);
};
return typescript_1.default.visitNode(src, visitor);
};
};
const { transformed } = typescript_1.default.transform(sourceFile, [transformer]);
const newContent = typescript_1.default
.createPrinter({
newLine: typescript_1.default.NewLineKind.LineFeed,
removeComments: false,
})
.printFile(transformed[0]);
filesToUpdate.push({ content: newContent, filename: file });
}
});
yield Promise.all(targetFiles.map((file) => (0, promises_1.writeFile)(file.filename, file.content)));
return targetFiles;
yield Promise.all([
...filesToGenerate.map((file) => (0, promises_1.writeFile)(file.filename, file.content)),
...filesToUpdate.map((file) => (0, promises_1.writeFile)(file.filename, file.content)),
]);
if (filesToGenerate.length > 0) {
console.log("✨ Generated files:");
filesToGenerate.forEach((file) => console.log(file.filename));
}
else {
console.log("✨ No generated files.");
}
console.log("");
if (filesToUpdate.length > 0) {
console.log("✨ Updated files:");
filesToUpdate.forEach((file) => console.log(file.filename));
}
else {
console.log("✨ No updated files.");
}
});
exports.main = main;
{
"name": "0gql",
"version": "0.0.6",
"version": "0.0.7",
"description": "Migrate from gql tag",

@@ -5,0 +5,0 @@ "repository": "git@github.com:eddeee888/nogql.git",

@@ -11,3 +11,3 @@ # 0gql

# This codemods all .ts and .tsx files under path/to/files that import and use gql tag
$ npx 0gql "path/to/files/*.ts*"
$ npx 0gql@latest "path/to/files/*.ts*"
```

@@ -25,4 +25,5 @@

-e, --extension <target extension> extension of the generated file/s (default: ".graphql")
-m, --modules <gql tag module/s> Module/s where gql tag could be imported from. Comma separated. (default: "graphql-tag")
-m, --modules <gql tag module/s> module/s where gql tag are imported from. Comma separated (default: "graphql-tag")
-r, --remove remove original gql tag usage
-h, --help display help for command
```
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