mp-js-api 0.0.20 → 0.0.21

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.
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -63,7 +63,7 @@ const createApiBase = ({ auth }) => {
63
63
  try {
64
64
  const url = path + '/get'; //+ stringifyURLParams(mpOptions);
65
65
  const data = mpOptions && (0, converters_1.convertToSnakeCase)(mpOptions);
66
- const res = await api.post(url, data, {
66
+ const res = await api.post(url, (0, converters_1.escapeApostrophes)(data), {
67
67
  ...config,
68
68
  ...{
69
69
  headers: {
@@ -5,7 +5,7 @@ export declare function escapeApostrophes<T>(obj: T): T;
5
5
  export declare function toCamelCase(str: string, { capitalIds }?: {
6
6
  capitalIds?: boolean;
7
7
  }): string;
8
- export declare function toCapitalSnakeCase(str: string, { capitalIds, capitalSnake }?: {
8
+ export declare function toCapitalSnakeCase(str: string, { capitalIds }?: {
9
9
  capitalIds?: boolean;
10
10
  capitalSnake?: boolean;
11
11
  }): string;
@@ -1 +1 @@
1
- {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/utils/converters.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAM,UAS5E;AAGD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UA2BpC;AAED,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAS3D;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAa1C;AAKD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAkB,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;CAAO,UAQ9F;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAkB,EAAE,YAAmB,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAAO,UAKlJ;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAkB,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAAE,OAkB5H;AAED,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,UAAO,GAAG,CAAC,CAE1F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,UAAO,GAAG,CAAC,CAE1F"}
1
+ {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/utils/converters.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAM,UAS5E;AAGD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UA2BpC;AAED,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAU3D;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAa1C;AAKD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAkB,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;CAAO,UAQ9F;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAkB,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAAO,UAK7H;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,UAAkB,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAAE,OAkB5H;AAED,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,UAAO,GAAG,CAAC,CAE1F;AAED,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,UAAO,GAAG,CAAC,CAE1F"}
@@ -49,6 +49,8 @@ function escapeSql(str) {
49
49
  });
50
50
  }
51
51
  function escapeApostrophe(str) {
52
+ if (typeof str !== 'string')
53
+ return str;
52
54
  return str.replace(/%|(?<=\w)'(?=\w)/g, function (char) {
53
55
  switch (char) {
54
56
  case "'":
@@ -68,7 +70,7 @@ function escapeApostrophes(obj) {
68
70
  }
69
71
  return obj;
70
72
  }
71
- return obj; // Return value if it's neither an array nor an object
73
+ return obj; // Return value if it's not an object
72
74
  }
73
75
  function toCamelCase(str, { capitalIds = false } = {}) {
74
76
  // str = str.replace('-', '');
@@ -79,10 +81,10 @@ function toCamelCase(str, { capitalIds = false } = {}) {
79
81
  str = str.replace(/(?<!^_|^)_[^\W_]/g, match => match.charAt(1).toUpperCase()); // remove non-word char if not first char
80
82
  return capitalIds ? str.replace(/id$/i, 'ID') : str;
81
83
  }
82
- function toCapitalSnakeCase(str, { capitalIds = false, capitalSnake = true } = {}) {
84
+ function toCapitalSnakeCase(str, { capitalIds = false } = {}) {
83
85
  str = str.replace(/(?<=^_|^__)[^\W_]/, match => match.at(0)?.toUpperCase() || '');
84
86
  str = str.replace(/(?<!_|\/)(ID|[A-Z]|\d)/g, match => `_${match}`);
85
- str = capitalSnake ? str.charAt(0).toUpperCase() + str.slice(1) : str;
87
+ str = str.charAt(0).toUpperCase() + str.slice(1);
86
88
  return capitalIds ? str.replace(/_id$/i, '_ID') : str;
87
89
  }
88
90
  // Function to recursively convert object keys to Capital_Snake_Case
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mp-js-api",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "Node MinistryPlatform API",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/api.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  import { URLSearchParams } from 'url';
3
- import { convertToCamelCase, convertToSnakeCase, stringifyURLParams, toCapitalSnakeCase } from './utils/converters';
3
+ import { convertToCamelCase, convertToSnakeCase, escapeApostrophes, stringifyURLParams, toCapitalSnakeCase } from './utils/converters';
4
4
 
5
5
 
6
6
  export type APIGetOneInstance = <T, R>({ id, path, mpOptions, config }: APIGetParameter & { id: number; }) => Promise<R | undefined | { error: ErrorDetails; }>;
@@ -98,7 +98,7 @@ export const createApiBase = ({ auth }: { auth: { username: string; password: st
98
98
  try {
99
99
  const url = path + '/get'; //+ stringifyURLParams(mpOptions);
100
100
  const data = mpOptions && convertToSnakeCase<MPGetOptions>(mpOptions);
101
- const res = await api.post<T[]>(url, data, {
101
+ const res = await api.post<T[]>(url, escapeApostrophes(data), {
102
102
  ...config,
103
103
  ...{
104
104
  headers: {
@@ -151,7 +151,6 @@ export const createApiBase = ({ auth }: { auth: { username: string; password: st
151
151
  catch (err) {
152
152
  return { error: getError(err) };
153
153
  }
154
-
155
154
  };
156
155
 
157
156
 
@@ -40,6 +40,7 @@ export function escapeSql(str: string) {
40
40
  }
41
41
 
42
42
  export function escapeApostrophe<T = string>(str: string): T {
43
+ if(typeof str !== 'string') return str;
43
44
  return str.replace(/%|(?<=\w)'(?=\w)/g, function (char) {
44
45
  switch (char) {
45
46
  case "'":
@@ -62,7 +63,7 @@ export function escapeApostrophes<T>(obj: T) {
62
63
  return obj;
63
64
  }
64
65
 
65
- return obj; // Return value if it's neither an array nor an object
66
+ return obj; // Return value if it's not an object
66
67
  }
67
68
 
68
69
 
@@ -78,10 +79,10 @@ export function toCamelCase(str: string, { capitalIds = false }: { capitalIds?:
78
79
  return capitalIds ? str.replace(/id$/i, 'ID') : str;
79
80
  }
80
81
 
81
- export function toCapitalSnakeCase(str: string, { capitalIds = false, capitalSnake = true }: { capitalIds?: boolean, capitalSnake?: boolean; } = {}) {
82
+ export function toCapitalSnakeCase(str: string, { capitalIds = false }: { capitalIds?: boolean, capitalSnake?: boolean; } = {}) {
82
83
  str = str.replace(/(?<=^_|^__)[^\W_]/, match => match.at(0)?.toUpperCase() || '');
83
84
  str = str.replace(/(?<!_|\/)(ID|[A-Z]|\d)/g, match => `_${match}`);
84
- str = capitalSnake ? str.charAt(0).toUpperCase() + str.slice(1) : str;
85
+ str = str.charAt(0).toUpperCase() + str.slice(1);
85
86
  return capitalIds ? str.replace(/_id$/i, '_ID') : str;
86
87
  }
87
88