datajunction-ui 0.0.1-rc.10 → 0.0.1-rc.12

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.
Files changed (48) hide show
  1. package/package.json +4 -1
  2. package/src/app/__tests__/__snapshots__/index.test.tsx.snap +18 -16
  3. package/src/app/components/NamespaceHeader.jsx +4 -13
  4. package/src/app/components/QueryInfo.jsx +109 -0
  5. package/src/app/components/ToggleSwitch.jsx +17 -0
  6. package/src/app/components/__tests__/__snapshots__/NamespaceHeader.test.jsx.snap +2 -18
  7. package/src/app/components/djgraph/Collapse.jsx +46 -0
  8. package/src/app/components/djgraph/DJNode.jsx +56 -80
  9. package/src/app/components/djgraph/DJNodeColumns.jsx +68 -0
  10. package/src/app/components/djgraph/DJNodeDimensions.jsx +69 -0
  11. package/src/app/components/djgraph/__tests__/__snapshots__/DJNode.test.tsx.snap +82 -43
  12. package/src/app/icons/CollapsedIcon.jsx +15 -0
  13. package/src/app/icons/ExpandedIcon.jsx +15 -0
  14. package/src/app/icons/HorizontalHierarchyIcon.jsx +15 -0
  15. package/src/app/icons/InvalidIcon.jsx +14 -0
  16. package/src/app/icons/PythonIcon.jsx +52 -0
  17. package/src/app/icons/TableIcon.jsx +14 -0
  18. package/src/app/icons/ValidIcon.jsx +14 -0
  19. package/src/app/index.tsx +3 -2
  20. package/src/app/pages/NamespacePage/Explorer.jsx +57 -0
  21. package/src/app/pages/NamespacePage/__tests__/__snapshots__/index.test.tsx.snap +24 -5
  22. package/src/app/pages/NamespacePage/index.jsx +78 -10
  23. package/src/app/pages/NodePage/ClientCodePopover.jsx +30 -0
  24. package/src/app/pages/NodePage/NodeColumnTab.jsx +36 -20
  25. package/src/app/pages/NodePage/NodeGraphTab.jsx +45 -17
  26. package/src/app/pages/NodePage/NodeHistory.jsx +71 -0
  27. package/src/app/pages/NodePage/NodeInfoTab.jsx +132 -49
  28. package/src/app/pages/NodePage/NodeMaterializationTab.jsx +151 -0
  29. package/src/app/pages/NodePage/NodeSQLTab.jsx +100 -0
  30. package/src/app/pages/NodePage/NodeStatus.jsx +14 -20
  31. package/src/app/pages/NodePage/index.jsx +43 -8
  32. package/src/app/pages/Root/index.tsx +5 -0
  33. package/src/app/pages/SQLBuilderPage/Loadable.jsx +16 -0
  34. package/src/app/pages/SQLBuilderPage/index.jsx +317 -0
  35. package/src/app/services/DJService.js +125 -1
  36. package/src/styles/dag.css +111 -5
  37. package/src/styles/index.css +328 -22
  38. package/webpack.config.js +4 -5
  39. package/.babelrc +0 -4
  40. package/.env.local +0 -4
  41. package/.env.production +0 -1
  42. package/.vscode/extensions.json +0 -7
  43. package/.vscode/launch.json +0 -15
  44. package/.vscode/settings.json +0 -25
  45. package/Dockerfile +0 -7
  46. package/src/app/components/DashboardItem.jsx +0 -29
  47. package/src/app/pages/ListNamespacesPage/Loadable.jsx +0 -14
  48. package/src/app/pages/ListNamespacesPage/index.jsx +0 -60
@@ -46,7 +46,9 @@
46
46
  display: none;
47
47
  }
48
48
 
