@hellkite/pipkin 0.5.1 → 0.5.2

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 (48) hide show
  1. package/build/src/lib/template.d.ts +10 -8
  2. package/build/src/lib/template.js +51 -18
  3. package/build/src/lib/template.js.map +1 -1
  4. package/build/src/lib/types/containers.d.ts +11 -22
  5. package/build/src/lib/types/containers.js +3 -1
  6. package/build/src/lib/types/containers.js.map +1 -1
  7. package/build/src/lib/types/image.d.ts +5 -12
  8. package/build/src/lib/types/image.js +2 -0
  9. package/build/src/lib/types/image.js.map +1 -1
  10. package/build/src/lib/types/index.d.ts +1 -0
  11. package/build/src/lib/types/index.js +1 -0
  12. package/build/src/lib/types/index.js.map +1 -1
  13. package/build/src/lib/types/layer.d.ts +15 -0
  14. package/build/src/lib/types/layer.js +3 -0
  15. package/build/src/lib/types/layer.js.map +1 -0
  16. package/build/src/lib/types/text.d.ts +23 -27
  17. package/build/src/lib/types/text.js +13 -4
  18. package/build/src/lib/types/text.js.map +1 -1
  19. package/build/src/lib/utils/buildFontString.d.ts +2 -2
  20. package/build/src/lib/utils/buildFontString.js.map +1 -1
  21. package/build/src/lib/utils/container.d.ts +4 -3
  22. package/build/src/lib/utils/container.js +41 -4
  23. package/build/src/lib/utils/container.js.map +1 -1
  24. package/build/src/lib/utils/drawBoundingBox.js.map +1 -1
  25. package/build/src/lib/utils/htmlToImage.js +1 -1
  26. package/build/src/lib/utils/htmlToImage.js.map +1 -1
  27. package/build/src/lib/utils/placeImage.d.ts +4 -3
  28. package/build/src/lib/utils/placeImage.js +22 -28
  29. package/build/src/lib/utils/placeImage.js.map +1 -1
  30. package/build/src/lib/utils/renderText.d.ts +2 -1
  31. package/build/src/lib/utils/renderText.js +8 -10
  32. package/build/src/lib/utils/renderText.js.map +1 -1
  33. package/build/src/test.js +14 -5
  34. package/build/src/test.js.map +1 -1
  35. package/package.json +4 -1
  36. package/roadmap.md +0 -1
  37. package/src/lib/template.ts +127 -29
  38. package/src/lib/types/containers.ts +52 -46
  39. package/src/lib/types/image.ts +21 -29
  40. package/src/lib/types/index.ts +1 -0
  41. package/src/lib/types/layer.ts +18 -0
  42. package/src/lib/types/text.ts +44 -49
  43. package/src/lib/utils/buildFontString.ts +2 -2
  44. package/src/lib/utils/container.ts +102 -9
  45. package/src/lib/utils/drawBoundingBox.ts +12 -9
  46. package/src/lib/utils/htmlToImage.ts +1 -1
  47. package/src/lib/utils/placeImage.ts +8 -10
  48. package/src/lib/utils/renderText.ts +13 -20
@@ -1,5 +1,5 @@
1
1
  import * as fs from 'fs';
2
- import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef } from './types';
2
+ import { DirectionContainerOptions, ImageLayerOptions, ImageRef, ImageType, PackingFn, BoundingBox, RenderOptions, TextLayerOptions, TextRef, GridContainerOptions, ContainerOptions } from './types';
3
3
  type RequiredTemplateOptions = {
4
4
  height: number;
5
5
  width: number;
@@ -13,7 +13,7 @@ export type TemplateOptions = RequiredTemplateOptions & OptionalTemplateOptions;
13
13
  export type LayerFnContext = {
14
14
  debugMode: boolean;
15
15
  };
16
- export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<ImageType>;
16
+ export type LayerFn<EntryType> = (entry: EntryType, context: LayerFnContext) => Promise<ImageType | undefined>;
17
17
  export type TemplateLayerFn<EntryType extends Record<string, string>> = (template: Template<EntryType>) => Template<EntryType>;
18
18
  export declare class Template<EntryType extends Record<string, string>> {
19
19
  private readonly layers;
@@ -28,12 +28,13 @@ export declare class Template<EntryType extends Record<string, string>> {
28
28
  private get backgroundSize();
29
29
  layer(fn: LayerFn<EntryType>): this;
30
30
  template: (fn: TemplateLayerFn<EntryType>) => this;
31
- container: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, packingFn: PackingFn) => this;
32
- hbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions) => this;
33
- vbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions) => this;
34
- image: (ref: ImageRef<EntryType>, box: BoundingBox, options: ImageLayerOptions) => this;
31
+ container: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, packingFn: PackingFn, options?: ContainerOptions<EntryType>) => this;
32
+ hbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
33
+ vbox: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: DirectionContainerOptions<EntryType>) => this;
34
+ grid: (imagesFn: (entry: EntryType) => Promise<Array<ImageType>>, box: BoundingBox, options?: GridContainerOptions<EntryType>) => this;
35
+ image: (ref: ImageRef<EntryType>, box: BoundingBox, options: ImageLayerOptions<EntryType>) => this;
35
36
  loadImage: (imagePath: string | Buffer) => Promise<ImageType>;
