Skip to content

Commit 1ad2d17

Browse files
committed
Split the bridges in their own objects
1 parent 2968a64 commit 1ad2d17

File tree

8 files changed

+47
-19
lines changed

8 files changed

+47
-19
lines changed

src/jsonUtils/nodeImpl/createStringMeasurer.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/jsonUtils/nodeImpl/findFontName.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { PlatformBridge } from '../types';
2+
import weakRequire from '../utils/weakRequire';
3+
4+
const { createStringMeasurer, findFontName } = weakRequire(module, 'node-sketch-bridge');
5+
const fetch = weakRequire(module, 'node-fetch');
6+
const { readFile: nodeReadFile } = weakRequire(module, 'fs');
7+
8+
const NodeMacOSBridge: PlatformBridge = {
9+
createStringMeasurer,
10+
findFontName,
11+
fetch,
12+
async readFile(path: string): Promise<Buffer> {
13+
return new Promise((resolve, reject) => {
14+
nodeReadFile(path, (err, data) => (err ? reject(err) : resolve(data)));
15+
});
16+
},
17+
};
18+
19+
export default NodeMacOSBridge;

src/jsonUtils/sketchImpl/createStringMeasurer.ts renamed to src/platformBridges/SketchBridge/createStringMeasurer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import {
44
TEXT_DECORATION_LINETHROUGH,
55
TEXT_ALIGN,
66
TEXT_TRANSFORM,
7-
} from '../textLayers';
7+
} from '../../jsonUtils/textLayers';
88
import { findFont } from './findFontName';
9-
import { makeColorFromCSS } from '../models';
9+
import { makeColorFromCSS } from '../../jsonUtils/models';
1010

1111
// TODO(lmr): do something more sensible here
1212
const FLOAT_MAX = 999999;

src/jsonUtils/sketchImpl/findFontName.ts renamed to src/platformBridges/SketchBridge/findFontName.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import hashStyle from '../../utils/hashStyle';
44
import { TextStyle } from '../../types';
5-
import { FONT_STYLES } from '../textLayers';
5+
import { FONT_STYLES } from '../../jsonUtils/textLayers';
66

77
// this borrows heavily from react-native's RCTFont class
88
// thanks y'all
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { PlatformBridge } from '../../types';
2+
import createStringMeasurer from './createStringMeasurer';
3+
import findFontName from './findFontName';
4+
import readFile from './readFile';
5+
6+
const SketchBridge: PlatformBridge = {
7+
createStringMeasurer,
8+
findFontName,
9+
fetch,
10+
readFile,
11+
};
12+
13+
export default SketchBridge;
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { readFileSync } from '@skpm/fs';
2+
3+
export default async function readFile(path: string): Promise<Buffer> {
4+
return Promise.resolve(readFileSync(path));
5+
}

src/types/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,10 @@ export type ResizeConstraints = {
215215
fixedHeight?: boolean;
216216
fixedWidth?: boolean;
217217
};
218+
219+
export type PlatformBridge = {
220+
createStringMeasurer(textNodes: TextNode[], maxWidth: number): Size;
221+
findFontName(style: TextStyle): string;
222+
fetch(input: RequestInfo, init?: RequestInit): Promise<Response>;
223+
readFile(path: string): Promise<Buffer>;
224+
};

0 commit comments

Comments
 (0)