@plasmicpkgs/airtable 0.0.44 → 0.0.47

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.
@@ -1,6 +1,11 @@
1
- import { ComponentMeta, GlobalContextMeta, registerComponent, registerGlobalContext } from "@plasmicapp/host";
2
- import { CanvasComponentProps } from "@plasmicapp/host/dist/registerComponent";
1
+ import registerComponent, { CanvasComponentProps, ComponentMeta } from "@plasmicapp/host/registerComponent";
2
+ import registerGlobalContext, { GlobalContextMeta } from "@plasmicapp/host/registerGlobalContext";
3
3
  import React from "react";
4
+ export interface DataSourceInfo {
5
+ id: string;
6
+ base: string;
7
+ host?: string;
8
+ }
4
9
  interface RecordData {
5
10
  [field: string]: string | {
6
11
  id: string;
@@ -9,12 +14,10 @@ interface RecordData {
9
14
  }[];
10
15
  }
11
16
  export interface AirtableRecordProps {
12
- dataSourceId?: string;
13
- base?: string;
14
17
  table: string;
15
18
  record: string;
16
19
  }
17
- export declare function AirtableRecord({ table, record, children, ...props }: React.PropsWithChildren<AirtableRecordProps>): JSX.Element;
20
+ export declare function AirtableRecord({ table, record, children, }: React.PropsWithChildren<AirtableRecordProps>): JSX.Element;
18
21
  export interface AirtableRecordFieldProps extends CanvasComponentProps<RecordData | undefined> {
19
22
  className?: string;
20
23
  style?: React.CSSProperties;
@@ -22,8 +25,6 @@ export interface AirtableRecordFieldProps extends CanvasComponentProps<RecordDat
22
25
  }
23
26
  export declare function AirtableRecordField({ className, field, style, setControlContextData, }: AirtableRecordFieldProps): JSX.Element;
24
27
  export interface AirtableCollectionProps {
25
- dataSourceId?: string;
26
- base?: string;
27
28
  table: string;
28
29
  fields?: string[];
29
30
  filterByFormula?: string;
@@ -37,11 +38,10 @@ export interface AirtableCollectionProps {
37
38
  }
38
39
  export declare function AirtableCollection({ table, children, ...props }: React.PropsWithChildren<AirtableCollectionProps>): JSX.Element;
39
40
  interface AirtableCredentialsProviderProps {
40
- dataSourceId: string;
41
- base: string;
41
+ dataSource: DataSourceInfo;
42
42
  host?: string;
43
43
  }
44
- export declare function AirtableCredentialsProvider({ base, dataSourceId, host: maybeHost, children, }: React.PropsWithChildren<AirtableCredentialsProviderProps>): JSX.Element;
44
+ export declare function AirtableCredentialsProvider({ dataSource, host: maybeHost, children, }: React.PropsWithChildren<AirtableCredentialsProviderProps>): JSX.Element;
45
45
  export declare const airtableRecordMeta: ComponentMeta<AirtableRecordProps>;
46
46
  export declare function registerAirtableRecord(loader?: {
47
47
  registerComponent: typeof registerComponent;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
6
 
7
7
  var host = require('@plasmicapp/host');
8
+ var registerComponent = _interopDefault(require('@plasmicapp/host/registerComponent'));
9
+ var registerGlobalContext = _interopDefault(require('@plasmicapp/host/registerGlobalContext'));
8
10
  var query = require('@plasmicapp/query');
9
11
  var React = _interopDefault(require('react'));
10
12
 
@@ -44,6 +46,24 @@ function _asyncToGenerator(fn) {
44
46
  };
45
47
  }
46
48
 
49
+ function _extends() {
50
+ _extends = Object.assign || function (target) {
51
+ for (var i = 1; i < arguments.length; i++) {
52
+ var source = arguments[i];
53
+
54
+ for (var key in source) {
55
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
56
+ target[key] = source[key];
57
+ }
58
+ }
59
+ }
60
+
61
+ return target;
62
+ };
63
+
64
+ return _extends.apply(this, arguments);
65
+ }
66
+
47
67
  function _objectWithoutPropertiesLoose(source, excluded) {
48
68
  if (source == null) return {};
49
69
  var target = {};
@@ -787,51 +807,62 @@ var runtime_1 = /*#__PURE__*/createCommonjsModule(function (module) {
787
807
  }
788
808
  });
789
809
 
790
- var _excluded = ["table", "record", "children"],
791
- _excluded2 = ["table", "children"];
810
+ var _excluded = ["table", "children"];
792
811
  var defaultHost = "https://studio.plasmic.app";
793
812
  var CredentialsContext = /*#__PURE__*/React.createContext(undefined);
794
813
  function AirtableRecord(_ref) {
795
- var _props$base, _props$dataSourceId, _credentialsContext$h;
796
-
797
814
  var table = _ref.table,
798
815
  record = _ref.record,
799
- children = _ref.children,
800
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
801
-
816
+ children = _ref.children;
802
817
  var credentialsContext = React.useContext(CredentialsContext);
803
- var base = (_props$base = props.base) != null ? _props$base : credentialsContext == null ? void 0 : credentialsContext.base;
804
- var dataSourceId = (_props$dataSourceId = props.dataSourceId) != null ? _props$dataSourceId : credentialsContext == null ? void 0 : credentialsContext.dataSourceId;
805
- var host$1 = (_credentialsContext$h = credentialsContext == null ? void 0 : credentialsContext.host) != null ? _credentialsContext$h : defaultHost;
818
+ var dataSourceId = credentialsContext && credentialsContext.id;
819
+ var base = credentialsContext && credentialsContext.base;
820
+ var host$1 = credentialsContext && credentialsContext.host || defaultHost;
806
821
  var data = query.usePlasmicQueryData(JSON.stringify(["AirtableRecord", host$1, base, table, record, dataSourceId]), /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
807
822
  var pathname, url;
808
823
  return runtime_1.wrap(function _callee$(_context) {
809
824
  while (1) {
810
825
  switch (_context.prev = _context.next) {
811
826
  case 0:
812
- if (!(!base || !dataSourceId || !table)) {
827
+ if (!(!base || !dataSourceId)) {
813
828
  _context.next = 2;
814
829
  break;
815
830
  }
816
831
 
817
- throw new Error("AirtableRecord needs base ID, table and Data Source ID");
832
+ throw new Error("Missing Data Source. Please select a Data Source from the Airtable Credentials Provider");
818
833
 
819
834
  case 2:
835
+ if (table) {
836
+ _context.next = 4;
837
+ break;
838
+ }
839
+
840
+ throw new Error("AirtableRecord is missing the table name");
841
+
842
+ case 4:
843
+ if (record) {
844
+ _context.next = 6;
845
+ break;
846
+ }
847
+
848
+ throw new Error("AirtableRecord is missing the record ID");
849
+
850
+ case 6:
820
851
  pathname = "/" + base + "/" + table + "/" + record;
821
- url = host$1 + "/api/v1/server-data-sources/query?pathname=" + encodeURIComponent(pathname) + "&dataSourceId=" + dataSourceId;
822
- _context.next = 6;
852
+ url = host$1 + "/api/v1/server-data/query?pathname=" + encodeURIComponent(pathname) + "&dataSourceId=" + dataSourceId;
853
+ _context.next = 10;
823
854
  return fetch(url, {
824
855
  method: "GET"
825
856
  });
826
857
 
827
- case 6:
828
- _context.next = 8;
858
+ case 10:
859
+ _context.next = 12;
829
860
  return _context.sent.json();
830
861
 
831
- case 8:
862
+ case 12:
832
863
  return _context.abrupt("return", _context.sent.fields);
833
864
 
834
- case 9:
865
+ case 13:
835
866
  case "end":
836
867
  return _context.stop();
837
868
  }
@@ -881,16 +912,14 @@ function AirtableRecordField(_ref3) {
881
912
  }() : "Error: Must provide a record to AirtableRecordField");
882
913
  }
883
914
  function AirtableCollection(_ref4) {
884
- var _props$base2, _props$dataSourceId2, _credentialsContext$h2;
885
-
886
915
  var table = _ref4.table,
887
916
  children = _ref4.children,
888
- props = _objectWithoutPropertiesLoose(_ref4, _excluded2);
917
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded);
889
918
 
890
919
  var credentialsContext = React.useContext(CredentialsContext);
891
- var base = (_props$base2 = props.base) != null ? _props$base2 : credentialsContext == null ? void 0 : credentialsContext.base;
892
- var dataSourceId = (_props$dataSourceId2 = props.dataSourceId) != null ? _props$dataSourceId2 : credentialsContext == null ? void 0 : credentialsContext.dataSourceId;
893
- var host$1 = (_credentialsContext$h2 = credentialsContext == null ? void 0 : credentialsContext.host) != null ? _credentialsContext$h2 : defaultHost;
920
+ var dataSourceId = credentialsContext && credentialsContext.id;
921
+ var base = credentialsContext && credentialsContext.base;
922
+ var host$1 = credentialsContext && credentialsContext.host || defaultHost;
894
923
  var searchArray = [];
895
924
 
896
925
  if (props.fields) {
@@ -922,29 +951,37 @@ function AirtableCollection(_ref4) {
922
951
  while (1) {
923
952
  switch (_context2.prev = _context2.next) {
924
953
  case 0:
925
- if (!(!base || !dataSourceId || !table)) {
954
+ if (!(!base || !dataSourceId)) {
926
955
  _context2.next = 2;
927
956
  break;
928
957
  }
929
958
 
930
- throw new Error("AirtableRecord needs base ID, table and Data Source ID");
959
+ throw new Error("Missing Data Source. Please select a Data Source from the Airtable Credentials Provider");
931
960
 
932
961
  case 2:
962
+ if (table) {
963
+ _context2.next = 4;
964
+ break;
965
+ }
966
+
967
+ throw new Error("AirtableCollection is missing the table name");
968
+
969
+ case 4:
933
970
  pathname = "/" + base + "/" + table + search;
934
- url = host$1 + "/api/v1/server-data-sources/query?pathname=" + encodeURIComponent(pathname) + "&dataSourceId=" + dataSourceId;
935
- _context2.next = 6;
971
+ url = host$1 + "/api/v1/server-data/query?pathname=" + encodeURIComponent(pathname) + "&dataSourceId=" + dataSourceId;
972
+ _context2.next = 8;
936
973
  return fetch(url, {
937
974
  method: "GET"
938
975
  });
939
976
 
940
- case 6:
941
- _context2.next = 8;
977
+ case 8:
978
+ _context2.next = 10;
942
979
  return _context2.sent.json();
943
980
 
944
- case 8:
981
+ case 10:
945
982
  return _context2.abrupt("return", _context2.sent.records);
946
983
 
947
- case 9:
984
+ case 11:
948
985
  case "end":
949
986
  return _context2.stop();
950
987
  }
@@ -971,17 +1008,20 @@ function AirtableCollection(_ref4) {
971
1008
  }));
972
1009
  }
973
1010
  function AirtableCredentialsProvider(_ref6) {
974
- var base = _ref6.base,
975
- dataSourceId = _ref6.dataSourceId,
1011
+ var dataSource = _ref6.dataSource,
976
1012
  maybeHost = _ref6.host,
977
1013
  children = _ref6.children;
978
- var host = maybeHost || defaultHost;
1014
+ var inCanvas = host.usePlasmicCanvasContext();
1015
+
1016
+ if (inCanvas && (!dataSource || !dataSource.id || !dataSource.base)) {
1017
+ return React.createElement("p", null, "Error: Missing Data Source. Please select a Data Source from the Airtable Credentials Provider");
1018
+ }
1019
+
1020
+ var host$1 = maybeHost || defaultHost;
979
1021
  return React.createElement(CredentialsContext.Provider, {
980
- value: {
981
- base: base,
982
- dataSourceId: dataSourceId,
983
- host: host
984
- }
1022
+ value: _extends({}, dataSource, {
1023
+ host: host$1
1024
+ })
985
1025
  }, children);
986
1026
  }
987
1027
  var thisModule = "@plasmicpkgs/airtable";
@@ -1007,18 +1047,6 @@ var airtableRecordMeta = {
1007
1047
  type: "string",
1008
1048
  displayName: "Record",
1009
1049
  description: "The table record ID"
1010
- },
1011
- base: {
1012
- type: "string",
1013
- displayName: "Base",
1014
- defaultValueHint: "Read from Credentials Provider",
1015
- description: "The Airtable Base (if not provided by the Credentials Provider)"
1016
- },
1017
- dataSourceId: {
1018
- type: "string",
1019
- displayName: "Data Source ID",
1020
- defaultValueHint: "Read from Credentials Provider",
1021
- description: "The Data Source ID with the Airtable secrets"
1022
1050
  }
1023
1051
  }
1024
1052
  };
@@ -1026,7 +1054,7 @@ function registerAirtableRecord(loader, customAirtableRecordMeta) {
1026
1054
  if (loader) {
1027
1055
  loader.registerComponent(AirtableRecord, customAirtableRecordMeta != null ? customAirtableRecordMeta : airtableRecordMeta);
1028
1056
  } else {
1029
- host.registerComponent(AirtableRecord, customAirtableRecordMeta != null ? customAirtableRecordMeta : airtableRecordMeta);
1057
+ registerComponent(AirtableRecord, customAirtableRecordMeta != null ? customAirtableRecordMeta : airtableRecordMeta);
1030
1058
  }
1031
1059
  }
1032
1060
  var airtableRecordFieldMeta = {
@@ -1049,7 +1077,7 @@ function registerAirtableRecordField(loader, customAirtableRecordFieldMeta) {
1049
1077
  if (loader) {
1050
1078
  loader.registerComponent(AirtableRecordField, customAirtableRecordFieldMeta != null ? customAirtableRecordFieldMeta : airtableRecordFieldMeta);
1051
1079
  } else {
1052
- host.registerComponent(AirtableRecordField, customAirtableRecordFieldMeta != null ? customAirtableRecordFieldMeta : airtableRecordFieldMeta);
1080
+ registerComponent(AirtableRecordField, customAirtableRecordFieldMeta != null ? customAirtableRecordFieldMeta : airtableRecordFieldMeta);
1053
1081
  }
1054
1082
  }
1055
1083
  var airtableCollectionMeta = {
@@ -1098,18 +1126,6 @@ var airtableCollectionMeta = {
1098
1126
  type: "string",
1099
1127
  displayName: "Filter by Formula",
1100
1128
  description: "An Airtable formula used to filter records"
1101
- },
1102
- base: {
1103
- type: "string",
1104
- displayName: "Base",
1105
- defaultValueHint: "Read from Credentials Provider",
1106
- description: "The Airtable Base (if not provided by the Credentials Provider)"
1107
- },
1108
- dataSourceId: {
1109
- type: "string",
1110
- displayName: "Data Source ID",
1111
- defaultValueHint: "Read from Credentials Provider",
1112
- description: "The Data Source ID with the Airtable secrets"
1113
1129
  }
1114
1130
  }
1115
1131
  };
@@ -1117,7 +1133,7 @@ function registerAirtableCollection(loader, customAirtableCollectionMeta) {
1117
1133
  if (loader) {
1118
1134
  loader.registerComponent(AirtableCollection, customAirtableCollectionMeta != null ? customAirtableCollectionMeta : airtableCollectionMeta);
1119
1135
  } else {
1120
- host.registerComponent(AirtableCollection, customAirtableCollectionMeta != null ? customAirtableCollectionMeta : airtableCollectionMeta);
1136
+ registerComponent(AirtableCollection, customAirtableCollectionMeta != null ? customAirtableCollectionMeta : airtableCollectionMeta);
1121
1137
  }
1122
1138
  }
1123
1139
  var airtableCredentialsProviderMeta = {
@@ -1126,15 +1142,11 @@ var airtableCredentialsProviderMeta = {
1126
1142
  importPath: thisModule,
1127
1143
  importName: "AirtableCredentialsProvider",
1128
1144
  props: {
1129
- base: {
1130
- type: "string",
1131
- displayName: "Base",
1132
- description: "The Airtable Base"
1133
- },
1134
- dataSourceId: {
1135
- type: "string",
1136
- displayName: "Data Source ID",
1137
- description: "The Data Source ID"
1145
+ dataSource: {
1146
+ type: "dataSource",
1147
+ dataSource: "airtable",
1148
+ displayName: "Data Source",
1149
+ description: "The Airtable Data Source to use"
1138
1150
  },
1139
1151
  host: {
1140
1152
  type: "string",
@@ -1148,10 +1160,17 @@ function registerAirtableCredentialsProvider(loader, customAirtableCredentialsPr
1148
1160
  if (loader) {
1149
1161
  loader.registerGlobalContext(AirtableCredentialsProvider, customAirtableCredentialsProviderMeta != null ? customAirtableCredentialsProviderMeta : airtableCredentialsProviderMeta);
1150
1162
  } else {
1151
- host.registerGlobalContext(AirtableCredentialsProvider, customAirtableCredentialsProviderMeta != null ? customAirtableCredentialsProviderMeta : airtableCredentialsProviderMeta);
1163
+ registerGlobalContext(AirtableCredentialsProvider, customAirtableCredentialsProviderMeta != null ? customAirtableCredentialsProviderMeta : airtableCredentialsProviderMeta);
1152
1164
  }
1153
1165
  }
1154
1166
 
1167
+ function registerAll(loader) {
1168
+ registerAirtableCollection(loader);
1169
+ registerAirtableCredentialsProvider(loader);
1170
+ registerAirtableRecord(loader);
1171
+ registerAirtableRecordField(loader);
1172
+ }
1173
+
1155
1174
  exports.AirtableCollection = AirtableCollection;
1156
1175
  exports.AirtableCredentialsProvider = AirtableCredentialsProvider;
1157
1176
  exports.AirtableRecord = AirtableRecord;
@@ -1164,4 +1183,5 @@ exports.registerAirtableCollection = registerAirtableCollection;
1164
1183
  exports.registerAirtableCredentialsProvider = registerAirtableCredentialsProvider;
1165
1184
  exports.registerAirtableRecord = registerAirtableRecord;
1166
1185
  exports.registerAirtableRecordField = registerAirtableRecordField;
1186
+ exports.registerAll = registerAll;
1167
1187
  //# sourceMappingURL=airtable.cjs.development.js.map