@jpmorganchase/mosaic-source-figma 0.1.0-beta.60 → 0.1.0-beta.62

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
@@ -49,18 +49,22 @@ export declare const schema: z.ZodObject<{
49
49
  endpoints: z.ZodObject<{
50
50
  getFile: z.ZodString;
51
51
  getProject: z.ZodString;
52
+ generateThumbnail: z.ZodString;
52
53
  }, "strip", z.ZodTypeAny, {
53
54
  getFile: string;
54
55
  getProject: string;
56
+ generateThumbnail: string;
55
57
  }, {
56
58
  getFile: string;
57
59
  getProject: string;
60
+ generateThumbnail: string;
58
61
  }>;
59
62
  requestTimeout: z.ZodDefault<z.ZodNumber>;
60
63
  }, "strip", z.ZodTypeAny, {
61
64
  endpoints: {
62
65
  getFile: string;
63
66
  getProject: string;
67
+ generateThumbnail: string;
64
68
  };
65
69
  prefixDir: string;
66
70
  requestTimeout: number;
@@ -87,6 +91,7 @@ export declare const schema: z.ZodObject<{
87
91
  endpoints: {
88
92
  getFile: string;
89
93
  getProject: string;
94
+ generateThumbnail: string;
90
95
  };
91
96
  prefixDir: string;
92
97
  figmaToken: string;
package/dist/index.js CHANGED
@@ -18,7 +18,8 @@ export const schema = baseSchema.merge(z.object({
18
18
  })),
19
19
  endpoints: z.object({
20
20
  getFile: z.string().url(),
21
- getProject: z.string().url()
21
+ getProject: z.string().url(),
22
+ generateThumbnail: z.string().url()
22
23
  }),
23
24
  requestTimeout: z.number().default(5000)
24
25
  }));
