stigg-api-client 0.457.0 → 0.458.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.
data/lib/stigg/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stigg
4
- VERSION = "0.457.0"
4
+ VERSION = "0.458.4"
5
5
  end
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
18
18
  # Specify which files should be added to the gem when it is released.
19
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
20
  spec.files = Dir.chdir(__dir__) do
21
- `git ls-files -z`.split("\x0").reject do |f|
22
- (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
21
+ `git ls-files -z ; find lib/stigg/generated -print0`.split("\x0").reject do |f|
22
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features|scripts)/|\.(?:git|travis|circleci)|appveyor)})
23
23
  end
24
24
  end
25
25
  spec.bindir = "exe"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stigg-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.457.0
4
+ version: 0.458.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stigg
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-05 00:00:00.000000000 Z
11
+ date: 2023-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphlient
@@ -40,11 +40,10 @@ files:
40
40
  - Rakefile
41
41
  - lib/stigg.rb
42
42
  - lib/stigg/client.rb
43
+ - lib/stigg/generated/operations.rb
44
+ - lib/stigg/generated/schema.json
43
45
  - lib/stigg/version.rb
44
46
  - project.json
45
- - scripts/generate-operations.mjs
46
- - scripts/generate.sh
47
- - scripts/publish.sh
48
47
  - stigg-api-client.gemspec
49
48
  homepage: https://stigg.io
50
49
  licenses:
@@ -1,99 +0,0 @@
1
- import * as gql from 'graphql';
2
- import fs from 'fs';
3
-
4
- const schema = fs.readFileSync(
5
- '../api-client-schema/src/generated/schema.graphql',
6
- 'utf8'
7
- );
8
-
9
- const operations = fs.readFileSync('operations.graphql', 'utf8');
10
-
11
- const gqlSchema = gql.buildSchema(schema);
12
-
13
- const gqlOperations = gql.parse(operations);
14
-
15
- function generateOperationsModule() {
16
- const typeInfo = new gql.TypeInfo(gqlSchema);
17
- const outputProgram = gql.visit(
18
- gqlOperations,
19
- gql.visitWithTypeInfo(typeInfo, visitor(gqlSchema, typeInfo))
20
- );
21
-
22
- const modules = ['Fragment', 'Mutation', 'Query']
23
- .map(
24
- (moduleName) =>
25
- `module ${moduleName}\n${outputProgram
26
- .filter((x) => x.moduleName === moduleName)
27
- .map((x) => x.element)
28
- .join('\n\n')}\nend`
29
- )
30
- .join('\n');
31
-
32
- return `# frozen_string_literal: true\n\nmodule Stigg\n${modules}\nend`;
33
- }
34
-
35
- function findFragments(node, results = new Set()) {
36
- if (node.kind === 'FragmentSpread') {
37
- results.add(node.name.value);
38
- gqlOperations.definitions.find((def) => {
39
- if (
40
- def.kind === 'FragmentDefinition' &&
41
- def.name.value === node.name.value
42
- ) {
43
- findFragments(def, results);
44
- }
45
- });
46
- }
47
- node.selectionSet?.selections?.forEach((node) =>
48
- findFragments(node, results)
49
- );
50
- return results;
51
- }
52
-
53
- function visitor(schema, typeInfo) {
54
- return {
55
- enter(node) {
56
- typeInfo.enter(node);
57
- },
58
- leave(node) {
59
- typeInfo.leave(node);
60
- switch (node.kind) {
61
- case 'Document':
62
- return node.definitions;
63
- case 'OperationDefinition': {
64
- const results = findFragments(node);
65
- const rawQuery = node.loc.source.body.substring(
66
- node.loc.start,
67
- node.loc.end
68
- );
69
- const namelessQuery = rawQuery.replace(
70
- `${node.operation} ${node.name.value}`,
71
- `${node.operation} `
72
- );
73
- const includedFragments = [...results]
74
- .map((x) => `#{Fragment::${x}}\n`)
75
- .join('');
76
- const constantName =
77
- node.name.value[0].toUpperCase() + node.name.value.slice(1);
78
- return {
79
- moduleName: node.operation === 'mutation' ? 'Mutation' : 'Query',
80
- element: `${constantName} = <<-GRAPHQL\n${namelessQuery}\n${includedFragments}GRAPHQL`,
81
- };
82
- }
83
- case 'FragmentDefinition': {
84
- const querySource = node.loc.source.body.substring(
85
- node.loc.start,
86
- node.loc.end
87
- );
88
- return {
89
- moduleName: 'Fragment',
90
- element: `${node.name.value} = <<-GRAPHQL\n${querySource}\nGRAPHQL`,
91
- };
92
- }
93
- }
94
- },
95
- };
96
- }
97
-
98
- const module = generateOperationsModule();
99
- fs.writeFileSync('lib/stigg/generated/operations.rb', module);
data/scripts/generate.sh DELETED
@@ -1,17 +0,0 @@
1
- #!/bin/bash -e
2
-
3
- # stitch the operation files together
4
- cat ../api-client-schema/src/operations/*.graphql > operations.graphql
5
-
6
- mkdir -p lib/stigg/generated/
7
-
8
- cat <<-EOF > lib/stigg/generated/schema.json
9
- $(echo { \"data\": ) $(cat ../api-client-schema/src/generated/schema.json) $(echo })
10
- EOF
11
-
12
- node scripts/generate-operations.mjs
13
- rm operations.graphql
14
-
15
- bundle exec rubocop -a lib/stigg/generated/operations.rb
16
-
17
- printf "api-client-ruby generated!\n"
data/scripts/publish.sh DELETED
@@ -1,31 +0,0 @@
1
- #!/bin/bash -e
2
-
3
- VERSION=$1
4
-
5
- if [ -z "$VERSION" ]; then
6
- echo "Usage: ./scripts/publish.sh <version>"
7
- exit 1
8
- fi
9
-
10
- bundle config unset deployment
11
-
12
- bundle exec bump set "${VERSION}" --no-commit --no-bundle
13
- git diff
14
-
15
- echo "Building..."
16
- bundle exec rake build
17
-
18
- # create a temporary commit, since it's not possible to
19
- # release with a dirty working directory
20
- TAG="v${VERSION}"
21
- echo "Creating temporary commit and tag (${TAG})..."
22
- git add .
23
- git commit --no-verify -m "tmp commit for ruby release"
24
- git tag "${TAG}"
25
-
26
- echo "Releasing..."
27
- bundle exec rake release -v || (git tag -d "${TAG}" ; git reset --soft HEAD~1 ; exit 1)
28
- git tag -d "${TAG}"
29
- git reset --soft HEAD~1
30
-
31
- echo "api-client-ruby published!"