@resoc/create-img
Advanced tools
Comparing version 0.4.0 to 0.4.1
@@ -8,4 +8,5 @@ import { ImageTemplate, ImageResolution, ParamValues } from '@resoc/core'; | ||
export declare const compileLocalTemplate: (templateManifestPath: string, paramValues: ParamValues, resolution: ImageResolution, imagePath: string, options?: LocalTemplateOptions | undefined) => Promise<string>; | ||
export declare const isLocalResource: (url: string) => boolean; | ||
export declare const compileTemplate: (template: ImageTemplate, paramValues: ParamValues, resolution: ImageResolution, imagePath: string, resourcePath?: string | undefined) => Promise<void>; | ||
export declare const urlToImage: (url: string, outputPath: string) => Promise<void>; | ||
export {}; |
@@ -1,2 +0,2 @@ | ||
import { renderTemplateToHtml } from '@resoc/core'; | ||
import { renderTemplateToHtml, ParamType } from '@resoc/core'; | ||
import puppeteer from 'puppeteer'; | ||
@@ -10,2 +10,3 @@ import fs from 'fs/promises'; | ||
import Mustache from 'mustache'; | ||
import { v4 } from 'uuid'; | ||
@@ -215,22 +216,57 @@ /*! ***************************************************************************** | ||
}); }; | ||
var compileTemplate = function (template, paramValues, resolution, imagePath, resourcePath) { return __awaiter(void 0, void 0, void 0, function () { | ||
var html, tmpDir, htmlPath; | ||
var isLocalResource = function (url) { | ||
var up = url.toLowerCase(); | ||
return (!up.startsWith('http://') && | ||
!up.startsWith('https://') && | ||
!up.startsWith('//')); | ||
}; | ||
var copyLocalResources = function (parameters, values, tmpDir) { return __awaiter(void 0, void 0, void 0, function () { | ||
var newValues, _i, parameters_1, param, url, dest; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
html = renderTemplateToHtml(template, paramValues, resolution); | ||
return [4 /*yield*/, fs.mkdtemp(path.join(os.tmpdir(), 'resoc-compile-'))]; | ||
newValues = Object.assign({}, values); | ||
_i = 0, parameters_1 = parameters; | ||
_a.label = 1; | ||
case 1: | ||
if (!(_i < parameters_1.length)) return [3 /*break*/, 4]; | ||
param = parameters_1[_i]; | ||
url = values[param.name]; | ||
if (!(param.type === ParamType.ImageUrl && isLocalResource(url))) return [3 /*break*/, 3]; | ||
dest = tmpDir + "/" + v4() + "-" + path.basename(url); | ||
return [4 /*yield*/, fs.copyFile(url, dest)]; | ||
case 2: | ||
_a.sent(); | ||
newValues[param.name] = dest; | ||
_a.label = 3; | ||
case 3: | ||
_i++; | ||
return [3 /*break*/, 1]; | ||
case 4: return [2 /*return*/, newValues]; | ||
} | ||
}); | ||
}); }; | ||
var compileTemplate = function (template, paramValues, resolution, imagePath, resourcePath) { return __awaiter(void 0, void 0, void 0, function () { | ||
var tmpDir, html, htmlPath; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, fs.mkdtemp(path.join(os.tmpdir(), 'resoc-compile-'))]; | ||
case 1: | ||
tmpDir = _a.sent(); | ||
return [4 /*yield*/, copyLocalResources(template.parameters, paramValues, tmpDir)]; | ||
case 2: | ||
// Copy extenal resources | ||
paramValues = _a.sent(); | ||
html = renderTemplateToHtml(template, paramValues, resolution); | ||
htmlPath = tmpDir + "/content.html"; | ||
return [4 /*yield*/, fs.writeFile(htmlPath, html)]; | ||
case 2: | ||
case 3: | ||
_a.sent(); | ||
if (!resourcePath) return [3 /*break*/, 4]; | ||
if (!resourcePath) return [3 /*break*/, 5]; | ||
return [4 /*yield*/, copy(resourcePath, tmpDir)]; | ||
case 3: | ||
case 4: | ||
_a.sent(); | ||
_a.label = 4; | ||
case 4: return [4 /*yield*/, urlToImage("file:///" + htmlPath, imagePath)]; | ||
case 5: | ||
_a.label = 5; | ||
case 5: return [4 /*yield*/, urlToImage("file:///" + htmlPath, imagePath)]; | ||
case 6: | ||
_a.sent(); | ||
@@ -237,0 +273,0 @@ return [2 /*return*/]; |
@@ -14,2 +14,3 @@ 'use strict'; | ||
var Mustache = require('mustache'); | ||
var uuid = require('uuid'); | ||
@@ -229,22 +230,57 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
}); }; | ||
var compileTemplate = function (template, paramValues, resolution, imagePath, resourcePath) { return __awaiter(void 0, void 0, void 0, function () { | ||
var html, tmpDir, htmlPath; | ||
var isLocalResource = function (url) { | ||
var up = url.toLowerCase(); | ||
return (!up.startsWith('http://') && | ||
!up.startsWith('https://') && | ||
!up.startsWith('//')); | ||
}; | ||
var copyLocalResources = function (parameters, values, tmpDir) { return __awaiter(void 0, void 0, void 0, function () { | ||
var newValues, _i, parameters_1, param, url, dest; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
html = core.renderTemplateToHtml(template, paramValues, resolution); | ||
return [4 /*yield*/, fs__default['default'].mkdtemp(path__default['default'].join(os__default['default'].tmpdir(), 'resoc-compile-'))]; | ||
newValues = Object.assign({}, values); | ||
_i = 0, parameters_1 = parameters; | ||
_a.label = 1; | ||
case 1: | ||
if (!(_i < parameters_1.length)) return [3 /*break*/, 4]; | ||
param = parameters_1[_i]; | ||
url = values[param.name]; | ||
if (!(param.type === core.ParamType.ImageUrl && isLocalResource(url))) return [3 /*break*/, 3]; | ||
dest = tmpDir + "/" + uuid.v4() + "-" + path__default['default'].basename(url); | ||
return [4 /*yield*/, fs__default['default'].copyFile(url, dest)]; | ||
case 2: | ||
_a.sent(); | ||
newValues[param.name] = dest; | ||
_a.label = 3; | ||
case 3: | ||
_i++; | ||
return [3 /*break*/, 1]; | ||
case 4: return [2 /*return*/, newValues]; | ||
} | ||
}); | ||
}); }; | ||
var compileTemplate = function (template, paramValues, resolution, imagePath, resourcePath) { return __awaiter(void 0, void 0, void 0, function () { | ||
var tmpDir, html, htmlPath; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, fs__default['default'].mkdtemp(path__default['default'].join(os__default['default'].tmpdir(), 'resoc-compile-'))]; | ||
case 1: | ||
tmpDir = _a.sent(); | ||
return [4 /*yield*/, copyLocalResources(template.parameters, paramValues, tmpDir)]; | ||
case 2: | ||
// Copy extenal resources | ||
paramValues = _a.sent(); | ||
html = core.renderTemplateToHtml(template, paramValues, resolution); | ||
htmlPath = tmpDir + "/content.html"; | ||
return [4 /*yield*/, fs__default['default'].writeFile(htmlPath, html)]; | ||
case 2: | ||
case 3: | ||
_a.sent(); | ||
if (!resourcePath) return [3 /*break*/, 4]; | ||
if (!resourcePath) return [3 /*break*/, 5]; | ||
return [4 /*yield*/, copy__default['default'](resourcePath, tmpDir)]; | ||
case 3: | ||
case 4: | ||
_a.sent(); | ||
_a.label = 4; | ||
case 4: return [4 /*yield*/, urlToImage("file:///" + htmlPath, imagePath)]; | ||
case 5: | ||
_a.label = 5; | ||
case 5: return [4 /*yield*/, urlToImage("file:///" + htmlPath, imagePath)]; | ||
case 6: | ||
_a.sent(); | ||
@@ -251,0 +287,0 @@ return [2 /*return*/]; |
{ | ||
"name": "@resoc/create-img", | ||
"version": "0.4.0", | ||
"version": "0.4.1", | ||
"description": "Create an image based on a Resoc image template", | ||
@@ -35,3 +35,4 @@ "main": "build/index.js", | ||
"recursive-copy": "^2.0.13", | ||
"sha256": "^0.2.0" | ||
"sha256": "^0.2.0", | ||
"uuid": "^8.3.2" | ||
}, | ||
@@ -50,2 +51,3 @@ "devDependencies": { | ||
"@types/sha256": "^0.2.0", | ||
"@types/uuid": "^8.3.1", | ||
"jest": "^27.0.6", | ||
@@ -60,3 +62,3 @@ "nodemon": "^2.0.12", | ||
}, | ||
"gitHead": "25c7bcf1cc97afdaf172820fab056df954b80719" | ||
"gitHead": "8b642b3dc8e2d002fdc7d1ae49e0afe16bab2dcf" | ||
} |
@@ -1,2 +0,2 @@ | ||
import { ImageTemplate, ImageResolution, loadRemoteTemplate, ParamValues, renderTemplateToHtml } from '@resoc/core' | ||
import { ImageTemplate, ImageResolution, loadRemoteTemplate, ParamValues, renderTemplateToHtml, TemplateParam, ParamType } from '@resoc/core' | ||
import puppeteer from 'puppeteer' | ||
@@ -10,2 +10,3 @@ import fs from 'fs/promises' | ||
import Mustache from 'mustache' | ||
import { v4 as uuidv4 } from 'uuid' | ||
@@ -64,7 +65,32 @@ type LocalTemplateOptions = { | ||
export const isLocalResource = (url: string): boolean => { | ||
const up = url.toLowerCase(); | ||
return ( | ||
!up.startsWith('http://') && | ||
!up.startsWith('https://') && | ||
!up.startsWith('//') | ||
); | ||
}; | ||
const copyLocalResources = async (parameters: TemplateParam[], values: ParamValues, tmpDir: string): Promise<ParamValues> => { | ||
const newValues = Object.assign({}, values); | ||
for (const param of parameters) { | ||
const url = values[param.name]; | ||
if (param.type === ParamType.ImageUrl && isLocalResource(url)) { | ||
const dest = `${tmpDir}/${uuidv4()}-${path.basename(url)}`; | ||
await fs.copyFile(url, dest); | ||
newValues[param.name] = dest; | ||
} | ||
} | ||
return newValues; | ||
}; | ||
export const compileTemplate = async (template: ImageTemplate, paramValues: ParamValues, resolution: ImageResolution, imagePath: string, resourcePath?: string): Promise<void> => { | ||
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'resoc-compile-')); | ||
// Copy extenal resources | ||
paramValues = await copyLocalResources(template.parameters, paramValues, tmpDir); | ||
const html = renderTemplateToHtml(template, paramValues, resolution); | ||
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'resoc-compile-')); | ||
// Write filled template | ||
@@ -71,0 +97,0 @@ const htmlPath = `${tmpDir}/content.html`; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
150189
39
1369
8
20
+ Addeduuid@^8.3.2
+ Addeduuid@8.3.2(transitive)