js_dependency 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/README.md +25 -3
- data/lib/js_dependency/extract_import_path.rb +7 -7
- data/lib/js_dependency/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20217229c2c7f845d05b400f356240d4e2db4d46f9b4d1fc6662868bc1bac372
|
4
|
+
data.tar.gz: d74ccf10be4764621ff17bc2700c56b8947263b5dc35bccaab49101df90eea59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a842902a4bf0331ea00352315682bf4efb8ac6891dfa2fcfedff0d5ecdfada5d8cf1240ebc6e02a5f8b8ac8a6df54d85c47e4140ac581601d43dbb7a16f3fb2d
|
7
|
+
data.tar.gz: 919130f6a767b0dc51533cacee935c810da0a8460ab74e86536704fea8614289fa45025c8b3d9edd62a48782bc463e632256b3c9868f849bcb93cf006859c035
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/js_dependency`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
4
|
|
5
|
-
|
5
|
+
Analyze import dependency of JavaScript code and export mermaid format.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -15,8 +15,30 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
15
15
|
$ gem install js_dependency
|
16
16
|
|
17
17
|
## Usage
|
18
|
+
If your javascript code is in `./src` and `./src/App.vue` is in the directory, you can analyze `./src/App.vue` dependency like this:
|
18
19
|
|
19
|
-
|
20
|
+
```ruby
|
21
|
+
require 'js_dependency'
|
22
|
+
|
23
|
+
|
24
|
+
src_path = './src' # Root folder.
|
25
|
+
target_path = './src/App.vue' # Target file that you want to analyze.
|
26
|
+
child_analyze_level = 2 # Output level of child dependency.
|
27
|
+
parent_analyze_level = 2 # Output level of parent dependency.
|
28
|
+
output_path = './mermaid.txt' # Optional. Output file path
|
29
|
+
alias_paths = {'@' => '/src' } # Optional. Alias path.
|
30
|
+
|
31
|
+
# mermaid出力実行
|
32
|
+
JsDependency.export_mermaid(
|
33
|
+
src_path,
|
34
|
+
target_path,
|
35
|
+
child_analyze_level: child_analyze_level,
|
36
|
+
parent_analyze_level: parent_analyze_level,
|
37
|
+
output_path: output_path,
|
38
|
+
alias_paths: alias_paths)
|
39
|
+
```
|
40
|
+
|
41
|
+
See `./mermaid.txt` of `output_path` for the result.
|
20
42
|
|
21
43
|
## Development
|
22
44
|
|
@@ -26,7 +48,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
26
48
|
|
27
49
|
## Contributing
|
28
50
|
|
29
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
51
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/junara/js_dependency. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/js_dependency/blob/main/CODE_OF_CONDUCT.md).
|
30
52
|
|
31
53
|
## License
|
32
54
|
|
@@ -12,11 +12,11 @@ module JsDependency
|
|
12
12
|
def call
|
13
13
|
str = @str
|
14
14
|
# import defaultExport from 'module-name';
|
15
|
-
paths = str.gsub(/import\s+\S+\s+from\s+"([^
|
15
|
+
paths = str.gsub(/import\s+\S+\s+from\s+"([^"]+)"/).with_object([]) { |_, list| list << Regexp.last_match(1) }
|
16
16
|
paths += str.gsub(/import\s+\S+\s+from\s+'([^']+)'/).with_object([]) { |_, list| list << Regexp.last_match(1) }
|
17
17
|
|
18
18
|
# import * as name from \"module-name\";
|
19
|
-
paths += str.gsub(/import\s+\S+\s+as\s+\S+\s+from\s+"([^
|
19
|
+
paths += str.gsub(/import\s+\S+\s+as\s+\S+\s+from\s+"([^"]+)"/).with_object([]) do |_, list|
|
20
20
|
list << Regexp.last_match(1)
|
21
21
|
end
|
22
22
|
paths += str.gsub(/import\s+\S+\s+as\s+\S+\s+from\s+'([^']+)'/).with_object([]) do |_, list|
|
@@ -28,7 +28,7 @@ module JsDependency
|
|
28
28
|
# import { export1 , export2 } from "module-name";
|
29
29
|
# import { foo , bar } from "module-name/path/to/specific/un-exported/file";
|
30
30
|
# import { export1 , export2 as alias2 , [...] } from "module-name";
|
31
|
-
paths += str.gsub(/import\s+\{\s+.+\s+\}\s+from\s+"([^
|
31
|
+
paths += str.gsub(/import\s+\{\s+.+\s+\}\s+from\s+"([^"]+)"/).with_object([]) do |_, list|
|
32
32
|
list << Regexp.last_match(1)
|
33
33
|
end
|
34
34
|
paths += str.gsub(/import\s+\{\s+.+\s+\}\s+from\s+'([^']+)'/).with_object([]) do |_, list|
|
@@ -36,7 +36,7 @@ module JsDependency
|
|
36
36
|
end
|
37
37
|
|
38
38
|
# import defaultExport, { export1 [ , [...] ] } from "module-name";
|
39
|
-
paths += str.gsub(/import\s+\S+,\s+\{\s+.+\s+\}\s+from\s+"([^
|
39
|
+
paths += str.gsub(/import\s+\S+,\s+\{\s+.+\s+\}\s+from\s+"([^"]+)"/).with_object([]) do |_, list|
|
40
40
|
list << Regexp.last_match(1)
|
41
41
|
end
|
42
42
|
paths += str.gsub(/import\s+\S+,\s+\{\s+.+\s+\}\s+from\s+'([^']+)'/).with_object([]) do |_, list|
|
@@ -44,7 +44,7 @@ module JsDependency
|
|
44
44
|
end
|
45
45
|
|
46
46
|
# import defaultExport, * as name from "module-name";
|
47
|
-
paths += str.gsub(/import\s+\S+,\s+.+\s+as\s+\S+\s+from\s+"([^
|
47
|
+
paths += str.gsub(/import\s+\S+,\s+.+\s+as\s+\S+\s+from\s+"([^"]+)"/).with_object([]) do |_, list|
|
48
48
|
list << Regexp.last_match(1)
|
49
49
|
end
|
50
50
|
paths += str.gsub(/import\s+\S+,\s+.+\s+as\s+\S+\s+from\s+'([^']+)'/).with_object([]) do |_, list|
|
@@ -52,7 +52,7 @@ module JsDependency
|
|
52
52
|
end
|
53
53
|
|
54
54
|
# import "module-name";
|
55
|
-
paths += str.gsub(/import\s+"([^
|
55
|
+
paths += str.gsub(/import\s+"([^"]+)"/).with_object([]) do |_, list|
|
56
56
|
list << Regexp.last_match(1)
|
57
57
|
end
|
58
58
|
paths += str.gsub(/import\s+'([^']+)'/).with_object([]) do |_, list|
|
@@ -60,7 +60,7 @@ module JsDependency
|
|
60
60
|
end
|
61
61
|
|
62
62
|
# var promise = import("module-name");
|
63
|
-
paths += str.gsub(/import\("([^
|
63
|
+
paths += str.gsub(/import\("([^"]+)"\)/).with_object([]) do |_, list|
|
64
64
|
list << Regexp.last_match(1)
|
65
65
|
end
|
66
66
|
paths += str.gsub(/import\('([^']+)'\)/).with_object([]) do |_, list|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: js_dependency
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- junara
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pathname
|