36
- text: (ref: TextRef<EntryType>, box: BoundingBox, options?: TextLayerOptions) => this;
37
+ text: (ref: TextRef<EntryType>, box: BoundingBox, options?: TextLayerOptions<EntryType>) => this;
37
38
  font(path: fs.PathLike, name: string): this;
38
39
  debug(): this;
39
40
  private renderLayers;
@@ -41,6 +42,7 @@ export declare class Template<EntryType extends Record<string, string>> {
41
42
  renderAll(entries: Array<EntryType>, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
42
43
  fromCsv(path: string, options?: RenderOptions<EntryType>): Promise<Array<ImageType>>;
43
44
  private pathFromImageRef;
44
- private textFromImageRef;
45
+ private textFromTextRef;
46
+ private shouldSkipLayerForEntry;
45
47
  }
46
48
  export {};
@@ -54,6 +54,8 @@ const lodash_concat_1 = __importDefault(require("lodash.concat"));
54
54
  const canvas_1 = require("canvas");
55
55
  const path_1 = __importDefault(require("path"));
56
56
  const utils_1 = require("./utils");
57
+ const types_1 = require("./types");
58
+ const lodash_merge_1 = __importDefault(require("lodash.merge"));
57
59
  const DEFAULT_TEMPLATE_OPTIONS = {
58
60
  height: 1050,
59
61
  width: 750,
@@ -68,20 +70,34 @@ class Template {
68
70
  const template = fn(this.shadowTemplate());
69
71
  return template.render(entry);
70
72
  });
71
- // TODO: logic for rendering debug helpers
72
- this.container = (imagesFn, packingFn) => this.layer((entry) => __awaiter(this, void 0, void 0, function* () {
73
+ this.container = (imagesFn, box, packingFn, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
74
+ const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_CONTAINER_OPTIONS, options);
75
+ if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
76
+ return undefined;
77
+ }
73
78
  const images = yield imagesFn(entry);
74
- return packingFn(this.shadowBackground(), images);
79
+ const result = yield packingFn(box, this.shadowBackground(), images);
80
+ // debug mode
81
+ if (debugMode) {
82
+ const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
83
+ return debugImage.composite(result);
84
+ }
85
+ return result;
75
86
  }));
76
- this.hbox = (imagesFn, box, options) => this.container(imagesFn, (0, utils_1.hboxPackingFn)(box, options));
77
- this.vbox = (imagesFn, box, options) => this.container(imagesFn, (0, utils_1.vboxPackingFn)(box, options));
87
+ this.hbox = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.hboxPackingFn)(options), options);
88
+ this.vbox = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.vboxPackingFn)(options), options);
89
+ this.grid = (imagesFn, box, options) => this.container(imagesFn, box, (0, utils_1.gridPackingFn)(options), options);
78
90
  this.image = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
79
- const image = yield this.pathFromImageRef(entry, ref, options);
91
+ const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_IMAGE_LAYER_OPTIONS, { assetsPath: this.defaultAssetsPath }, options);
92
+ if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
93
+ return undefined;
94
+ }
95
+ const image = yield this.pathFromImageRef(entry, ref, mergedOptions);
80
96
  const result = yield (0, utils_1.placeImage)({
81
97
  image,
82
98
  box,
83
99
  backgroundSize: this.backgroundSize,
84
- options,
100
+ options: mergedOptions,
85
101
  });
86
102
  // debug mode
87
103
  if (debugMode) {
@@ -95,17 +111,27 @@ class Template {
95
111
  return image;
96
112
  });