@@ -26,17 +27,33 @@ const FigmaSource = {
26
27
  create(options, sourceConfig) {
27
28
  const parsedOptions = validateMosaicSchema(schema, options);
28
29
  const { endpoints, projects, figmaToken, proxyEndpoint, prefixDir, requestHeaders: requestHeadersParam } = parsedOptions;
29
- const projectEndpoints = projects.map(project => endpoints.getProject.replace(':project_id', project.id.toString()));
30
- const projectsTransformer = (response, _prefixDir, index) => [response].reduce((allProjectFileUrls, { files }) => {
31
- const projectFileUrls = files.reduce((project, { key }) => {
32
- const fileUrlAndMetadata = {
33
- fileUrl: endpoints.getFile.replace(':file_id', key),
34
- meta: projects[index].meta
35
- };
36
- return [...project, fileUrlAndMetadata];
30
+ const projectEndpoints = projects.reduce((result, project) => {
31
+ const projectId = project.id.toString();
32
+ return {
33
+ ...result,
34
+ [projectId]: endpoints.getProject.replace(':project_id', projectId)
35
+ };
36
+ }, {});
37
+ const projectsTransformer = (response, _prefixDir, index, transformerOptions) => {
38
+ return [response].reduce((allProjectFileUrls, { files }) => {
39
+ const projectFileUrls = files.reduce((project, { key }) => {
40
+ const meta = {
41
+ ...projects[index].meta
42
+ };
43
+ meta.data = {
44
+ ...meta.data,
45
+ fileId: key,
46
+ projectId: transformerOptions.projectIds[index]
47
+ };
48
+ const fileUrlAndMetadata = {
49
+ fileUrl: endpoints.getFile.replace(':file_id', key),
50
+ meta
51
+ };
52
+ return [...project, fileUrlAndMetadata];
53
+ }, []);
54
+ return [...allProjectFileUrls, ...projectFileUrls];
37
55
  }, []);
38
- return [...allProjectFileUrls, ...projectFileUrls];
39
- }, []);
56
+ };
40
57
  const projectFilesTransformer = (response, _prefixDir, index, transformerOptions) => {
41
58
  const { document: { sharedPluginData } } = response;
42
59
  const { patternPrefix } = projects[index];
@@ -58,8 +75,23 @@ const FigmaSource = {
58
75
  return figmaPagesResult;
59
76
  }, []);
60
77
  };
78
+ const generateThumbnailTransformer = (response, _prefixDir, index, transformerOptions) => {
79
+ const fileId = transformerOptions.fileIds[index];
80
+ if (response.err) {
81
+ console.error(`Figma returned ${response.err} for ${fileId} thumbnail generation `);
82
+ return transformerOptions.pages;
83
+ }
84
+ const thumbnailNodes = Object.keys(response.images);
85
+ thumbnailNodes.forEach(thumbnailNodeId => {
86
+ const pageForNode = transformerOptions.pages.find(page => page.data.fileId === fileId && page.data.nodeId === thumbnailNodeId);
87
+ if (pageForNode) {
88
+ pageForNode.data.thumbnailUrl = response.images[thumbnailNodeId];
89
+ }
90
+ });
91
+ return transformerOptions.pages;
92
+ };
61
93
  const projects$ = createHttpSource({
62
- endpoints: projectEndpoints,
94
+ endpoints: Object.values(projectEndpoints),
63
95
  requestHeaders: {
64
96
  'Content-Type': 'application/json',
65
97
  'X-FIGMA-TOKEN': figmaToken,
@@ -67,10 +99,11 @@ const FigmaSource = {
67
99
  },
68
100
  proxyEndpoint,
69
101
  prefixDir,
70
- transformer: projectsTransformer
102
+ transformer: projectsTransformer,
103
+ transformerOptions: { projectIds: Object.keys(projectEndpoints) }
71
104
  }, sourceConfig);
72
- const figmaSource$ = projects$.pipe(switchMap(fileUrlAndMetaCollection => {
73
- const fileUrls = fileUrlAndMetaCollection.map(item => item.fileUrl);
105
+ const figmaPages$ = projects$.pipe(switchMap(projectFiles => {
106
+ const fileUrls = projectFiles.map(item => item.fileUrl);
74
107
  return createHttpSource({
75
108
  endpoints: fileUrls,
76
109
  requestHeaders: {
@@ -81,10 +114,38 @@ const FigmaSource = {
81
114
  proxyEndpoint,
82
115
  prefixDir,
83
116
  transformer: projectFilesTransformer,
84
- transformerOptions: fileUrlAndMetaCollection
117
+ transformerOptions: projectFiles
118
+ });
119
+ }));
120
+ const figmaPagesWithThumbnails$ = figmaPages$.pipe(switchMap(figmaPages => {
121
+ const thumbnailNodes = figmaPages.reduce((thumbnailNodeMap, page) => {
122
+ const { fileId } = page.data;
123
+ if (thumbnailNodeMap[fileId]) {
124
+ thumbnailNodeMap[fileId] = [...thumbnailNodeMap[fileId], page.data.nodeId];
125
+ }
126
+ else {
127
+ thumbnailNodeMap[fileId] = [page.data.nodeId];
128
+ }
129
+ return thumbnailNodeMap;
130
+ }, {});
131
+ const thumbnailRequestUrls = Object.keys(thumbnailNodes).map(fileId => {
132
+ let generateThumbnailUrl = endpoints.generateThumbnail.replace(':project_id', fileId);
133
+ return generateThumbnailUrl.replace(':node_id', thumbnailNodes[fileId].join(','));
134
+ });
135
+ return createHttpSource({
136
+ endpoints: thumbnailRequestUrls,
137
+ requestHeaders: {
138
+ 'Content-Type': 'application/json',
139
+ 'X-FIGMA-TOKEN': figmaToken,
140
+ ...requestHeadersParam
141
+ },
142
+ proxyEndpoint,
143
+ prefixDir,
144
+ transformer: generateThumbnailTransformer,
145
+ transformerOptions: { fileIds: Object.keys(thumbnailNodes), pages: figmaPages }
85
146
  });
86
147
  }));
87
- return figmaSource$;
148
+ return figmaPagesWithThumbnails$;
88
149
  }
89
150
  };
90
151
  export default FigmaSource;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,24 @@
1
1
  import type { Page } from '@jpmorganchase/mosaic-types';
2
- /** Get project response */
3
- export declare type ProjectResponseJson = {
2
+ /** Get Projects Observable */
3
+ export declare type ProjectsTransformerOptions = {
4
+ projectIds: string[];
5
+ };
6
+ export declare type ProjectsTransformerResult = {
7
+ fileUrl: string;
8
+ meta?: Record<string, unknown>;
9
+ };
10
+ export declare type ProjectFile = {
11
+ key: string;
12
+ thumbnail_url: string;
13
+ last_modified: string;
14
+ branches?: ProjectFile[];
15
+ };
16
+ export declare type ProjectsResponse = {
17
+ name: string;
18
+ files: ProjectFile[];
19
+ };
20
+ /** Get Project Files Observable */
21
+ export declare type ProjectFilesResponse = {
4
22
  document: {
5
23
  id: string;
6
24
  name: string;
@@ -11,29 +29,27 @@ export declare type ProjectResponseJson = {
11
29
  thumbnailUrl: string;
12
30
  version: string;
13
31
  };
14
- export declare type ProjectFile = {
15
- key: string;
16
- thumbnail_url: string;
17
- last_modified: string;
18
- branches?: ProjectFile[];
32
+ /** Generate Thumbnail Observable */
33
+ export declare type GenerateThumbnailResponse = {
34
+ err: null | number;
35
+ images: Record<string, string>;
19
36
  };
20
- /** Get project files response */
21
- export declare type ProjectFilesResponseJson = {
22
- name: string;
23
- files: ProjectFile[];
24
- };
25
- export declare type FileUrlAndMeta = {
26
- fileUrl: string;
27
- meta?: Record<string, unknown>;
37
+ export declare type GenerateThumbnailTransformerOptions = {
38
+ fileIds: string[];
39
+ pages: FigmaPage[];
28
40
  };
29
41
  /** Figma page Metadata */
30
42
  export declare type FigmaPageData = {
31
43
  name: string;
32
44
  patternId: string;
45
+ projectId: string;
46
+ fileId: string;
33
47
  description: string;
34
48
  embedLink: string;
49
+ nodeId: string;
35
50
  link: string;
36
51
  source: 'FIGMA';
52
+ thumbnailUrl?: string;
37
53
  tags?: string;
38
54
  };
39
55
  /** Figma page */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jpmorganchase/mosaic-source-figma",
3
- "version": "0.1.0-beta.60",
3
+ "version": "0.1.0-beta.62",
4
4
  "author": "",
5
5
  "description": "Mosaic Figma source for core file system",
6
6
  "license": "Apache-2.0",
@@ -31,9 +31,9 @@
31
31
  "url": "git@github.com:jpmorganchase/mosaic.git"
32
32
  },
33
33
  "dependencies": {
34
- "@jpmorganchase/mosaic-source-http": "^0.1.0-beta.60",
35
- "@jpmorganchase/mosaic-schemas": "^0.1.0-beta.60",
36
- "@jpmorganchase/mosaic-types": "^0.1.0-beta.60",
34
+ "@jpmorganchase/mosaic-source-http": "^0.1.0-beta.62",
35
+ "@jpmorganchase/mosaic-schemas": "^0.1.0-beta.62",
36
+ "@jpmorganchase/mosaic-types": "^0.1.0-beta.62",
37
37
  "deepmerge": "^4.2.2",
38
38
  "rxjs": "^7.5.5",
39
39
  "zod": "^3.22.3"