@resoc/core
Advanced tools
Comparing version 0.6.7 to 0.7.0
import Mustache from 'mustache'; | ||
import axios from 'axios'; | ||
import fetch from 'isomorphic-fetch'; | ||
@@ -7,3 +7,3 @@ var DefaultManifestName = 'resoc.manifest.json'; | ||
var PartialStyles = 'styles'; | ||
var HtmlTemplate = "\n<html>\n <head>\n <meta name=\"viewport\" content=\"width={{ resoc_imageWidth }}, initial-scale=1\">\n </head>\n <body>\n <style>\n html {\n width: {{ resoc_imageWidth }}px;\n height: {{ resoc_imageHeight }}px;\n font-size: 3vw;\n display: flex;\n align-items: stretch;\n background-color: white;\n }\n\n body {\n flex: 1 1 0;\n min-width: 0;\n margin: 0;\n display: flex;\n align-items: stretch;\n }\n\n body > div {\n flex: 1 1 0;\n min-width: 0;\n }\n </style>\n <style>\n {{> " + PartialStyles + "}}\n </style>\n {{> " + PartialContent + "}}\n </body>\n</html>"; | ||
var HtmlTemplate = "\n<html>\n <head>\n <meta name=\"viewport\" content=\"width={{ resoc_imageWidth }}, initial-scale=1\">\n </head>\n <body>\n {{#resoc_baseUrl}}\n <base href=\"{{{ resoc_baseUrl }}}\" />\n {{/resoc_baseUrl}}\n <style>\n html {\n width: {{ resoc_imageWidth }}px;\n height: {{ resoc_imageHeight }}px;\n font-size: 3vw;\n display: flex;\n align-items: stretch;\n background-color: white;\n }\n\n body {\n flex: 1 1 0;\n min-width: 0;\n margin: 0;\n display: flex;\n align-items: stretch;\n }\n\n body > div {\n flex: 1 1 0;\n min-width: 0;\n }\n </style>\n <style>\n {{> " + PartialStyles + "}}\n </style>\n {{> " + PartialContent + "}}\n </body>\n</html>"; | ||
var ParamType; | ||
@@ -32,8 +32,9 @@ (function (ParamType) { | ||
}; | ||
var assignResolutionToParamerters = function (values, resolution) { return (Object.assign({}, values, { | ||
var assignResolutionToParamerters = function (values, resolution, baseUrl) { return (Object.assign({}, values, { | ||
resoc_imageWidth: resolution.width, | ||
resoc_imageHeight: resolution.height | ||
resoc_imageHeight: resolution.height, | ||
resoc_baseUrl: baseUrl | ||
})); }; | ||
var renderRawTemplate = function (mainTemplate, template, parameters) { return (Mustache.render(mainTemplate, parameters, template.partials)); }; | ||
var renderTemplateToHtml = function (template, parameters, resolution) { return (renderRawTemplate(HtmlTemplate, template, assignResolutionToParamerters(parameters, resolution))); }; | ||
var renderTemplateToHtml = function (template, parameters, resolution, baseUrl) { return (renderRawTemplate(HtmlTemplate, template, assignResolutionToParamerters(parameters, resolution, baseUrl))); }; | ||
/** | ||
@@ -162,4 +163,4 @@ * Throw an error when the value is not correct. | ||
_a.trys.push([0, 2, , 3]); | ||
return [4 /*yield*/, axios.get(manifestUrl)]; | ||
case 1: return [2 /*return*/, (_a.sent()).data]; | ||
return [4 /*yield*/, fetch(manifestUrl)]; | ||
case 1: return [2 /*return*/, (_a.sent()).json()]; | ||
case 2: | ||
@@ -173,3 +174,3 @@ e_1 = _a.sent(); | ||
var loadRemoteTemplate = function (manifestUrl) { return __awaiter(void 0, void 0, void 0, function () { | ||
var manifest, partials, _a, _b, partial, _c, _d, e_2_1, parameters; | ||
var manifest, partials, _a, _b, partial, partialResp, _c, _d, e_2_1, parameters; | ||
var e_2, _e; | ||
@@ -184,3 +185,3 @@ return __generator(this, function (_f) { | ||
case 2: | ||
_f.trys.push([2, 8, 9, 14]); | ||
_f.trys.push([2, 9, 10, 15]); | ||
_a = __asyncValues(Object.keys(manifest['partials'])); | ||
@@ -190,29 +191,32 @@ _f.label = 3; | ||
case 4: | ||
if (!(_b = _f.sent(), !_b.done)) return [3 /*break*/, 7]; | ||
if (!(_b = _f.sent(), !_b.done)) return [3 /*break*/, 8]; | ||
partial = _b.value; | ||
return [4 /*yield*/, fetch(resolveRelativeUrl(manifest['partials'][partial], manifestUrl))]; | ||
case 5: | ||
partialResp = _f.sent(); | ||
_c = partials; | ||
_d = partial; | ||
return [4 /*yield*/, axios.get(resolveRelativeUrl(manifest['partials'][partial], manifestUrl))]; | ||
case 5: | ||
_c[_d] = (_f.sent()).data; | ||
_f.label = 6; | ||
case 6: return [3 /*break*/, 3]; | ||
case 7: return [3 /*break*/, 14]; | ||
case 8: | ||
return [4 /*yield*/, partialResp.text()]; | ||
case 6: | ||
_c[_d] = _f.sent(); | ||
_f.label = 7; | ||
case 7: return [3 /*break*/, 3]; | ||
case 8: return [3 /*break*/, 15]; | ||
case 9: | ||
e_2_1 = _f.sent(); | ||
e_2 = { error: e_2_1 }; | ||
return [3 /*break*/, 14]; | ||
case 9: | ||
_f.trys.push([9, , 12, 13]); | ||
if (!(_b && !_b.done && (_e = _a["return"]))) return [3 /*break*/, 11]; | ||
return [3 /*break*/, 15]; | ||
case 10: | ||
_f.trys.push([10, , 13, 14]); | ||
if (!(_b && !_b.done && (_e = _a["return"]))) return [3 /*break*/, 12]; | ||
return [4 /*yield*/, _e.call(_a)]; | ||
case 10: | ||
case 11: | ||
_f.sent(); | ||
_f.label = 11; | ||
case 11: return [3 /*break*/, 13]; | ||
case 12: | ||
_f.label = 12; | ||
case 12: return [3 /*break*/, 14]; | ||
case 13: | ||
if (e_2) throw e_2.error; | ||
return [7 /*endfinally*/]; | ||
case 13: return [7 /*endfinally*/]; | ||
case 14: | ||
case 14: return [7 /*endfinally*/]; | ||
case 15: | ||
parameters = []; | ||
@@ -219,0 +223,0 @@ manifest['parameters'].forEach(function (param) { |
@@ -6,3 +6,3 @@ 'use strict'; | ||
var Mustache = require('mustache'); | ||
var axios = require('axios'); | ||
var fetch = require('isomorphic-fetch'); | ||
@@ -12,3 +12,3 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } | ||
var Mustache__default = /*#__PURE__*/_interopDefaultLegacy(Mustache); | ||
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios); | ||
var fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch); | ||
@@ -18,3 +18,3 @@ var DefaultManifestName = 'resoc.manifest.json'; | ||
var PartialStyles = 'styles'; | ||
var HtmlTemplate = "\n<html>\n <head>\n <meta name=\"viewport\" content=\"width={{ resoc_imageWidth }}, initial-scale=1\">\n </head>\n <body>\n <style>\n html {\n width: {{ resoc_imageWidth }}px;\n height: {{ resoc_imageHeight }}px;\n font-size: 3vw;\n display: flex;\n align-items: stretch;\n background-color: white;\n }\n\n body {\n flex: 1 1 0;\n min-width: 0;\n margin: 0;\n display: flex;\n align-items: stretch;\n }\n\n body > div {\n flex: 1 1 0;\n min-width: 0;\n }\n </style>\n <style>\n {{> " + PartialStyles + "}}\n </style>\n {{> " + PartialContent + "}}\n </body>\n</html>"; | ||
var HtmlTemplate = "\n<html>\n <head>\n <meta name=\"viewport\" content=\"width={{ resoc_imageWidth }}, initial-scale=1\">\n </head>\n <body>\n {{#resoc_baseUrl}}\n <base href=\"{{{ resoc_baseUrl }}}\" />\n {{/resoc_baseUrl}}\n <style>\n html {\n width: {{ resoc_imageWidth }}px;\n height: {{ resoc_imageHeight }}px;\n font-size: 3vw;\n display: flex;\n align-items: stretch;\n background-color: white;\n }\n\n body {\n flex: 1 1 0;\n min-width: 0;\n margin: 0;\n display: flex;\n align-items: stretch;\n }\n\n body > div {\n flex: 1 1 0;\n min-width: 0;\n }\n </style>\n <style>\n {{> " + PartialStyles + "}}\n </style>\n {{> " + PartialContent + "}}\n </body>\n</html>"; | ||
exports.ParamType = void 0; | ||
@@ -43,8 +43,9 @@ (function (ParamType) { | ||
}; | ||
var assignResolutionToParamerters = function (values, resolution) { return (Object.assign({}, values, { | ||
var assignResolutionToParamerters = function (values, resolution, baseUrl) { return (Object.assign({}, values, { | ||
resoc_imageWidth: resolution.width, | ||
resoc_imageHeight: resolution.height | ||
resoc_imageHeight: resolution.height, | ||
resoc_baseUrl: baseUrl | ||
})); }; | ||
var renderRawTemplate = function (mainTemplate, template, parameters) { return (Mustache__default['default'].render(mainTemplate, parameters, template.partials)); }; | ||
var renderTemplateToHtml = function (template, parameters, resolution) { return (renderRawTemplate(HtmlTemplate, template, assignResolutionToParamerters(parameters, resolution))); }; | ||
var renderTemplateToHtml = function (template, parameters, resolution, baseUrl) { return (renderRawTemplate(HtmlTemplate, template, assignResolutionToParamerters(parameters, resolution, baseUrl))); }; | ||
/** | ||
@@ -173,4 +174,4 @@ * Throw an error when the value is not correct. | ||
_a.trys.push([0, 2, , 3]); | ||
return [4 /*yield*/, axios__default['default'].get(manifestUrl)]; | ||
case 1: return [2 /*return*/, (_a.sent()).data]; | ||
return [4 /*yield*/, fetch__default['default'](manifestUrl)]; | ||
case 1: return [2 /*return*/, (_a.sent()).json()]; | ||
case 2: | ||
@@ -184,3 +185,3 @@ e_1 = _a.sent(); | ||
var loadRemoteTemplate = function (manifestUrl) { return __awaiter(void 0, void 0, void 0, function () { | ||
var manifest, partials, _a, _b, partial, _c, _d, e_2_1, parameters; | ||
var manifest, partials, _a, _b, partial, partialResp, _c, _d, e_2_1, parameters; | ||
var e_2, _e; | ||
@@ -195,3 +196,3 @@ return __generator(this, function (_f) { | ||
case 2: | ||
_f.trys.push([2, 8, 9, 14]); | ||
_f.trys.push([2, 9, 10, 15]); | ||
_a = __asyncValues(Object.keys(manifest['partials'])); | ||
@@ -201,29 +202,32 @@ _f.label = 3; | ||
case 4: | ||
if (!(_b = _f.sent(), !_b.done)) return [3 /*break*/, 7]; | ||
if (!(_b = _f.sent(), !_b.done)) return [3 /*break*/, 8]; | ||
partial = _b.value; | ||
return [4 /*yield*/, fetch__default['default'](resolveRelativeUrl(manifest['partials'][partial], manifestUrl))]; | ||
case 5: | ||
partialResp = _f.sent(); | ||
_c = partials; | ||
_d = partial; | ||
return [4 /*yield*/, axios__default['default'].get(resolveRelativeUrl(manifest['partials'][partial], manifestUrl))]; | ||
case 5: | ||
_c[_d] = (_f.sent()).data; | ||
_f.label = 6; | ||
case 6: return [3 /*break*/, 3]; | ||
case 7: return [3 /*break*/, 14]; | ||
case 8: | ||
return [4 /*yield*/, partialResp.text()]; | ||
case 6: | ||
_c[_d] = _f.sent(); | ||
_f.label = 7; | ||
case 7: return [3 /*break*/, 3]; | ||
case 8: return [3 /*break*/, 15]; | ||
case 9: | ||
e_2_1 = _f.sent(); | ||
e_2 = { error: e_2_1 }; | ||
return [3 /*break*/, 14]; | ||
case 9: | ||
_f.trys.push([9, , 12, 13]); | ||
if (!(_b && !_b.done && (_e = _a["return"]))) return [3 /*break*/, 11]; | ||
return [3 /*break*/, 15]; | ||
case 10: | ||
_f.trys.push([10, , 13, 14]); | ||
if (!(_b && !_b.done && (_e = _a["return"]))) return [3 /*break*/, 12]; | ||
return [4 /*yield*/, _e.call(_a)]; | ||
case 10: | ||
case 11: | ||
_f.sent(); | ||
_f.label = 11; | ||
case 11: return [3 /*break*/, 13]; | ||
case 12: | ||
_f.label = 12; | ||
case 12: return [3 /*break*/, 14]; | ||
case 13: | ||
if (e_2) throw e_2.error; | ||
return [7 /*endfinally*/]; | ||
case 13: return [7 /*endfinally*/]; | ||
case 14: | ||
case 14: return [7 /*endfinally*/]; | ||
case 15: | ||
parameters = []; | ||
@@ -230,0 +234,0 @@ manifest['parameters'].forEach(function (param) { |
export declare const DefaultManifestName = "resoc.manifest.json"; | ||
export declare const HtmlTemplate: string; | ||
export declare enum ParamType { | ||
@@ -38,8 +39,9 @@ String = "string", | ||
export declare const demoParamValues: (params: TemplateParam[]) => ParamValues; | ||
export declare const assignResolutionToParamerters: (values: ParamValues, resolution: ImageResolution) => ParamValues & { | ||
export declare const assignResolutionToParamerters: (values: ParamValues, resolution: ImageResolution, baseUrl?: string | undefined) => ParamValues & { | ||
resoc_imageWidth: number; | ||
resoc_imageHeight: number; | ||
resoc_baseUrl: string | undefined; | ||
}; | ||
export declare const renderRawTemplate: (mainTemplate: string, template: ImageTemplate, parameters: ParamValues) => string; | ||
export declare const renderTemplateToHtml: (template: ImageTemplate, parameters: ParamValues, resolution: ImageResolution) => string; | ||
export declare const renderTemplateToHtml: (template: ImageTemplate, parameters: ParamValues, resolution: ImageResolution, baseUrl?: string | undefined) => string; | ||
export declare const parseTemplateManifestParams: (manifest: any) => TemplateParam[]; | ||
@@ -46,0 +48,0 @@ /** |
{ | ||
"name": "@resoc/core", | ||
"version": "0.6.7", | ||
"version": "0.7.0", | ||
"description": "Resoc core utils", | ||
@@ -39,2 +39,3 @@ "main": "build/index.js", | ||
"@rollup/plugin-node-resolve": "^13.0.4", | ||
"@types/isomorphic-fetch": "0.0.35", | ||
"@types/jest": "^26.0.23", | ||
@@ -51,10 +52,10 @@ "@types/mustache": "^4.1.2", | ||
"dependencies": { | ||
"axios": "^0.21.1", | ||
"isomorphic-fetch": "^3.0.0", | ||
"mustache": "^4.2.0" | ||
}, | ||
"peerDependencies": { | ||
"axios": "^0.21.1", | ||
"isomorphic-fetch": "^3.0.0", | ||
"mustache": "^4.2.0" | ||
}, | ||
"gitHead": "edc744d14bf164127737ecb6b139086e491a2738" | ||
"gitHead": "011c2bfc923b64fbea42976c64801014f6fd60bf" | ||
} |
@@ -1,2 +0,2 @@ | ||
import axios from "axios"; | ||
import fetch from 'isomorphic-fetch'; | ||
import { ImageTemplate, TemplateParam } from "./template"; | ||
@@ -23,3 +23,3 @@ | ||
try { | ||
return (await axios.get(manifestUrl)).data; | ||
return (await fetch(manifestUrl)).json(); | ||
} | ||
@@ -36,3 +36,4 @@ catch(e) { | ||
for await (let partial of Object.keys(manifest['partials'])) { | ||
partials[partial] = (await axios.get(resolveRelativeUrl(manifest['partials'][partial], manifestUrl))).data; | ||
const partialResp = await fetch(resolveRelativeUrl(manifest['partials'][partial], manifestUrl)); | ||
partials[partial] = await partialResp.text(); | ||
} | ||
@@ -39,0 +40,0 @@ |
@@ -1,2 +0,2 @@ | ||
import { assignResolutionToParamerters, demoParamValues, paramLabel, ParamType, paramValueToString, parseTemplateManifestParams, renderRawTemplate, stringToParamValue, validateParamValue } from './template' | ||
import { assignResolutionToParamerters, demoParamValues, HtmlTemplate, paramLabel, ParamType, paramValueToString, parseTemplateManifestParams, renderRawTemplate, stringToParamValue, validateParamValue } from './template' | ||
@@ -9,4 +9,20 @@ test('renderRawTemplate', () => { | ||
name: 'world' | ||
})) | ||
.toEqual('# Hello world *'); | ||
}) | ||
).toEqual('# Hello world *'); | ||
expect(renderRawTemplate( | ||
'# {{#someVar}}This is {{ someVar }}{{/someVar}} *',{ | ||
partials: {}, parameters: [] | ||
}, { | ||
someVar: 'Hello!' | ||
}) | ||
).toEqual('# This is Hello! *'); | ||
expect(renderRawTemplate( | ||
'# {{#someVar}}This is {{ someVar }}{{/someVar}} *',{ | ||
partials: {}, parameters: [] | ||
}, { | ||
notTheVar: 'What?' | ||
}) | ||
).toEqual('# *'); | ||
}); | ||
@@ -80,2 +96,14 @@ | ||
}); | ||
expect(assignResolutionToParamerters({ | ||
title: 'Hello' | ||
}, { | ||
width: 789, | ||
height: 654 | ||
}, 'http://example.com/sub-dir')).toEqual({ | ||
title: 'Hello', | ||
resoc_imageWidth: 789, | ||
resoc_imageHeight: 654, | ||
resoc_baseUrl: 'http://example.com/sub-dir' | ||
}); | ||
}); | ||
@@ -82,0 +110,0 @@ |
@@ -1,2 +0,1 @@ | ||
import axios from 'axios'; | ||
import Mustache from 'mustache' | ||
@@ -9,3 +8,3 @@ | ||
const HtmlTemplate = ` | ||
export const HtmlTemplate = ` | ||
<html> | ||
@@ -16,2 +15,5 @@ <head> | ||
<body> | ||
{{#resoc_baseUrl}} | ||
<base href="{{{ resoc_baseUrl }}}" /> | ||
{{/resoc_baseUrl}} | ||
<style> | ||
@@ -101,6 +103,7 @@ html { | ||
export const assignResolutionToParamerters = (values: ParamValues, resolution: ImageResolution) => ( | ||
export const assignResolutionToParamerters = (values: ParamValues, resolution: ImageResolution, baseUrl?: string) => ( | ||
Object.assign({}, values, { | ||
resoc_imageWidth: resolution.width, | ||
resoc_imageHeight: resolution.height | ||
resoc_imageHeight: resolution.height, | ||
resoc_baseUrl: baseUrl | ||
}) | ||
@@ -117,4 +120,8 @@ ); | ||
export const renderTemplateToHtml = (template: ImageTemplate, parameters: ParamValues, resolution: ImageResolution) => ( | ||
renderRawTemplate(HtmlTemplate, template, assignResolutionToParamerters(parameters, resolution)) | ||
export const renderTemplateToHtml = (template: ImageTemplate, parameters: ParamValues, resolution: ImageResolution, baseUrl?: string) => ( | ||
renderRawTemplate( | ||
HtmlTemplate, | ||
template, | ||
assignResolutionToParamerters(parameters, resolution, baseUrl) | ||
) | ||
); | ||
@@ -121,0 +128,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
43385
915
19
3
+ Addedisomorphic-fetch@^3.0.0
+ Addedisomorphic-fetch@3.0.0(transitive)
+ Addednode-fetch@2.7.0(transitive)
+ Addedtr46@0.0.3(transitive)
+ Addedwebidl-conversions@3.0.1(transitive)
+ Addedwhatwg-fetch@3.6.20(transitive)
+ Addedwhatwg-url@5.0.0(transitive)
- Removedaxios@^0.21.1
- Removedaxios@0.21.4(transitive)
- Removedfollow-redirects@1.15.6(transitive)