97
113
  this.text = (ref, box, options) => this.layer((entry_1, _a) => __awaiter(this, [entry_1, _a], void 0, function* (entry, { debugMode }) {
98
- var _b, _c, _d;
99
- const text = this.textFromImageRef(entry, ref);
100
- const fontFamily = (_d = (_c = (_b = options === null || options === void 0 ? void 0 : options.font) === null || _b === void 0 ? void 0 : _b.family) !== null && _c !== void 0 ? _c : this.defaultFontFamily) !== null && _d !== void 0 ? _d : 'Arial';
101
- return (0, utils_1.renderText)(text, box, this.backgroundSize, Object.assign(Object.assign({}, options), { font: Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.font), { family: fontFamily }) }));
114
+ const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_TEXT_LAYER_OPTIONS, {
115
+ font: {
116
+ family: this.defaultFontFamily,
117
+ },
118
+ }, options);
119
+ if (this.shouldSkipLayerForEntry(entry, mergedOptions)) {
120
+ return undefined;
121
+ }
122
+ const text = this.textFromTextRef(entry, ref);
123
+ const result = yield (0, utils_1.renderText)(text, box, this.backgroundSize, mergedOptions);
124
+ // debug mode
125
+ if (debugMode) {
126
+ const debugImage = yield (0, utils_1.drawBoundingBox)(box, this.backgroundSize);
127
+ return debugImage.composite(result);
128
+ }
129
+ return result;
102
130
  }));
