@figma/code-connect 0.1.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.
Files changed (83) hide show
  1. package/README.md +449 -0
  2. package/bin/figma +5 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +41 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/connect.d.ts +3 -0
  8. package/dist/commands/connect.d.ts.map +1 -0
  9. package/dist/commands/connect.js +214 -0
  10. package/dist/commands/connect.js.map +1 -0
  11. package/dist/common/api.d.ts +146 -0
  12. package/dist/common/api.d.ts.map +1 -0
  13. package/dist/common/api.js +3 -0
  14. package/dist/common/api.js.map +1 -0
  15. package/dist/common/compiler.d.ts +96 -0
  16. package/dist/common/compiler.d.ts.map +1 -0
  17. package/dist/common/compiler.js +281 -0
  18. package/dist/common/compiler.js.map +1 -0
  19. package/dist/common/external.d.ts +10 -0
  20. package/dist/common/external.d.ts.map +1 -0
  21. package/dist/common/external.js +53 -0
  22. package/dist/common/external.js.map +1 -0
  23. package/dist/common/figma_connect.d.ts +24 -0
  24. package/dist/common/figma_connect.d.ts.map +1 -0
  25. package/dist/common/figma_connect.js +3 -0
  26. package/dist/common/figma_connect.js.map +1 -0
  27. package/dist/common/intrinsics.d.ts +61 -0
  28. package/dist/common/intrinsics.d.ts.map +1 -0
  29. package/dist/common/intrinsics.js +239 -0
  30. package/dist/common/intrinsics.js.map +1 -0
  31. package/dist/common/logging.d.ts +25 -0
  32. package/dist/common/logging.d.ts.map +1 -0
  33. package/dist/common/logging.js +47 -0
  34. package/dist/common/logging.js.map +1 -0
  35. package/dist/common/parser.d.ts +77 -0
  36. package/dist/common/parser.d.ts.map +1 -0
  37. package/dist/common/parser.js +736 -0
  38. package/dist/common/parser.js.map +1 -0
  39. package/dist/common/parser_template_helpers.d.ts +2 -0
  40. package/dist/common/parser_template_helpers.d.ts.map +1 -0
  41. package/dist/common/parser_template_helpers.js +53 -0
  42. package/dist/common/parser_template_helpers.js.map +1 -0
  43. package/dist/common/project.d.ts +79 -0
  44. package/dist/common/project.d.ts.map +1 -0
  45. package/dist/common/project.js +171 -0
  46. package/dist/common/project.js.map +1 -0
  47. package/dist/connect/create.d.ts +8 -0
  48. package/dist/connect/create.d.ts.map +1 -0
  49. package/dist/connect/create.js +162 -0
  50. package/dist/connect/create.js.map +1 -0
  51. package/dist/connect/delete_docs.d.ts +11 -0
  52. package/dist/connect/delete_docs.d.ts.map +1 -0
  53. package/dist/connect/delete_docs.js +60 -0
  54. package/dist/connect/delete_docs.js.map +1 -0
  55. package/dist/connect/figma_rest_api.d.ts +28 -0
  56. package/dist/connect/figma_rest_api.d.ts.map +1 -0
  57. package/dist/connect/figma_rest_api.js +19 -0
  58. package/dist/connect/figma_rest_api.js.map +1 -0
  59. package/dist/connect/helpers.d.ts +13 -0
  60. package/dist/connect/helpers.d.ts.map +1 -0
  61. package/dist/connect/helpers.js +87 -0
  62. package/dist/connect/helpers.js.map +1 -0
  63. package/dist/connect/upload.d.ts +8 -0
  64. package/dist/connect/upload.d.ts.map +1 -0
  65. package/dist/connect/upload.js +62 -0
  66. package/dist/connect/upload.js.map +1 -0
  67. package/dist/connect/validation.d.ts +3 -0
  68. package/dist/connect/validation.d.ts.map +1 -0
  69. package/dist/connect/validation.js +241 -0
  70. package/dist/connect/validation.js.map +1 -0
  71. package/dist/index.d.ts +7 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +31 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/storybook/convert.d.ts +24 -0
  76. package/dist/storybook/convert.d.ts.map +1 -0
  77. package/dist/storybook/convert.js +280 -0
  78. package/dist/storybook/convert.js.map +1 -0
  79. package/dist/storybook/external.d.ts +32 -0
  80. package/dist/storybook/external.d.ts.map +1 -0
  81. package/dist/storybook/external.js +3 -0
  82. package/dist/storybook/external.js.map +1 -0
  83. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/common/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getParsedTemplateHelpersString(): string;