49
- .dj-node__header {
49
+ .dj-node__header,
50
+ .partition__header,
51
+ .table__header {
50
52
  font-weight: 400;
51
53
  text-transform: uppercase;
52
54
  font-family: 'jetbrains-mono', monospace;
@@ -61,28 +63,84 @@
61
63
  border-color: #c4cbd1;
62
64
  }
63
65
 
64
- .dj-node__body {
66
+ .dj-node__body,
67
+ .partition__body,
68
+ .table__body {
65
69
  background-color: rgb(254, 254, 254);
66
70
  padding: 0.5em 0.7em 0.9em 0.7em;
67
71
  font-family: 'nt-dapper', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
68
72
  Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
69
73
  font-size: 1.7em;
74
+ border-radius: 0 0 8px 8px;
70
75
  }
71
76
 
72
- .dj-node__full {
77
+ .dj-node_highlight {
78
+ border: 10px solid #cccccc !important;
79
+ }
80
+
81
+ .react-flow__node {
82
+ z-index: -1 !important;
83
+ }
84
+
85
+ .react-flow__node-DJNode,
86
+ .dj-node__full,
87
+ .partition__full,
88
+ .table__full {
73
89
  display: flex;
74
90
  flex-direction: column;
75
- height: 100%;
76
91
  border-width: 1px;
77
92
  border-style: solid;
78
93
  border-image: initial;
79
94
  border-color: #b0b9c2;
80
95
  border-radius: 8px;
81
- overflow: hidden;
82
96
  box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px,
83
97
  rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
84
98
  }
85
99
 
100
+ .partition__header,
101
+ .partition__body,
102
+ .partition__full,
103
+ .table__body,
104
+ .table__header {
105
+ font-size: 1em;
106
+ font-family: 'nt-dapper', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
107
+ Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
108
+ }
109
+
110
+ .partition__full,
111
+ .table__full {
112
+ margin-bottom: 1rem;
113
+ border-color: #e0e0e0;
114
+ }
115
+
116
+ .partition__header,
117
+ .table__header {
118
+ background-color: #ccefff50;
119
+ color: #6daaa7;
120
+ text-transform: none;
121
+ border-bottom-style: none;
122
+ }
123
+
124
+ .partition_value {
125
+ background-color: #ccefff50;
126
+ color: #6daaa7;
127
+ border: 1px solid #6daaa750;
128
+ }
129
+
130
+ .table__header {
131
+ background-color: rgba(227, 255, 204, 0.31);
132
+ color: #0aa400;
133
+ }
134
+
135
+ .table__body {
136
+ padding: 16px;
137
+ }
138
+
139
+ .table__full {
140
+ /*border-radius: 0.2em;*/
141
+ /*border: none;*/
142
+ }
143
+
86
144
  .dj-node__metadata {
87
145
  padding: 1em;
88
146
  font-family: 'nt-dapper', -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
@@ -116,3 +174,51 @@
116
174
  font-family: 'jetbrains-mono', monospace;
117
175
  text-transform: lowercase;
118
176
  }
177
+
178
+ .react-flow__handle-left {
179
+ transform: translate(-180%, -50%);
180
+ }
181
+
182
+ .custom-node-subheader {
183
+ --bs-badge-padding-x: 0.4em;
184
+ --bs-badge-padding-y: 0.3em;
185
+ --bs-badge-font-size: 18px;
186
+ --bs-badge-font-weight: 400;
187
+ --bs-badge-color: #fff;
188
+ --bs-badge-border-radius: 0.375rem;
189
+ display: flex;
190
+ flex-direction: column;
191
+ flex-grow: 1;
192
+ padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
193
+ margin: 0.55rem;
194
+ font-size: var(--bs-badge-font-size);
195
+ font-weight: var(--bs-badge-font-weight);
196
+ line-height: 1;
197
+ color: var(--bs-badge-color);
198
+ text-align: center;
199
+ white-space: nowrap;
200
+ vertical-align: baseline;
201
+ border-radius: var(--bs-badge-border-radius);
202
+ position: relative;
203
+ justify-content: flex-start;
204
+ }
205
+ .custom-node-port {
206
+ color: #636776;
207
+ font-size: 20px;
208
+ text-align: center;
209
+ }
210
+
211
+ .white_badge {
212
+ background-color: #ffffff !important;
213
+ display: inline-block;
214
+ margin: 0.3rem 0.3rem 0.3rem 0.3rem;
215
+ margin-top: 0.7rem;
216
+ color: #636776;
217
+ }
218
+
219
+ .dimension_attributes {
220
+ max-width: 500px;
221
+ display: inline-flex;
222
+ flex-wrap: wrap;
223
+ justify-content: center;
224
+ }
@@ -110,9 +110,7 @@ ul {
110
110
 
111
111
  .list-group {
112
112
  width: 100%;
113
- /*min-width: fit-content;*/
114
113
  max-width: fit-content;
115
- /*margin-inline: 1.5rem;*/
116
114
  border-radius: 0.375rem;
117
115
  }
118
116
  .list-group-item {
@@ -122,7 +120,6 @@ ul {
122
120
  color: #212529;
123
121
  text-decoration: none;
124
122
  background-color: #ffffff;
125
- /*border: 1px solid #dee2e6;*/
126
123
  min-width: fit-content;
127
124
  }
128
125
  .list-group-item + .list-group-item {
@@ -132,6 +129,12 @@ ul {
132
129
  border-top-left-radius: inherit;
133
130
  border-top-right-radius: inherit;
134
131
  }
132
+ .li {
133
+ cursor: pointer;
134
+ }
135
+ .raw-node-list {
136
+ flex: 0 0 50px;
137
+ }
135
138
  .d-flex {
136
139
  display: flex !important;
137
140
  }
@@ -150,13 +153,15 @@ ul {
150
153
  .h6,
151
154
  h6 {
152
155
  margin: 0;
153
- /*background-color: #f9fbfd;*/
154
156
  text-transform: uppercase;
155
157
  font-size: 0.8125rem;
156
158
  font-weight: 600;
157
159
  letter-spacing: 0.08em;
158
160
  color: #95aac9;
159
161
  }
162
+ .larger {
163
+ font-size: 120%;
164
+ }
160
165
  .py-3 {
161
166
  padding-top: 1rem !important;
162
167
  padding-bottom: 1rem !important;
@@ -180,6 +185,10 @@ h6 {
180
185
  .badge.bg-secondary-soft {
181
186
  color: #6e84a3;
182
187
  }
188
+ .badge.bg-secondary-error {
189
+ color: #6e84a3;
190
+ background-color: #fad7dd;
191
+ }
183
192
  .badge.rounded-pill {
184
193
  padding-right: 0.6em;
185
194
  padding-left: 0.6em;
@@ -240,14 +249,30 @@ tr {
240
249
  word-wrap: break-word;
241
250
  background-color: #fff;
242
251
  background-clip: border-box;
243
- /*border: 1px solid #edf2f9;*/
244
252
  border-radius: 1rem;
245
- margin: 4rem;
253
+ margin: 2rem;
254
+ }
255
+
256
+ .card-light-shadow {
257
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
258
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
259
+ padding: 1rem;
260
+ }
261
+
262
+ .sidebar {
263
+ position: sticky;
264
+ top: 0;
265
+ left: 0;
246
266
  }
247
267
 
248
268
  .table-responsive {
249
269
  overflow-x: auto;
250
270
  -webkit-overflow-scrolling: touch;
271
+ display: grid;
272
+
273
+ grid-template-columns: auto auto auto;
274
+ grid-gap: 8px;
275
+ padding: 8px;
251
276
  }
252
277
  .table > thead {
253
278
  vertical-align: bottom;
@@ -280,7 +305,6 @@ tr {
280
305
  padding-left: 1.5rem !important;
281
306
  }
282
307
  .table thead th {
283
- background-color: #f9fbfd;
284
308
  text-transform: uppercase;
285
309
  font-size: 0.8125rem;
286
310
  font-weight: 600;
@@ -351,44 +375,172 @@ tbody th {
351
375
  vertical-align: middle;
352
376
  padding: 0.44rem;
353
377
  border-radius: 0.375rem;
354
- cursor: crosshair;
355
378
  word-wrap: break-word;
356
379
  white-space: break-spaces;
357
380
  }
358
381
 
359
382
  /* Nodes */
360
383
  .node_type__source {
361
- /*background-color: #84ea4d50!important;*/
362
- /*color: #4e8033;*/
363
-
364
384
  background-color: #ccf7e5 !important;
365
385
  color: #00b368;
366
386
  }
387
+ .react-flow__node .node_type__source {
388
+ background-color: #7eb46150 !important;
389
+ color: #7eb461;
390
+ }
367
391
 
368
392
  .node_type__transform {
369
393
  background-color: #ccefff !important;
370
394
  color: #0063b4;
371
395
  }
396
+ .react-flow__node .node_type__transform {
397
+ background-color: #6daaa750 !important;
398
+ color: #6daaa7;
399
+ }
372
400
 
373
401
  .node_type__metric {
374
402
  background-color: #fad7dd !important;
375
403
  color: #a2283e;
376
404
  }
405
+ .react-flow__node .node_type__metric {
406
+ background-color: #a27e8650 !important;
407
+ color: #a27e86;
408
+ }
377
409
 
378
410
  .node_type__dimension {
379
411
  background-color: #ffefd0 !important;
380
412
  color: #a96621;
381
413
  }
414
+ .react-flow__node .node_type__dimension {
415
+ background-color: #cf7d2950 !important;
416
+ color: #cf7d29;
417
+ }
382
418
 
383
419
  .node_type__cube {
384
420
  background-color: #dbafff !important;
385
421
  color: #580076;
386
422
  }
423
+ .react-flow__node .node_type__cube {
424
+ background-color: #c2180750 !important;
425
+ color: #c2180750;
426
+ }
427
+
428
+ .history_type__create {
429
+ background-color: #ccf7e5 !important;
430
+ color: #00b368;
431
+ }
432
+
433
+ .history_type__deactvate {
434
+ background-color: #a8a8a8 !important;
435
+ color: #855e5e;
436
+ }
437
+
438
+ .history_type__activate {
439
+ background-color: #ccf7e5 !important;
440
+ color: #00b368;
441
+ }
442
+
443
+ .history_type__modify {
444
+ background-color: #ffefd0 !important;
445
+ color: #a96621;
446
+ }
447
+
448
+ .history_type__link {
449
+ background-color: #a8a8a8 !important;
450
+ color: #855e5e;
451
+ }
452
+
453
+ .history_type__tag {
454
+ background-color: #a8a8a8 !important;
455
+ color: #855e5e;
456
+ }
457
+
458
+ .history_type__set_attribute {
459
+ background-color: #a8a8a8 !important;
460
+ color: #855e5e;
461
+ }
462
+
463
+ .partition_value {
464
+ border: solid #00b368 0.025em;
465
+ background-color: #ccf7e525;
466
+ margin: 0.25rem;
467
+ }
468
+
469
+ .partition_value_highlight {
470
+ border: solid #5c3b8f 0.025em;
471
+ color: #5c3b8f;
472
+ background-color: #5c3b8f25;
473
+ margin: 0.25rem;
474
+ }
475
+
476
+ .dimension_option {
477
+ border: solid #5c3b8f 0.025em;
478
+ color: #5c3b8f;
479
+ background-color: #5c3b8f25;
480
+ margin: 0.25rem;
481
+ font-size: 16px;
482
+ }
483
+
484
+ .dimension_option_subheading {
485
+ background-color: #ffffff !important;
486
+ color: #580076;
487
+ padding: 0.4rem;
488
+ margin: 0.4rem;
489
+ font-size: 12px;
490
+ }
491
+
492
+ .upstreams {
493
+ width: 260px;
494
+ display: flex;
495
+ }
496
+ .upstream_tables {
497
+ width: 260px;
498
+ font-size: 14px;
499
+ word-wrap: break-word;
500
+ padding: 12px;
501
+ }
502
+
503
+ .bi-table {
504
+ }
505
+
506
+ .name {
507
+ display: block;
508
+ flex-grow: 1;
509
+ line-height: 18px;
510
+ }
511
+
512
+ .entity-info {
513
+ color: #757575;
514
+ font-size: 12px;
515
+ padding: 0.25rem;
516
+ flex-grow: 1;
517
+ line-height: 24px;
518
+ letter-spacing: normal;
519
+ }
520
+
521
+ .node_name {
522
+ word-wrap: break-word;
523
+ max-width: 200px;
524
+ }
525
+
526
+ .cron {
527
+ background-color: rgb(255 215 215) !important;
528
+ color: #b34b00;
529
+ font-size: 1rem;
530
+ }
531
+ .cron-description {
532
+ text-transform: lowercase;
533
+ color: #777777;
534
+ }
387
535
 
388
536
  .status__valid {
389
537
  color: #00b368;
390
538
  }
391
539
 
540
+ .status__invalid {
541
+ color: #b34b00;
542
+ }
543
+
392
544
  .status {
393
545
  text-transform: capitalize;
394
546
  vertical-align: middle;
@@ -404,7 +556,6 @@ tbody th {
404
556
  }
405
557
 
406
558
  .col.active {
407
- /*background-color: #f5fbff;*/
408
559
  padding-bottom: 1.15rem;
409
560
  color: #a1a5b7;
410
561
  border-bottom: solid 0.2em #2c7be5;
@@ -424,9 +575,6 @@ tbody th {
424
575
  --bs-gutter-y: 0;
425
576
  display: flex;
426
577
  flex-wrap: wrap;
427
- /*margin-top: 3rem;*/
428
- /*margin-bottom: calc(-.75*var(--bs-gutter-x));*/
429
- /*margin-left: 3.4rem;*/
430
578
  }
431
579
 
432
580
  .header {
@@ -435,14 +583,11 @@ tbody th {
435
583
  --bs-header-body-border-width: 1px;
436
584
  --bs-header-body-border-color: #e3ebf6;
437
585
  --bs-header-body-border-color-dark: rgba(227, 235, 246, 0.1);
438
- /*margin-bottom: var(--bs-header-margin-bottom);*/
439
586
  height: 90px;
440
587
  transition: none;
441
588
  display: flex;
442
589
  align-items: center;
443
590
  background-color: transparent;
444
- /*box-shadow: 0px 10px 30px 0px rgba(82, 63, 105, 0.05);*/
445
- /*border-bottom: var(--bs-app-header-base-border-bottom);*/
446
591
  }
447
592
  *,
448
593
  :after,
@@ -466,10 +611,6 @@ tbody th {
466
611
  background-color: transparent;
467
612
  border-color: #2c7be5;
468
613
  }
469
- .header-tabs .nav-link {
470
- /*padding-top: var(--bs-header-spacing-y);*/
471
- /*padding-bottom: var(--bs-header-spacing-y);*/
472
- }
473
614
  .nav-link {
474
615
  display: block;
475
616
  color: #a1a5b7;
@@ -544,11 +685,16 @@ pre {
544
685
  padding-bottom: 2rem;
545
686
  }
546
687
 
688
+ .mid {
689
+ padding-top: 0.4rem;
690
+ }
691
+
547
692
  .rounded-box {
548
693
  border-radius: 1rem !important;
549
694
  background-color: #ffffff;
550
695
  max-width: fit-content;
551
696
  }
697
+
552
698
  .card-header {
553
699
  align-items: center;
554
700
  margin: 0.5rem;
@@ -559,3 +705,163 @@ pre {
559
705
  .text-gray-400 {
560
706
  color: #b5b5c3 !important;
561
707
  }
708
+
709
+ .filters_attribute {
710
+ width: 30%;
711
+ display: block;
712
+ margin: 0 3rem 3rem 3rem;
713
+ float: left;
714
+ }
715
+
716
+ .switch {
717
+ position: relative;
718
+ display: inline-block;
719
+ width: 40px;
720
+ height: 20px;
721
+ background-color: #eee;
722
+ border-radius: 20px;
723
+ vertical-align: middle;
724
+ }
725
+
726
+ .switch::after {
727
+ content: '';
728
+ position: absolute;
729
+ width: 18px;
730
+ height: 18px;
731
+ border-radius: 50%;
732
+ background-color: white;
733
+ top: 1px;
734
+ left: 1px;
735
+ transition: all 0.3s;
736
+ }
737
+
738
+ .checkbox:checked + .switch::after {
739
+ left: 20px;
740
+ }
741
+ .checkbox:checked + .switch {
742
+ background-color: #7983ff;
743
+ }
744
+
745
+ .checkbox {
746
+ display: none;
747
+ }
748
+
749
+ .button-3 {
750
+ appearance: none;
751
+ border: 1px solid rgba(27, 31, 35, 0.15);
752
+ border-radius: 6px;
753
+ box-shadow: rgba(27, 31, 35, 0.1) 0 1px 0;
754
+ box-sizing: border-box;
755
+ cursor: pointer;
756
+ display: inline-block;
757
+ font-weight: 600;
758
+ line-height: 20px;
759
+ padding: 6px 16px;
760
+ margin: 5px;
761
+ position: relative;
762
+ text-align: center;
763
+ text-decoration: none;
764
+ user-select: none;
765
+ -webkit-user-select: none;
766
+ touch-action: manipulation;
767
+ vertical-align: middle;
768
+ white-space: nowrap;
769
+ }
770
+
771
+ .button-3:focus:not(:focus-visible):not(.focus-visible) {
772
+ box-shadow: none;
773
+ outline: none;
774
+ }
775
+
776
+ .execute-button {
777
+ background-color: #00b368;
778
+ color: #fff;
779
+ }
780
+
781
+ .executing-button {
782
+ background-color: #bbbbbb;
783
+ color: #fff;
784
+ }
785
+
786
+ .neutral-button {
787
+ background-color: #f6f8fa;
788
+ color: #24292f;
789
+ }
790
+ .text-black {
791
+ color: #000000 !important;
792
+ }
793
+
794
+ .cube-element {
795
+ color: #757575;
796
+ font-size: 14px;
797
+ padding: 0.25rem;
798
+ flex-grow: 1;
799
+ display: table;
800
+ line-height: 24px;
801
+ letter-spacing: normal;
802
+ }
803
+ .cube-element .badge {
804
+ margin-left: 0.4rem;
805
+ }
806
+
807
+ .code-button {
808
+ display: inline-flex;
809
+ -webkit-box-align: center;
810
+ align-items: center;
811
+ -webkit-box-pack: center;
812
+ justify-content: center;
813
+ position: relative;
814
+ box-sizing: border-box;
815
+ -webkit-tap-highlight-color: transparent;
816
+ background-color: transparent;
817
+ outline: 0;
818
+ border: 0;
819
+ margin: 0;
820
+ cursor: pointer;
821
+ user-select: none;
822
+ vertical-align: middle;
823
+ appearance: none;
824
+ text-decoration: none;
825
+ text-align: center;
826
+ flex: 0 0 auto;
827
+ font-size: 1.5rem;
828
+ padding: 0;
829
+ border-radius: 50%;
830
+ overflow: visible;
831
+ color: rgba(0, 0, 0, 0.54);
832
+ transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
833
+ }
834
+
835
+ #node-create-code pre {
836
+ padding: 1rem !important;
837
+ max-height: 300px;
838
+ overflow: scroll;
839
+ text-align: left;
840
+ position: absolute;
841
+ max-width: 75%;
842
+ z-index: 1;
843
+ }
844
+
845
+ .select-name {
846
+ margin-top: 5px;
847
+ padding: 7px 7px;
848
+ width: fit-content;
849
+ border-radius: 4px;
850
+ cursor: default;
851
+ font-size: 0.9125rem;
852
+ color: #95aac9;
853
+ }
854
+
855
+ .select-name:hover {
856
+ background-color: #bdbaba3c;
857
+ }
858
+
859
+ .select-name-highlight {
860
+ font-weight: 600;
861
+ background-color: #bdbaba3c;
862
+ border: 1px solid rgba(94, 94, 94, 0.24);
863
+ }
864
+
865
+ .inactive {
866
+ display: none;
867
+ }
package/webpack.config.js CHANGED
@@ -1,7 +1,8 @@
1
1
  const webpack = require('webpack');
2
+ const dotenv = require('dotenv').config();
2
3
  const path = require('path');
3
4
  const HtmlWebpackPlugin = require('html-webpack-plugin');
4
- // const MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
+ require('dotenv').config({ path: './.env' });
5
6
 
6
7
  var babelOptions = {
7
8
  presets: ['@babel/preset-react'],
@@ -31,6 +32,7 @@ module.exports = {
31
32
  },
32
33
  resolve: {
33
34
  extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
35
+ modules: ['src', 'node_modules'],
34
36
  fallback: {
35
37
  path: false,
36
38
  buffer: false,
@@ -99,10 +101,7 @@ module.exports = {
99
101
  template: path.resolve(__dirname, 'public', 'index.html'),
100
102
  }),
101
103
  new webpack.DefinePlugin({
102
- REACT_APP_DJ_URL: 'http://localhost:8000',
104
+ 'process.env': JSON.stringify(process.env),
103
105
  }),
104
- // new MiniCssExtractPlugin({
105
- // filename: './styles/index.css',
106
- // }),
107
106
  ],
108
107
  };
package/.babelrc DELETED
@@ -1,4 +0,0 @@
1
- {
2
- "presets": ["@babel/preset-env", "@babel/preset-react"],
3
- "plugins": ["@babel/plugin-proposal-class-properties"]
4
- }
package/.env.local DELETED
@@ -1,4 +0,0 @@
1
- BROWSER=none
2
- EXTEND_ESLINT=true
3
- FAST_REFRESH=true
4
- REACT_APP_DJ_URL=http://localhost:8000
package/.env.production DELETED
@@ -1 +0,0 @@
1
- GENERATE_SOURCEMAP=false
@@ -1,7 +0,0 @@
1
- {
2
- "recommendations": [
3
- "dbaeumer.vscode-eslint",
4
- "esbenp.prettier-vscode",
5
- "orta.vscode-jest"
6
- ]
7
- }
@@ -1,15 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "name": "Chrome",
6
- "type": "chrome",
7
- "request": "launch",
8
- "url": "http://localhost:3000",
9
- "webRoot": "${workspaceFolder}/src",
10
- "sourceMapPathOverrides": {
11
- "webpack:///src/*": "${webRoot}/*"
12
- }
13
- }
14
- ]
15
- }