103
131
  this.pathFromImageRef = (entry, ref, options) => __awaiter(this, void 0, void 0, function* () {
104
- var _a;
105
- const assetsPath = (_a = options === null || options === void 0 ? void 0 : options.assetsPath) !== null && _a !== void 0 ? _a : this.defaultAssetsPath;
106
132
  const pathSegments = [];
107
- if (assetsPath) {
108
- pathSegments.push(assetsPath);
133
+ if (options.assetsPath) {
134
+ pathSegments.push(options.assetsPath);
109
135
  }
110
136
  if ('buffer' in ref) {
111
137
  return this.loadImage(ref.buffer);
@@ -128,7 +154,7 @@ class Template {
128
154
  throw new Error('Unknown ImageRef variant');
129
155
  }
130
156
  });
131
- this.textFromImageRef = (entry, ref) => {
157
+ this.textFromTextRef = (entry, ref) => {
132
158
  if ('key' in ref) {
133
159
  return entry[ref.key];
134
160
  }
@@ -142,6 +168,13 @@ class Template {
142
168
  throw new Error('Unknown TextRef variant');
143
169
  }
144
170
  };
171
+ this.shouldSkipLayerForEntry = (entry, options) => {
172
+ var _a;
173
+ if (typeof options.skip === 'function') {
174
+ return options.skip(entry);
175
+ }
176
+ return (_a = options.skip) !== null && _a !== void 0 ? _a : false;
177
+ };
145
178
  this.background = new jimp_1.Jimp({
146
179
  height: options.height,
147
180
  width: options.width,
@@ -187,9 +220,10 @@ class Template {
187
220
  }
188
221
  renderLayers(entry) {
189
222
  return __awaiter(this, void 0, void 0, function* () {
190
- return Promise.all(this.layers.map(layerFn => layerFn(entry, {
223
+ const results = yield Promise.all(this.layers.map(layerFn => layerFn(entry, {
191
224
  debugMode: this.debugMode,
192
225
  })));
226
+ return results.filter(result => !!result);
193
227
  });
194
228
  }
195
229
  render(entry, options) {
@@ -239,5 +273,4 @@ class Template {
239
273
  }
240
274
  }
241
275
  exports.Template = Template;
242
- // TODO: Ledger of actions applied to the image like a logging feed
243
276
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/lib/template.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,9 @@
1
- import { AlignItems, JustifyContent } from './css';
1
+ import { RequiredDeep } from 'type-fest';
2
+ import { BoundingBox } from './boundingBox';
2
3
  import { ImageType } from './image';
3
4
  import { ScaleMode } from './scale';
4
- export type ContainerOptions = {
5
- /**
6
- * Setting a non-default value for justify will cause the alignment to be ignored.
7
- *
8
- * Defaults to `normal`
9
- */
10
- justifyContent?: JustifyContent;
5
+ import { LayerOptions } from './layer';
6
+ export type ContainerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
11
7
  /**
12
8
  * This is treated as a minimum length of an unit of space
13
9
  * between two items, but it can grow larger than it
@@ -15,26 +11,18 @@ export type ContainerOptions = {
15
11
  * Defaults to 0
16
12
  */
17
13
  gap?: number;
18
- /**
19
- * Defines how the items should be placed
20
- * across the secondary direction of the container
21
- *
22
- * Defaults to `center`
23
- */
24
- alignItems?: AlignItems;
25
14
  /**
26
15
  * Defaults to `none`
27
16
  */
28
17
  scale?: ScaleMode;
29
18
  };
30
- export declare const DEFAULT_CONTAINER_OPTIONS: Required<ContainerOptions>;
31
- export type DirectionContainerOptions = ContainerOptions & {
19
+ export declare const DEFAULT_CONTAINER_OPTIONS: RequiredDeep<ContainerOptions<Record<string, string>>>;
20
+ export type DirectionContainerOptions<EntryType extends Record<string, string>> = ContainerOptions<EntryType> & {
32
21
  reversed?: boolean;
33
22
  };
34
- export declare const DEFAULT_DIRECTION_CONTAINER_OPTIONS: Required<DirectionContainerOptions>;
35
- export type GridContainerOptions = ContainerOptions & {
36
- rows?: number;
37
- cols?: number;
23
+ export declare const DEFAULT_DIRECTION_CONTAINER_OPTIONS: RequiredDeep<DirectionContainerOptions<Record<string, string>>>;
24
+ export type GridContainerOptions<EntryType extends Record<string, string>> = ContainerOptions<EntryType> & {
25
+ size?: number;
38
26
  /**
39
27
  * Defines what is considered the main direction of the container.
40
28
  * -> `rows` - the items would be placed to fill each row before starting the next
@@ -44,4 +32,5 @@ export type GridContainerOptions = ContainerOptions & {
44
32
  */
45
33
  direction?: 'rows' | 'cols';
46
34
  };
47
- export type PackingFn = (background: ImageType, images: Array<ImageType>) => Promise<ImageType>;
35
+ export declare const DEFAULT_GRID_CONTAINER_OPTIONS: RequiredDeep<GridContainerOptions<Record<string, string>>>;
36
+ export type PackingFn = (box: BoundingBox, background: ImageType, images: Array<ImageType>) => Promise<ImageType>;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = exports.DEFAULT_CONTAINER_OPTIONS = void 0;
3
+ exports.DEFAULT_GRID_CONTAINER_OPTIONS = exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = exports.DEFAULT_CONTAINER_OPTIONS = void 0;
4
4
  exports.DEFAULT_CONTAINER_OPTIONS = {
5
5
  gap: 0,
6
6
  justifyContent: 'normal',
7
7
  alignItems: 'center',
8
8
  scale: 'none',
9
+ skip: false,
9
10
  };
10
11
  exports.DEFAULT_DIRECTION_CONTAINER_OPTIONS = Object.assign(Object.assign({}, exports.DEFAULT_CONTAINER_OPTIONS), { reversed: false });
12
+ exports.DEFAULT_GRID_CONTAINER_OPTIONS = Object.assign(Object.assign({}, exports.DEFAULT_CONTAINER_OPTIONS), { size: 3, direction: 'rows' });
11
13
  //# sourceMappingURL=containers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAkCa,QAAA,yBAAyB,GAA+B;IACjE,GAAG,EAAE,CAAC;IACN,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;CAChB,CAAC;AAMW,QAAA,mCAAmC,mCACzC,iCAAyB,KAC5B,QAAQ,EAAE,KAAK,IAClB"}
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/lib/types/containers.ts"],"names":[],"mappings":";;;AAsBa,QAAA,yBAAyB,GAElC;IACA,GAAG,EAAE,CAAC;IACN,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;CACd,CAAC;AAQW,QAAA,mCAAmC,mCAGzC,iCAAyB,KAC5B,QAAQ,EAAE,KAAK,IACjB;AAgBW,QAAA,8BAA8B,mCAGpC,iCAAyB,KAC5B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,MAAM,IACnB"}
@@ -1,8 +1,9 @@
1
1
  import { JimpInstance } from 'jimp';
2
2
  import { ScaleMode } from './scale';
3
- import { AlignItems, JustifyContent } from './css';
3
+ import { LayerOptions } from './layer';
4
+ import { RequiredDeep } from 'type-fest';
4
5
  export type ImageType = JimpInstance;
5
- export type ImageRef<EntryType> = {
6
+ export type ImageRef<EntryType extends Record<string, string>> = {
6
7
  buffer: Buffer;
7
8
  } | {
8
9
  path: string;
@@ -13,24 +14,16 @@ export type ImageRef<EntryType> = {
13
14
  } | {
14
15
  pathFn: (entry: EntryType) => string;
15
16
  };
16
- export type ImageLayerOptions = {
17
+ export type ImageLayerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
17
18
  /**
18
19
  * Base path for the assets. Overrides the more global property of the template `defaultAssetsPath`.
19
20
  */
20
21
  assetsPath?: string;
21
- /**
22
- * default `center`
23
- */
24
- justifyContent?: JustifyContent;
25
- /**
26
- * default `center`
27
- */
28
- alignItems?: AlignItems;
29
22
  /**
30
23
  * Defaults to `none`
31
24
  */
32
25
  scale?: ScaleMode;
33
26
  };
34
- export declare const DEFAULT_IMAGE_LAYER_OPTIONS: Required<Omit<ImageLayerOptions, 'assetsPath'>> & Pick<ImageLayerOptions, 'assetsPath'>;
27
+ export declare const DEFAULT_IMAGE_LAYER_OPTIONS: RequiredDeep<ImageLayerOptions<Record<string, string>>>;
35
28
  export type Alignment = 'start' | 'center' | 'end';
36
29
  export declare const DEFAULT_IMAGE_ALIGNMENT: Alignment;
@@ -5,6 +5,8 @@ exports.DEFAULT_IMAGE_LAYER_OPTIONS = {
5
5
  justifyContent: 'center',
6
6
  alignItems: 'center',
7
7
  scale: 'none',
8
+ skip: false,
9
+ assetsPath: ''
8
10
  };
9
11
  exports.DEFAULT_IMAGE_ALIGNMENT = 'center';
10
12
  //# sourceMappingURL=image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;AAqCa,QAAA,2BAA2B,GAGI;IACxC,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;CAChB,CAAC;AAIW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/lib/types/image.ts"],"names":[],"mappings":";;;AA8Ba,QAAA,2BAA2B,GAA4D;IAChG,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,EAAE;CACjB,CAAC;AAIW,QAAA,uBAAuB,GAAc,QAAQ,CAAC"}
@@ -7,3 +7,4 @@ export * from './scale';
7
7
  export * from './text';
8
8
  export * from './boundingBox';
9
9
  export * from './css';
10
+ export * from './layer';
@@ -23,4 +23,5 @@ __exportStar(require("./scale"), exports);
23
23
  __exportStar(require("./text"), exports);
24
24
  __exportStar(require("./boundingBox"), exports);
25
25
  __exportStar(require("./css"), exports);
26
+ __exportStar(require("./layer"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,gDAA8B;AAC9B,wCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,gDAA8B;AAC9B,wCAAsB;AACtB,0CAAwB"}
@@ -0,0 +1,15 @@
1
+ import { JustifyContent, AlignItems } from "./css";
2
+ export type LayerOptions<EntryType extends Record<string, string>> = {
3
+ /**
4
+ * default `center`
5
+ */
6
+ justifyContent?: JustifyContent;
7
+ /**
8
+ * default `center`
9
+ */
10
+ alignItems?: AlignItems;
11
+ /**
12
+ * Decides if a layer should be rendered or not for a certain entry
13
+ */
14
+ skip?: boolean | ((entry: EntryType) => boolean);
15
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../../../../src/lib/types/layer.ts"],"names":[],"mappings":""}
@@ -1,3 +1,5 @@
1
+ import type { RequiredDeep } from 'type-fest';
2
+ import { LayerOptions } from './layer';
1
3
  import { ReplacementMap } from './replacement';
2
4
  export type TextRef<EntryType> = {
3
5
  key: string;
@@ -6,35 +8,29 @@ export type TextRef<EntryType> = {
6
8
  } | {
7
9
  textFn: (entry: EntryType) => string;
8
10
  };
9
- export type TextLayerOptions = {
10
- font?: {
11
- /**
12
- * Size of font is represented in pixels
13
- */
14
- size?: number;
15
- /**
16
- * Either use one supported by canvas
17
- * or load a custom one before rendering
18
- */
19
- family?: string;
20
- /**
21
- * Warning: Not supported by all fonts
22
- */
23
- bold?: boolean;
24
- /**
25
- * Warning: Not supported by all fonts
26
- */
27
- italic?: boolean;
28
- };
29
- color?: string;
30
- replacement?: ReplacementMap;
11
+ export type FontOptions = {
31
12
  /**
32
- * default `center`
13
+ * Size of font is represented in pixels
33
14
  */
34
- xAlign?: 'left' | 'center' | 'right' | 'justify' | 'justify-left' | 'justify-center' | 'justify-right';
15
+ size?: number;
35
16
  /**
36
- * default `center`
17
+ * Either use one supported by canvas
18
+ * or load a custom one before rendering
37
19
  */
38
- yAlign?: 'left' | 'center' | 'right' | 'justify' | 'justify-left' | 'justify-center' | 'justify-right';
20
+ family?: string;
21
+ /**
22
+ * Warning: Not supported by all fonts
23
+ */
24
+ bold?: boolean;
25
+ /**
26
+ * Warning: Not supported by all fonts
27
+ */
28
+ italic?: boolean;
29
+ };
30
+ export type TextLayerOptions<EntryType extends Record<string, string>> = LayerOptions<EntryType> & {
31
+ font?: FontOptions;
32
+ color?: string;
33
+ replacement?: ReplacementMap;
39
34
  };
40
- export declare const DEFAULT_TEXT_LAYER_OPTIONS: TextLayerOptions;
35
+ export declare const DEFAULT_FONT: Required<FontOptions>;
36
+ export declare const DEFAULT_TEXT_LAYER_OPTIONS: RequiredDeep<TextLayerOptions<Record<string, string>>>;
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_TEXT_LAYER_OPTIONS = void 0;
4
- // TODO: all required
3
+ exports.DEFAULT_TEXT_LAYER_OPTIONS = exports.DEFAULT_FONT = void 0;
4
+ exports.DEFAULT_FONT = {
5
+ size: 28,
6
+ family: 'Arial',
7
+ bold: false,
8
+ italic: false,
9
+ };
5
10
  exports.DEFAULT_TEXT_LAYER_OPTIONS = {
6
- xAlign: 'center',
7
- yAlign: 'center',
11
+ justifyContent: 'center',
12
+ alignItems: 'center',
13
+ font: exports.DEFAULT_FONT,
14
+ color: 'black',
15
+ replacement: {},
16
+ skip: false,
8
17
  };
9
18
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AA0DA,qBAAqB;AACR,QAAA,0BAA0B,GAAqB;IACxD,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACnB,CAAC"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/lib/types/text.ts"],"names":[],"mappings":";;;AAuCa,QAAA,YAAY,GAErB;IACA,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;CAChB,CAAC;AAEW,QAAA,0BAA0B,GAEnC;IACA,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,oBAAY;IAClB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,KAAK;CACd,CAAC"}
@@ -1,2 +1,2 @@
1
- import { TextLayerOptions } from "../types";
2
- export declare const buildFontString: (font: TextLayerOptions["font"], defaultFontFamily?: string) => string;
1
+ import { FontOptions } from "../types";
2
+ export declare const buildFontString: (font: FontOptions, defaultFontFamily?: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"buildFontString.js","sourceRoot":"","sources":["../../../../src/lib/utils/buildFontString.ts"],"names":[],"mappings":";;;AAEO,MAAM,eAAe,GAAG,CAC3B,IAA8B,EAC9B,iBAA0B,EACpB,EAAE;;IACR,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;QACb,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,CAAC;QACf,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,EAAE,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,iBAAiB,mCAAI,OAAO,GAAG,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B"}
1
+ {"version":3,"file":"buildFontString.js","sourceRoot":"","sources":["../../../../src/lib/utils/buildFontString.ts"],"names":[],"mappings":";;;AAEO,MAAM,eAAe,GAAG,CAC3B,IAAiB,EACjB,iBAA0B,EACpB,EAAE;;IACR,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAC;QACb,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,CAAC;QACf,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,EAAE,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,iBAAiB,mCAAI,OAAO,GAAG,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B"}
@@ -1,3 +1,4 @@
1
- import { DirectionContainerOptions, PackingFn, BoundingBox } from '../types';
2
- export declare const vboxPackingFn: (box: BoundingBox, options?: DirectionContainerOptions) => PackingFn;
3
- export declare const hboxPackingFn: (box: BoundingBox, options?: DirectionContainerOptions) => PackingFn;
1
+ import { DirectionContainerOptions, PackingFn, GridContainerOptions } from '../types';
2
+ export declare const vboxPackingFn: <EntryType extends Record<string, string>>(options?: DirectionContainerOptions<EntryType>) => PackingFn;
3
+ export declare const hboxPackingFn: <EntryType extends Record<string, string>>(options?: DirectionContainerOptions<EntryType>) => PackingFn;
4
+ export declare const gridPackingFn: <EntryType extends Record<string, string>>(options?: GridContainerOptions<EntryType>) => PackingFn;
@@ -12,13 +12,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.hboxPackingFn = exports.vboxPackingFn = void 0;
15
+ exports.gridPackingFn = exports.hboxPackingFn = exports.vboxPackingFn = void 0;
16
16
  const virtual_dom_1 = require("virtual-dom");
17
17
  const types_1 = require("../types");
18
18
  const toPx_1 = require("./toPx");
19
19
  const lodash_merge_1 = __importDefault(require("lodash.merge"));
20
20
  const htmlToImage_1 = require("./htmlToImage");
21
- const vboxPackingFn = (box, options) => (background, images) => directionalPackingFn({
21
+ const lodash_chunk_1 = __importDefault(require("lodash.chunk"));
22
+ const vboxPackingFn = (options) => (box, background, images) => directionalPackingFn({
22
23
  isVertical: true,
23
24
  backgroundSize: background,
24
25
  images,
@@ -26,7 +27,7 @@ const vboxPackingFn = (box, options) => (background, images) => directionalPacki
26
27
  options,
27
28
  });
28
29
  exports.vboxPackingFn = vboxPackingFn;
29
- const hboxPackingFn = (box, options) => (background, images) => directionalPackingFn({
30
+ const hboxPackingFn = (options) => (box, background, images) => directionalPackingFn({
30
31
  isVertical: false,
31
32
  backgroundSize: background,
32
33
  images,
@@ -34,8 +35,44 @@ const hboxPackingFn = (box, options) => (background, images) => directionalPacki
34
35
  options,
35
36
  });
36
37
  exports.hboxPackingFn = hboxPackingFn;
38
+ const gridPackingFn = (options) => (box, background, images) => __awaiter(void 0, void 0, void 0, function* () {
39
+ const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_GRID_CONTAINER_OPTIONS, options);
40
+ const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[mergedOptions.scale];
41
+ const children = yield Promise.all(images.map((image) => __awaiter(void 0, void 0, void 0, function* () {
42
+ const imageBase64 = yield image.getBase64('image/png');
43
+ return (0, virtual_dom_1.h)('img', {
44
+ style: {
45
+ objectFit,
46
+ flex: '1 1 auto',
47
+ minWidth: 0,
48
+ minHeight: 0,
49
+ maxWidth: '100%',
50
+ maxHeight: '100%',
51
+ },
52
+ src: imageBase64,
53
+ }, []);
54
+ })));
55
+ const items = [];
56
+ for (const subset of (0, lodash_chunk_1.default)(children)) {
57
+ items.push((0, virtual_dom_1.h)('div', {
58
+ style: {
59
+ display: 'flex',
60
+ flexDirection: 'row',
61
+ overflow: 'hidden',
62
+ gap: (0, toPx_1.toPx)(mergedOptions.gap),
63
+ justifyContent: mergedOptions.justifyContent,
64
+ alignItems: mergedOptions.alignItems,
65
+ },
66
+ }, subset));
67
+ }
68
+ const document = (0, virtual_dom_1.h)('div', {
69
+ style: Object.assign({ display: 'grid', gridTemplateColumns: `repeat(${mergedOptions.size}, 1fr)`, position: 'absolute', gap: (0, toPx_1.toPx)(mergedOptions.gap) }, (0, toPx_1.boundingBoxToPx)(box)),
70
+ }, items);
71
+ return (0, htmlToImage_1.htmlToImage)(document, background);
72
+ });
73
+ exports.gridPackingFn = gridPackingFn;
37
74
  const directionalPackingFn = (_a) => __awaiter(void 0, [_a], void 0, function* ({ isVertical, backgroundSize: background, images, box, options, }) {
38
- const mergedOptions = (0, lodash_merge_1.default)(types_1.DEFAULT_DIRECTION_CONTAINER_OPTIONS, options);
75
+ const mergedOptions = (0, lodash_merge_1.default)({}, types_1.DEFAULT_DIRECTION_CONTAINER_OPTIONS, options);
39
76
  const objectFit = types_1.SCALE_MODE_TO_OBJECT_FIT[mergedOptions.scale];
40
77
  const children = yield Promise.all(images.map((image) => __awaiter(void 0, void 0, void 0, function* () {
41
78
  const imageBase64 = yield image.getBase64('image/png');
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,6CAAgC;AAChC,oCAA6J;AAC7J,iCAA+C;AAC/C,gEAAiC;AACjC,+CAA4C;AAErC,MAAM,aAAa,GACtB,CAAC,GAAgB,EAAE,OAAmC,EAAa,EAAE,CACrE,CAAC,UAAqB,EAAE,MAAwB,EAAE,EAAE,CAChD,oBAAoB,CAAC;IACjB,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,UAAU;IAC1B,MAAM;IACN,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AATE,QAAA,aAAa,iBASf;AAEJ,MAAM,aAAa,GACtB,CAAC,GAAgB,EAAE,OAAmC,EAAa,EAAE,CACrE,CAAC,UAAqB,EAAE,MAAwB,EAAE,EAAE,CAChD,oBAAoB,CAAC;IACjB,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,UAAU;IAC1B,MAAM;IACN,GAAG;IACH,OAAO;CACV,CAAC,CAAC;AATE,QAAA,aAAa,iBASf;AAEX,MAAM,oBAAoB,GAAG,KAYN,EAAE,4CAZW,EAChC,UAAU,EACV,cAAc,EAAE,UAAU,EAC1B,MAAM,EACN,GAAG,EACH,OAAO,GAOV;IACG,MAAM,aAAa,GAAG,IAAA,sBAAK,EAAC,2CAAmC,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,gCAAwB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,MAAM,CAAC,GAAG,CAAC,CAAM,KAAK,EAAC,EAAE;QACrB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,IAAA,eAAC,EACJ,KAAK,EACL;YACI,KAAK,EAAE;gBACH,SAAS;gBACT,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;aACpB;YACD,GAAG,EAAE,WAAW;SACnB,EACD,EAAE,CACL,CAAC;IACN,CAAC,CAAA,CAAC,CACL,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,eAAC,EACd,KAAK,EACL;QACI,KAAK,kBACD,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,CAAC,EAER,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7F,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,GAAG,CAAC,EAC5B,cAAc,EAAE,aAAa,CAAC,cAAc,EAC5C,UAAU,EAAE,aAAa,CAAC,UAAU,IAEjC,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,QAAQ,CACX,CAAC;IAEF,OAAO,IAAA,yBAAW,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../../../src/lib/utils/container.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"drawBoundingBox.js","sourceRoot":"","sources":["../../../../src/lib/utils/drawBoundingBox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,+CAA4C;AAC5C,iCAAyC;AAGlC,MAAM,eAAe,GAAG,CAC3B,GAAgB,EAEhB,SAAe,EACG,EAAE;IACpB,MAAM,QAAQ,GAAG,IAAA,eAAC,EAAC,KAAK,EAAE;QACtB,KAAK,kBACD,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,YAAY,IACpB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAA,yBAAW,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAhBW,QAAA,eAAe,mBAgB1B"}
1
+ {"version":3,"file":"drawBoundingBox.js","sourceRoot":"","sources":["../../../../src/lib/utils/drawBoundingBox.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAgC;AAChC,+CAA4C;AAC5C,iCAAyC;AAGlC,MAAM,eAAe,GAAG,CAC3B,GAAgB,EAChB,SAAe,EACG,EAAE;IACpB,MAAM,QAAQ,GAAG,IAAA,eAAC,EACd,KAAK,EACL;QACI,KAAK,kBACD,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,YAAY,IACpB,IAAA,sBAAe,EAAC,GAAG,CAAC,CAC1B;KACJ,EACD,EAAE,CACL,CAAC;IAEF,OAAO,IAAA,yBAAW,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAnBW,QAAA,eAAe,mBAmB1B"}
@@ -18,7 +18,6 @@ const node_html_to_image_1 = __importDefault(require("node-html-to-image"));
18
18
  const jimp_1 = require("jimp");
19
19
  const htmlToImage = (document, backgroundSize) => __awaiter(void 0, void 0, void 0, function* () {
20
20
  const html = (0, virtual_dom_1.create)(document).toString();
21
- // TODO: extract this in a dif function
22
21
  const image = yield (0, node_html_to_image_1.default)({
23
22
  html,
24
23
  transparent: true,
@@ -27,6 +26,7 @@ const htmlToImage = (document, backgroundSize) => __awaiter(void 0, void 0, void
27
26
  defaultViewport: {
28
27
  width: backgroundSize.width,
29
28
  height: backgroundSize.height,
29
+ deviceScaleFactor: 1,
30
30
  },
31
31
  },
32
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"htmlToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/htmlToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA6D;AAC7D,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,WAAW,GAAG,CACvB,QAAe,EACf,cAAoB,EACF,EAAE;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,uCAAuC;IACvC,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAe,EAAC;QAChC,IAAI;QACJ,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,KAAK;QACX,aAAa,EAAE;YACX,eAAe,EAAE;gBACb,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,MAAM,EAAE,cAAc,CAAC,MAAM;aAChC;SACJ;KACJ,CAAC,CAAC;IACH,OAAO,WAAI,CAAC,IAAI,CAAC,KAAe,CAAuB,CAAC;AAC5D,CAAC,CAAA,CAAC;AAlBW,QAAA,WAAW,eAkBtB"}
1
+ {"version":3,"file":"htmlToImage.js","sourceRoot":"","sources":["../../../../src/lib/utils/htmlToImage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA6D;AAC7D,4EAAiD;AACjD,+BAA4B;AAGrB,MAAM,WAAW,GAAG,CACvB,QAAe,EACf,cAAoB,EACF,EAAE;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAa,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,IAAA,4BAAe,EAAC;QAChC,IAAI;QACJ,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,KAAK;QACX,aAAa,EAAE;YACX,eAAe,EAAE;gBACb,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,iBAAiB,EAAE,CAAC;aACvB;SACJ;KACJ,CAAC,CAAC;IACH,OAAO,WAAI,CAAC,IAAI,CAAC,KAAe,CAAuB,CAAC;AAC5D,CAAC,CAAA,CAAC;AAlBW,QAAA,WAAW,eAkBtB"}