@sqlrooms/utils 0.0.3 → 0.3.0

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/index.d.ts CHANGED
@@ -5,4 +5,5 @@ export * from './random';
5
5
  export * from './str';
6
6
  export * from './xhr';
7
7
  export * from './filepaths';
8
+ export { safeJsonParse } from './json';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -5,3 +5,4 @@ export * from './random';
5
5
  export * from './str';
6
6
  export * from './xhr';
7
7
  export * from './filepaths';
8
+ export { safeJsonParse } from './json';
package/dist/json.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Parse a JSON string and return the parsed object.
3
+ * If the string is not valid JSON, return null.
4
+ * @param json - The JSON string to parse.
5
+ * @returns The parsed object or null if the string is not valid JSON.
6
+ */
7
+ export declare function safeJsonParse<T>(json: string | undefined | null): T | null;
8
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAQ1E"}
package/dist/json.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Parse a JSON string and return the parsed object.
3
+ * If the string is not valid JSON, return null.
4
+ * @param json - The JSON string to parse.
5
+ * @returns The parsed object or null if the string is not valid JSON.
6
+ */
7
+ export function safeJsonParse(json) {
8
+ if (!json)
9
+ return null;
10
+ try {
11
+ return JSON.parse(json);
12
+ }
13
+ catch (error) {
14
+ console.error('Failed to parse JSON:', error);
15
+ return null;
16
+ }
17
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqlrooms/utils",
3
- "version": "0.0.3",
3
+ "version": "0.3.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
@@ -39,5 +39,5 @@
39
39
  "@types/d3-time-format": "^4.0.3",
40
40
  "@types/seedrandom": "^3.0.8"
41
41
  },
42
- "gitHead": "4269a3efdb5a903cb2498c126e9c36683b3bbae0"
42
+ "gitHead": "8586d4dd135d46c9c03ea65baa5a822287a5f07b"
43
43
  }
package/dist/storage.d.ts DELETED
@@ -1,10 +0,0 @@
1
- export declare function getSignedFileUrl(params: {
2
- fname: string;
3
- upload?: boolean;
4
- } | {
5
- projectId: string;
6
- fname: string;
7
- upload?: boolean;
8
- password?: string;
9
- }): Promise<any>;
10
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,CACpC,MAAM,EACF;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAC,GACjC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAC,gBAO5E"}
package/dist/storage.js DELETED
@@ -1,9 +0,0 @@
1
- import { postData } from './xhr';
2
- // TODO: this should live in app
3
- export async function getSignedFileUrl(params) {
4
- const { url: locationsUrl } = await postData({
5
- url: '/api/gen-signed-url',
6
- data: params,
7
- });
8
- return locationsUrl;
9
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=str.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"str.test.d.ts","sourceRoot":"","sources":["../src/str.test.ts"],"names":[],"mappings":""}
package/dist/str.test.js DELETED
@@ -1,42 +0,0 @@
1
- import { convertToUniqueS3ObjectName, generateUniqueName, generateUniquePath, } from './str';
2
- test('generateUniqueName generates unique table names', () => {
3
- expect(generateUniqueName('foo', [])).toBe('foo');
4
- expect(generateUniqueName('foo', ['345'])).toBe('foo');
5
- expect(generateUniqueName('foo', ['foo_1'])).toBe('foo');
6
- expect(generateUniqueName('foo', ['foo', 'foo_1'])).toBe('foo_2');
7
- expect(generateUniqueName('foo_1', ['foo_1'])).toBe('foo_2');
8
- expect(generateUniqueName('foo_2', ['foo_2'])).toBe('foo_3');
9
- expect(generateUniqueName('foo', ['foo', 'foo_1', 'foo_2'])).toBe('foo_3');
10
- expect(generateUniqueName('')).toBe('');
11
- expect(generateUniqueName('', [''])).toBe('_1');
12
- expect(generateUniqueName('_', ['_'])).toBe('__1');
13
- });
14
- test('generateUniquePath generates unique paths', () => {
15
- expect(generateUniquePath('/foo/bar.csv', [])).toBe('/foo/bar.csv');
16
- expect(generateUniquePath('/foo/bar.csv', ['345'])).toBe('/foo/bar.csv');
17
- expect(generateUniquePath('/foo/bar.csv', ['/foo/bar.csv'])).toBe('/foo/bar_1.csv');
18
- expect(generateUniquePath('/foo/bar.csv', ['/foo/bar_1.csv'])).toBe('/foo/bar.csv');
19
- expect(generateUniquePath('/foo/bar.csv', ['/foo/bar.csv', '/foo/bar_1.csv'])).toBe('/foo/bar_2.csv');
20
- expect(generateUniquePath('/foo/bar.csv', [
21
- '/foo/bar.csv',
22
- '/foo/bar_1.csv',
23
- '/foo/bar_2.csv',
24
- ])).toBe('/foo/bar_3.csv');
25
- expect(generateUniquePath('/foo/bar_1.csv', ['/foo/bar_1.csv'])).toBe('/foo/bar_2.csv');
26
- expect(generateUniquePath('/foo/bar_2.csv', ['/foo/bar_2.csv'])).toBe('/foo/bar_3.csv');
27
- expect(generateUniquePath('/foo', [])).toBe('/foo');
28
- expect(generateUniquePath('/foo/bar', [])).toBe('/foo/bar');
29
- expect(generateUniquePath('/foo/bar', ['/foo/bar'])).toBe('/foo/bar_1');
30
- expect(generateUniquePath('/', [])).toBe('/');
31
- expect(generateUniquePath('', [])).toBe('');
32
- expect(generateUniquePath('', [''])).toBe('_1');
33
- expect(generateUniquePath('_', ['_'])).toBe('__1');
34
- });
35
- test('convertToUniqueS3ObjectName works correctly', () => {
36
- expect(convertToUniqueS3ObjectName('/flows.csv', [])).toBe('_flows.csv');
37
- expect(convertToUniqueS3ObjectName('&flows.csv', [])).toBe('_flows.csv');
38
- expect(convertToUniqueS3ObjectName('@flows.csv', [])).toBe('_flows.csv');
39
- expect(convertToUniqueS3ObjectName('/flows.csv', [])).toBe('_flows.csv');
40
- expect(convertToUniqueS3ObjectName('flows.csv', ['flows.csv'])).toBe('flows_1.csv');
41
- expect(convertToUniqueS3ObjectName('flows.csv', ['flows.csv', 'flows_1.csv'])).toBe('flows_2.csv');
42
- });