2
+ //# sourceMappingURL=parser_template_helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser_template_helpers.d.ts","sourceRoot":"","sources":["../../src/common/parser_template_helpers.ts"],"names":[],"mappings":"AAmDA,wBAAgB,8BAA8B,WAE7C"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getParsedTemplateHelpersString = void 0;
4
+ // This file contains helper functions which hare included in the React template
5
+ // example - i.e. they are run on the client side, but are not part of the
6
+ // general template API as they are React specific.
7
+ //
8
+ // We write them in TS rather than as a string for maintainability, then call
9
+ // `.toString()` on the functions and return a string we can inject. Note that
10
+ // comments will be stripped, as this is run through the build step first.
11
+ // Render a React prop correctly, based on its type
12
+ function _fcc_renderReactProp(name, value) {
13
+ // If the value is an array, then it's an array of objects representing React
14
+ // children (either of type INSTANCE for pills, or CODE for inline code). The
15
+ // template string handler in the template API handles extracting the instance
16
+ // objects in a way the UI can handle.
17
+ const isReactComponentArray = Array.isArray(value);
18
+ if (isReactComponentArray && value.length > 1) {
19
+ // If the array has multiple children, render them wrapped in braces and a
20
+ // fragment.
21
+ //
22
+ // We recursively call `figma.tsx` on the value as it itself is an array of
23
+ // CODE/INSTANCE sections, so we need to run it through the template string
24
+ // function otherwise this would just output `[object Object]` for the value.
25
+ // The template string handler function handles flattening nested arrays.
26
+ return figma.tsx ` ${name}={<>${value}</>}`;
27
+ }
28
+ else if (isReactComponentArray ||
29
+ // This is a hack to allow React components to be passed in as enum mapping
30
+ // values - we should switch to using a more robust solution
31
+ (typeof value === 'string' && value.startsWith('<'))) {
32
+ // Render a single child wrapped in braces, see above for why we use `figma.tsx`
33
+ return figma.tsx ` ${name}={${value}}`;
34
+ }
35
+ else if (typeof value === 'string') {
36
+ // Strings are wrapped in quotes
37
+ return ` ${name}="${value}"`;
38
+ }
39
+ else if (typeof value === 'boolean') {
40
+ // Render either the prop name or nothing for a boolean, we don't want to
41
+ // render `prop={true/false}`
42
+ return value ? ` ${name}` : '';
43
+ }
44
+ else if (typeof value === 'undefined') {
45
+ return '';
46
+ }
47
+ }
48
+ // Return the helpers as a string which can be injected into the template
49
+ function getParsedTemplateHelpersString() {
50
+ return _fcc_renderReactProp.toString();
51
+ }
52
+ exports.getParsedTemplateHelpersString = getParsedTemplateHelpersString;
53
+ //# sourceMappingURL=parser_template_helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser_template_helpers.js","sourceRoot":"","sources":["../../src/common/parser_template_helpers.ts"],"names":[],"mappings":";;;AAEA,gFAAgF;AAChF,0EAA0E;AAC1E,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAE1E,mDAAmD;AACnD,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAyD;IAEzD,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,sCAAsC;IACtC,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAElD,IAAI,qBAAqB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,0EAA0E;QAC1E,YAAY;QACZ,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,yEAAyE;QACzE,OAAO,KAAK,CAAC,GAAG,CAAA,IAAI,IAAI,OAAO,KAAK,MAAM,CAAA;IAC5C,CAAC;SAAM,IACL,qBAAqB;QACrB,2EAA2E;QAC3E,4DAA4D;QAC5D,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EACpD,CAAC;QACD,gFAAgF;QAChF,OAAO,KAAK,CAAC,GAAG,CAAA,IAAI,IAAI,KAAK,KAAK,GAAG,CAAA;IACvC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,gCAAgC;QAChC,OAAO,IAAI,IAAI,KAAK,KAAK,GAAG,CAAA;IAC9B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,yEAAyE;QACzE,6BAA6B;QAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAChC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,SAAgB,8BAA8B;IAC5C,OAAO,oBAAoB,CAAC,QAAQ,EAAE,CAAA;AACxC,CAAC;AAFD,wEAEC"}
@@ -0,0 +1,79 @@
1
+ import ts from 'typescript';
2
+ export interface FigmaConnectConfig {
3
+ /**
4
+ * Maps imports from their path on disk to the specified path.
5
+ * This will rewrite the imports in generated code examples, so it works with
6
+ * relative imports such as `import { Button } from "./"`.
7
+ *
8
+ * Example: { "src/components/*": "@ui/components" }
9
+ * Would rewrite imports for components located in `src/components` to `@ui/components` in
10
+ * generated code examples.
11
+ * `import { Button } from "./"` -> `import { Button } from "@ui/components/Button"`
12
+ */
13
+ importPaths?: Record<string, string>;
14
+ /**
15
+ * For import resolution - this is a temporary solution to support projects that use
16
+ * pnpm workspaces, as the compiler doesn't seem to be able to resolve imports when
17
+ * the package in node_modules is a symlink. Need to look into this more and find a
18
+ * better solution.
19
+ */
20
+ paths?: Record<string, string[]>;
21
+ /**
22
+ * Specify glob patterns for files (relative to the project root) to be
23
+ * included when looking for source files. If not specified, all files
24
+ * (except any specified in `exclude`) will be included.
25
+ */
26
+ include?: string[];
27
+ /**
28
+ * Specify glob patterns for files (relative to the project root) to be
29
+ * excluded when looking for source files. If not specified, only
30
+ * `node_modules` will be excluded.
31
+ */
32
+ exclude?: string[];
33
+ /**
34
+ * Optional object of substitutions applied to document URLs (in the format {
35
+ * fromString, toString }) for testing (e.g. remapping a production URL to a
36
+ * staging URL). Not publicly documented.
37
+ */
38
+ documentUrlSubstitutions?: Record<string, string>;
39
+ }
40
+ export declare function getGitRemoteURL(repoPath: string): string;
41
+ /**
42
+ * Finds the URL of a remote file
43
+ * @param filePath absolute file path on disk
44
+ * @param repoURL remote URL
45
+ * @returns
46
+ */
47
+ export declare function getRemoteFileUrl(filePath: string, repoURL?: string): string;
48
+ export interface ProjectInfo {
49
+ /**
50
+ * Absolute path of the project directory
51
+ */
52
+ absPath: string;
53
+ /**
54
+ * An array of all tsx files in the project
55
+ */
56
+ files: string[];
57
+ /**
58
+ * The git remote URL of the project
59
+ */
60
+ remoteUrl: string;
61
+ /**
62
+ * The parsed Code Connect config file
63
+ */
64
+ config?: FigmaConnectConfig;
65
+ /**
66
+ * TS program containing all tsx files in the project
67
+ */
68
+ tsProgram: ts.Program;
69
+ }
70
+ /**
71
+ * Gets information about a project from a directory.
72
+ *
73
+ * @param dir Directory containing the project
74
+ * @param configPath Optional path to Code Connect config file
75
+ * @returns Object containing information about the project
76
+ */
77
+ export declare function getProjectInfo(dir: string, configPath?: string): ProjectInfo;
78
+ export declare function resolveImportPath(filePath: string, config: FigmaConnectConfig): string | null;
79
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/common/project.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,YAAY,CAAA;AAI3B,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClD;AAqBD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,UAW/C;AAkBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,UAqBlE;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B;;OAEG;IACH,SAAS,EAAE,EAAE,CAAC,OAAO,CAAA;CACtB;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAkD5E;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CA2B7F"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolveImportPath = exports.getProjectInfo = exports.getRemoteFileUrl = exports.getGitRemoteURL = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const glob_1 = require("glob");
9
+ const path_1 = __importDefault(require("path"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const typescript_1 = __importDefault(require("typescript"));
12
+ const logging_1 = require("./logging");
13
+ const DEFAULT_CONFIG_FILE_NAME = 'figma.config.json';
14
+ function parseConfig(configFilePath) {
15
+ if (!fs_1.default.existsSync(configFilePath)) {
16
+ return undefined;
17
+ }
18
+ try {
19
+ const rawData = fs_1.default.readFileSync(configFilePath, 'utf-8');
20
+ const config = JSON.parse(rawData);
21
+ return config;
22
+ }
23
+ catch (error) {
24
+ console.error('Error parsing config file:', error);
25
+ return undefined;
26
+ }
27
+ }
28
+ function getGitRemoteURL(repoPath) {
29
+ try {
30
+ const spawn = (0, child_process_1.spawnSync)('git', ['config', '--get', 'remote.origin.url'], {
31
+ cwd: repoPath,
32
+ });
33
+ const output = spawn.stdout;
34
+ return (output || '').toString().trim();
35
+ }
36
+ catch (error) {
37
+ console.error('Error getting git remote URL:', error);
38
+ return '';
39
+ }
40
+ }
41
+ exports.getGitRemoteURL = getGitRemoteURL;
42
+ /**
43
+ * Uses `git rev-parse` to find absolute path to the root of the git repository
44
+ */
45
+ function getGitRepoAbsolutePath(filePath) {
46
+ try {
47
+ const spawn = (0, child_process_1.spawnSync)('git', ['rev-parse', '--show-toplevel'], {
48
+ cwd: path_1.default.dirname(filePath),
49
+ });
50
+ const output = spawn.stdout;
51
+ return (output || '').toString().trim();
52
+ }
53
+ catch (error) {
54
+ console.error('Error running `git rev-parse`:', error);
55
+ return '';
56
+ }
57
+ }
58
+ /**
59
+ * Finds the URL of a remote file
60
+ * @param filePath absolute file path on disk
61
+ * @param repoURL remote URL
62
+ * @returns
63
+ */
64
+ function getRemoteFileUrl(filePath, repoURL) {
65
+ if (!repoURL) {
66
+ return '';
67
+ }
68
+ let url = repoURL.trim();
69
+ url = url.replace(':', '/');
70
+ url = url.replace('git@', 'https://');
71
+ url = url.replace(/\.git$/, '');
72
+ // the folder of the git repo on disk could be named differently,
73
+ // so we need to find the relative path of the file to the root of the repo
74
+ // and append that to the remote URL
75
+ const repoAbsPath = getGitRepoAbsolutePath(filePath);
76
+ const index = filePath.indexOf(repoAbsPath);
77
+ if (index === -1) {
78
+ return '';
79
+ }
80
+ const relativeFilePath = filePath.substring(index + repoAbsPath.length);
81
+ return `${url}/tree/master${relativeFilePath}`;
82
+ }
83
+ exports.getRemoteFileUrl = getRemoteFileUrl;
84
+ function mapToAbsolutePaths(globPaths, absPath) {
85
+ return globPaths.map((globPath) => `${absPath}/${globPath}`);
86
+ }
87
+ /**
88
+ * Gets information about a project from a directory.
89
+ *
90
+ * @param dir Directory containing the project
91
+ * @param configPath Optional path to Code Connect config file
92
+ * @returns Object containing information about the project
93
+ */
94
+ function getProjectInfo(dir, configPath) {
95
+ const configFilePath = configPath
96
+ ? path_1.default.resolve(configPath)
97
+ : path_1.default.resolve(path_1.default.join(dir, DEFAULT_CONFIG_FILE_NAME));
98
+ const globalConfig = configFilePath ? parseConfig(configFilePath) : undefined;
99
+ const config = globalConfig?.codeConnect;
100
+ if (!globalConfig) {
101
+ logging_1.logger.info(`No config file found in ${dir}, proceeding with default options`);
102
+ }
103
+ else if (globalConfig && !config) {
104
+ logging_1.logger.info(`Config file found, but no options specified under 'codeConnect'. Parsing ${dir}`);
105
+ }
106
+ else if (config && !config.include) {
107
+ logging_1.logger.info(`Config file found, but no include globs specified. Parsing ${dir}`);
108
+ }
109
+ else {
110
+ logging_1.logger.info(`Config file found, parsing ${dir} using specified include globs`);
111
+ }
112
+ const absPath = path_1.default.resolve(dir);
113
+ const includeGlobs = config?.include
114
+ ? mapToAbsolutePaths(config.include, absPath)
115
+ : `${absPath}/**/*.{tsx,jsx}`;
116
+ const excludeGlobs = [
117
+ ...(config?.exclude ? mapToAbsolutePaths(config.exclude, absPath) : []),
118
+ `${absPath}/node_modules/**`,
119
+ ];
120
+ const files = (0, glob_1.globSync)(includeGlobs, {
121
+ nodir: true,
122
+ ignore: excludeGlobs,
123
+ });
124
+ const remoteUrl = getGitRemoteURL(absPath);
125
+ const compilerOptions = {
126
+ // This ensures the compiler can resolve imports such as "ui/button" when a
127
+ // baseUrl is configured in the tsconfig of the project. We probably want a more
128
+ // sophisticated way to parse the users tsconfig and pass it to the compiler eventually.
129
+ baseUrl: absPath,
130
+ // TODO: not sure why Node10 is needed her, but otherwise module resolution for
131
+ // pnpm workspaces won't work
132
+ moduleResolution: typescript_1.default.ModuleResolutionKind.Node10,
133
+ paths: config?.paths ?? {},
134
+ allowJs: true,
135
+ };
136
+ const tsProgram = typescript_1.default.createProgram(files, compilerOptions);
137
+ return {
138
+ absPath,
139
+ files,
140
+ remoteUrl,
141
+ config,
142
+ tsProgram,
143
+ };
144
+ }
145
+ exports.getProjectInfo = getProjectInfo;
146
+ function resolveImportPath(filePath, config) {
147
+ function isMatch(patternParts, pathParts) {
148
+ for (let i = 0; i < patternParts.length; i++) {
149
+ if (patternParts[i] !== '*' && patternParts[i] !== pathParts[i]) {
150
+ return false;
151
+ }
152
+ }
153
+ return true;
154
+ }
155
+ for (const [key, value] of Object.entries(config.importPaths || {})) {
156
+ // Do a partial match from the end of the path
157
+ const patternParts = key.split('/').reverse();
158
+ const pathParts = filePath.split('/').reverse();
159
+ if (pathParts.length < patternParts.length) {
160
+ continue;
161
+ }
162
+ // If the mapped path ends with a wildcard we want to keep the filename in
163
+ // the final path (for non-index imports)
164
+ if (isMatch(patternParts, pathParts)) {
165
+ return value.endsWith('*') ? `${value.slice(0, -1)}${pathParts[0].split('.')[0]}` : value;
166
+ }
167
+ }
168
+ return null;
169
+ }
170
+ exports.resolveImportPath = resolveImportPath;
171
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/common/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface GenerateDocsArgs {
2
+ accessToken: string;
3
+ figmaNodeUrl: string;
4
+ outFile: string;
5
+ }
6
+ export declare function createFigmadocFromUrl({ accessToken, figmaNodeUrl, outFile, }: GenerateDocsArgs): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/connect/create.ts"],"names":[],"mappings":"AAQA,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AA2ED,wBAAsB,qBAAqB,CAAC,EAC1C,WAAW,EACX,YAAY,EACZ,OAAO,GACR,EAAE,gBAAgB,iBAkElB"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.createFigmadocFromUrl = void 0;
30
+ const helpers_1 = require("./helpers");
31
+ const axios_1 = __importStar(require("axios"));
32
+ const fs_1 = __importDefault(require("fs"));
33
+ const prettier = __importStar(require("prettier"));
34
+ const figma_rest_api_1 = require("./figma_rest_api");
35
+ const logging_1 = require("../common/logging");
36
+ const lodash_1 = require("lodash");
37
+ function isBooleanKind(propValue) {
38
+ const normalized = propValue.toLowerCase();
39
+ return (normalized === 'true' ||
40
+ normalized === 'false' ||
41
+ normalized === 'yes' ||
42
+ normalized === 'no' ||
43
+ normalized === 'on' ||
44
+ normalized === 'off');
45
+ }
46
+ function normalizePropName(name) {
47
+ return name.replace(/#[0-9:]*/g, '');
48
+ }
49
+ function generateCodePropName(name) {
50
+ return (0, lodash_1.camelCase)(name.replace(/[^a-zA-Z]/g, ''));
51
+ }
52
+ function normalizePropValue(name) {
53
+ // Convert the string to kebab-case
54
+ return name.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();
55
+ }
56
+ function normalizeComponentName(name) {
57
+ // Convert the string to PascalCase and ensure first character is not a digit
58
+ return name
59
+ .replace(/[^a-zA-Z0-9]/g, ' ')
60
+ .split(' ')
61
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
62
+ .join('')
63
+ .replace(/^[0-9]/, '_$&');
64
+ }
65
+ function generateProps(component) {
66
+ const props = [];
67
+ if (!component.componentPropertyDefinitions ||
68
+ Object.keys(component.componentPropertyDefinitions).length === 0) {
69
+ return `{}`;
70
+ }
71
+ for (const [propName, propDef] of Object.entries(component.componentPropertyDefinitions)) {
72
+ const codePropName = generateCodePropName(propName);
73
+ const figmaPropName = normalizePropName(propName);
74
+ if (propDef.type === 'BOOLEAN') {
75
+ props.push(`"${codePropName}": figma.boolean('${figmaPropName}')`);
76
+ }
77
+ if (propDef.type === 'TEXT') {
78
+ props.push(`"${codePropName}": figma.string('${figmaPropName}')`);
79
+ }
80
+ if (propDef.type === 'VARIANT') {
81
+ if (propDef.variantOptions?.find((value) => isBooleanKind(value))) {
82
+ props.push(`"${codePropName}": figma.boolean('${figmaPropName}')`);
83
+ }
84
+ else {
85
+ props.push(`"${codePropName}": figma.enum('${figmaPropName}', { \n${propDef.variantOptions
86
+ ?.map((value) => ` "${value}": "${normalizePropValue(value)}"`)
87
+ .join(',\n')}})`);
88
+ }
89
+ }
90
+ if (propDef.type === 'INSTANCE_SWAP') {
91
+ props.push(`"${codePropName}": figma.instance('${figmaPropName}')`);
92
+ }
93
+ }
94
+ return `{
95
+ ${props.join(',\n ')}
96
+ }`;
97
+ }
98
+ async function createFigmadocFromUrl({ accessToken, figmaNodeUrl, outFile, }) {
99
+ const fileKey = (0, helpers_1.parseFileKey)(figmaNodeUrl);
100
+ const nodeIds = (0, helpers_1.parseNodeIds)([figmaNodeUrl]);
101
+ const apiUrl = (0, figma_rest_api_1.getApiUrl)(figmaNodeUrl ?? '') + `/files/${fileKey}?ids=${nodeIds.join(',')}`;
102
+ try {
103
+ logging_1.logger.info('Fetching component information from Figma...');
104
+ const response = await axios_1.default.get(apiUrl, {
105
+ headers: {
106
+ 'X-Figma-Token': accessToken,
107
+ 'Content-Type': 'application/json',
108
+ },
109
+ });
110
+ if (response.status === 200) {
111
+ logging_1.logger.info('Parsing response');
112
+ const component = (0, helpers_1.findComponentsInDocument)(response.data.document, nodeIds)[0];
113
+ const componentName = normalizeComponentName(component.name);
114
+ logging_1.logger.info('Generating Code Connect file...');
115
+ const figmadoc = `
116
+ import { ${componentName} } from './${componentName}'
117
+ import figma from '@figma/code-connect'
118
+
119
+ /**
120
+ * -- This file was auto-generated by \`figma connect create\` --
121
+ * \`props\` includes a mapping from Figma properties and variants to
122
+ * suggested values. You should update this to match the props of your
123
+ * code component, and update the \`example\` function to return the
124
+ * code example you'd like to see in Figma
125
+ */
126
+
127
+ figma.connect(${componentName}, "${figmaNodeUrl}", {
128
+ props: ${generateProps(component)},
129
+ example: (props) => <${componentName} />
130
+ })
131
+ `;
132
+ let formatted = await prettier.format(figmadoc, {
133
+ parser: 'typescript',
134
+ semi: false,
135
+ });
136
+ const fileName = outFile ?? `${process.env.INIT_CWD ?? process.cwd()}/${componentName}.figma.tsx`;
137
+ fs_1.default.writeFileSync(fileName, formatted);
138
+ logging_1.logger.info(`Created ${fileName}`);
139
+ }
140
+ else {
141
+ logging_1.logger.error(`Failed to get node information from Figma with status: ${response.status}`);
142
+ logging_1.logger.debug('Failed to get node information from Figma with Body:', response.data);
143
+ }
144
+ }
145
+ catch (err) {
146
+ if ((0, axios_1.isAxiosError)(err)) {
147
+ if (err.response) {
148
+ logging_1.logger.error(`Failed to get node data from Figma (${err.code}): ${err.response?.status} ${err.response?.data?.err ?? err.response?.data?.message}`);
149
+ }
150
+ else {
151
+ logging_1.logger.error(`Failed to get node data from Figma: ${err.message}`);
152
+ }
153
+ logging_1.logger.debug(JSON.stringify(err.response?.data));
154
+ }
155
+ else {
156
+ logging_1.logger.error(`Failed to create: ${err}`);
157
+ }
158
+ process.exit(1);
159
+ }
160
+ }
161
+ exports.createFigmadocFromUrl = createFigmadocFromUrl;
162
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/connect/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ interface NodesToDeleteInfo {
2
+ figmaNode: string;
3
+ label: string;
4
+ }
5
+ interface Args {
6
+ accessToken: string;
7
+ docs: NodesToDeleteInfo[];
8
+ }
9
+ export declare function delete_docs({ accessToken, docs }: Args): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=delete_docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete_docs.d.ts","sourceRoot":"","sources":["../../src/connect/delete_docs.ts"],"names":[],"mappings":"AAKA,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,iBAAiB,EAAE,CAAA;CAC1B;AAED,wBAAsB,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,iBAgC5D"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.delete_docs = void 0;
27
+ const logging_1 = require("../common/logging");
28
+ const axios_1 = __importStar(require("axios"));
29
+ const figma_rest_api_1 = require("./figma_rest_api");
30
+ async function delete_docs({ accessToken, docs }) {
31
+ const apiUrl = (0, figma_rest_api_1.getApiUrl)(docs?.[0]?.figmaNode ?? '') + '/code_connect';
32
+ try {
33
+ logging_1.logger.info(`Unpublishing Code Connect files from Figma...`);
34
+ const response = await axios_1.default.delete(apiUrl, {
35
+ headers: {
36
+ 'X-Figma-Token': accessToken,
37
+ 'Content-Type': 'application/json',
38
+ },
39
+ data: { nodes_to_delete: docs },
40
+ });
41
+ logging_1.logger.info(`Successfully deleted:\n${docs.map((doc) => `-> ${doc.figmaNode} (${doc.label})`).join('\n')}`);
42
+ }
43
+ catch (err) {
44
+ if ((0, axios_1.isAxiosError)(err)) {
45
+ if (err.response) {
46
+ logging_1.logger.error(`Failed to upload to Figma (${err.code}): ${err.response?.status} ${err.response?.data?.err ?? err.response?.data?.message}`);
47
+ }
48
+ else {
49
+ logging_1.logger.error(`Failed to upload to Figma: ${err.message}`);
50
+ }
51
+ logging_1.logger.debug(JSON.stringify(err.response?.data));
52
+ }
53
+ else {
54
+ logging_1.logger.error(`Failed to delete docs: ${err}`);
55
+ }
56
+ process.exit(1);
57
+ }
58
+ }
59
+ exports.delete_docs = delete_docs;
60
+ //# sourceMappingURL=delete_docs.js.map