From 6b2eef7f1532d739d3d38ba3a8afde61037ee2d7 Mon Sep 17 00:00:00 2001 From: Phil Freeman Date: Wed, 10 Jan 2018 15:58:08 -0800 Subject: [PATCH 1/3] Add code generator --- codegen/.gitignore | 2 + codegen/index.js | 460 +++++++++++++++++++++++++++++++++++++++++++ codegen/package.json | 10 + 3 files changed, 472 insertions(+) create mode 100644 codegen/.gitignore create mode 100644 codegen/index.js create mode 100644 codegen/package.json diff --git a/codegen/.gitignore b/codegen/.gitignore new file mode 100644 index 0000000..7a7b33a --- /dev/null +++ b/codegen/.gitignore @@ -0,0 +1,2 @@ +package-lock.json +node_modules diff --git a/codegen/index.js b/codegen/index.js new file mode 100644 index 0000000..0c49c8d --- /dev/null +++ b/codegen/index.js @@ -0,0 +1,460 @@ +const props = require('react-html-attributes'); +const voids = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr']; +const types = { + "about": "String", + "accentHeight": "String", + "accept": "String", + "acceptCharset": "String", + "accessKey": "String", + "accumulate": "String", + "action": "String", + "additive": "String", + "alignmentBaseline": "String", + "allowFullScreen": "Boolean", + "allowReorder": "String", + "allowTransparency": "String", + "alphabetic": "String", + "alt": "String", + "amplitude": "String", + "arabicForm": "String", + "aria-activedescendant": "String", + "aria-atomic": "String", + "aria-autocomplete": "String", + "aria-busy": "String", + "aria-checked": "String", + "aria-colcount": "String", + "aria-colindex": "String", + "aria-colspan": "String", + "aria-controls": "String", + "aria-current": "String", + "aria-describedby": "String", + "aria-details": "String", + "aria-disabled": "String", + "aria-dropeffect": "String", + "aria-errormessage": "String", + "aria-expanded": "String", + "aria-flowto": "String", + "aria-grabbed": "String", + "aria-haspopup": "String", + "aria-hidden": "String", + "aria-invalid": "String", + "aria-keyshortcuts": "String", + "aria-label": "String", + "aria-labelledby": "String", + "aria-level": "String", + "aria-live": "String", + "aria-modal": "String", + "aria-multiline": "String", + "aria-multiselectable": "String", + "aria-orientation": "String", + "aria-owns": "String", + "aria-placeholder": "String", + "aria-posinset": "String", + "aria-pressed": "String", + "aria-readonly": "String", + "aria-relevant": "String", + "aria-required": "String", + "aria-roledescription": "String", + "aria-rowcount": "String", + "aria-rowindex": "String", + "aria-rowspan": "String", + "aria-selected": "String", + "aria-setsize": "String", + "aria-sort": "String", + "aria-valuemax": "String", + "aria-valuemin": "String", + "aria-valuenow": "String", + "aria-valuetext": "String", + "as": "String", + "ascent": "String", + "async": "Boolean", + "attributeName": "String", + "attributeType": "String", + "autoCapitalize": "String", + "autoComplete": "String", + "autoCorrect": "String", + "autoPlay": "Boolean", + "autoReverse": "String", + "autoSave": "String", + "azimuth": "String", + "baseFrequency": "String", + "baseProfile": "String", + "baselineShift": "String", + "bbox": "String", + "begin": "String", + "bias": "String", + "by": "String", + "calcMode": "String", + "capHeight": "String", + "capture": "Boolean", + "cellPadding": "String", + "cellSpacing": "String", + "challenge": "String", + "charSet": "String", + "checked": "Boolean", + "cite": "String", + "classID": "String", + "className": "String", + "clip": "String", + "clipPath": "String", + "clipPathUnits": "String", + "clipRule": "String", + "colSpan": "String", + "color": "String", + "colorInterpolation": "String", + "colorInterpolationFilters": "String", + "colorProfile": "String", + "colorRendering": "String", + "cols": "Number", + "content": "String", + "contentEditable": "String", + "contentScriptType": "String", + "contentStyleType": "String", + "contextMenu": "String", + "controls": "Boolean", + "controlsList": "String", + "coords": "String", + "crossOrigin": "String", + "cursor": "String", + "cx": "String", + "cy": "String", + "d": "String", + "data": "String", + "datatype": "String", + "dateTime": "String", + "decelerate": "String", + "default": "Boolean", + "defer": "Boolean", + "descent": "String", + "diffuseConstant": "String", + "dir": "String", + "direction": "String", + "disabled": "Boolean", + "display": "String", + "divisor": "String", + "dominantBaseline": "String", + "download": "String", + "draggable": "String", + "dur": "String", + "dx": "String", + "dy": "String", + "edgeMode": "String", + "elevation": "String", + "enableBackground": "String", + "encType": "String", + "end": "String", + "exponent": "String", + "externalResourcesRequired": "String", + "fill": "String", + "fillOpacity": "String", + "fillRule": "String", + "filter": "String", + "filterRes": "String", + "filterUnits": "String", + "floodColor": "String", + "floodOpacity": "String", + "focusable": "String", + "fontFamily": "String", + "fontSize": "String", + "fontSizeAdjust": "String", + "fontStretch": "String", + "fontStyle": "String", + "fontVariant": "String", + "fontWeight": "String", + "form": "String", + "formAction": "String", + "formEncType": "String", + "formMethod": "String", + "formNoValidate": "Boolean", + "formTarget": "String", + "format": "String", + "frameBorder": "String", + "from": "String", + "fx": "String", + "fy": "String", + "g1": "String", + "g2": "String", + "glyphName": "String", + "glyphOrientationHorizontal": "String", + "glyphOrientationVertical": "String", + "glyphRef": "String", + "gradientTransform": "String", + "gradientUnits": "String", + "hanging": "String", + "headers": "String", + "height": "String", + "hidden": "Boolean", + "high": "String", + "horizAdvX": "String", + "horizOriginX": "String", + "href": "String", + "hrefLang": "String", + "htmlFor": "String", + "httpEquiv": "String", + "icon": "String", + "id": "String", + "ideographic": "String", + "imageRendering": "String", + "in": "String", + "in2": "String", + "inlist": "String", + "inputMode": "String", + "integrity": "String", + "intercept": "String", + "is": "String", + "itemID": "String", + "itemProp": "String", + "itemRef": "String", + "itemScope": "Boolean", + "itemType": "String", + "k": "String", + "k1": "String", + "k2": "String", + "k3": "String", + "k4": "String", + "kernelMatrix": "String", + "kernelUnitLength": "String", + "kerning": "String", + "keyParams": "String", + "keyPoints": "String", + "keySplines": "String", + "keyTimes": "String", + "keyType": "String", + "kind": "String", + "label": "String", + "lang": "String", + "lengthAdjust": "String", + "letterSpacing": "String", + "lightingColor": "String", + "limitingConeAngle": "String", + "list": "String", + "local": "String", + "loop": "Boolean", + "low": "String", + "manifest": "String", + "marginHeight": "String", + "marginWidth": "String", + "markerEnd": "String", + "markerHeight": "String", + "markerMid": "String", + "markerStart": "String", + "markerUnits": "String", + "markerWidth": "String", + "mask": "String", + "maskContentUnits": "String", + "maskUnits": "String", + "mathematical": "String", + "max": "String", + "maxLength": "String", + "media": "String", + "mediaGroup": "String", + "method": "String", + "min": "String", + "minLength": "String", + "mode": "String", + "multiple": "Boolean", + "muted": "Boolean", + "name": "String", + "noValidate": "Boolean", + "nonce": "String", + "numOctaves": "String", + "offset": "String", + "opacity": "String", + "open": "Boolean", + "operator": "String", + "optimum": "String", + "order": "String", + "orient": "String", + "orientation": "String", + "origin": "String", + "overflow": "String", + "overlinePosition": "String", + "overlineThickness": "String", + "paintOrder": "String", + "panose1": "String", + "pathLength": "String", + "pattern": "String", + "patternContentUnits": "String", + "patternTransform": "String", + "patternUnits": "String", + "placeholder": "String", + "playsInline": "Boolean", + "pointerEvents": "String", + "points": "String", + "pointsAtX": "String", + "pointsAtY": "String", + "pointsAtZ": "String", + "poster": "String", + "prefix": "String", + "preload": "String", + "preserveAlpha": "String", + "preserveAspectRatio": "String", + "primitiveUnits": "String", + "profile": "String", + "property": "String", + "r": "String", + "radioGroup": "String", + "radius": "String", + "readOnly": "Boolean", + "refX": "String", + "refY": "String", + "referrerPolicy": "String", + "rel": "String", + "renderingIntent": "String", + "repeatCount": "String", + "repeatDur": "String", + "required": "Boolean", + "requiredExtensions": "String", + "requiredFeatures": "String", + "resource": "String", + "restart": "String", + "result": "String", + "results": "String", + "reversed": "Boolean", + "role": "String", + "rotate": "String", + "rowSpan": "Number", + "rows": "Number", + "rx": "String", + "ry": "String", + "sandbox": "String", + "scale": "String", + "scope": "String", + "scoped": "Boolean", + "scrolling": "String", + "seamless": "Boolean", + "security": "String", + "seed": "String", + "selected": "Boolean", + "shape": "String", + "shapeRendering": "String", + "size": "Number", + "sizes": "String", + "slope": "String", + "spacing": "String", + "span": "Number", + "specularConstant": "String", + "specularExponent": "String", + "speed": "String", + "spellCheck": "String", + "spreadMethod": "String", + "src": "String", + "srcDoc": "String", + "srcLang": "String", + "srcSet": "String", + "start": "Number", + "startOffset": "String", + "stdDeviation": "String", + "stemh": "String", + "stemv": "String", + "step": "String", + "stitchTiles": "String", + "stopColor": "String", + "stopOpacity": "String", + "strikethroughPosition": "String", + "strikethroughThickness": "String", + "string": "String", + "stroke": "String", + "strokeDasharray": "String", + "strokeDashoffset": "String", + "strokeLinecap": "String", + "strokeLinejoin": "String", + "strokeMiterlimit": "String", + "strokeOpacity": "String", + "strokeWidth": "String", + "style": "String", + "summary": "String", + "surfaceScale": "String", + "systemLanguage": "String", + "tabIndex": "String", + "tableValues": "String", + "target": "String", + "targetX": "String", + "targetY": "String", + "textAnchor": "String", + "textDecoration": "String", + "textLength": "String", + "textRendering": "String", + "title": "String", + "to": "String", + "transform": "String", + "type": "String", + "typeof": "String", + "u1": "String", + "u2": "String", + "underlinePosition": "String", + "underlineThickness": "String", + "unicode": "String", + "unicodeBidi": "String", + "unicodeRange": "String", + "unitsPerEm": "String", + "unselectable": "String", + "useMap": "String", + "vAlphabetic": "String", + "vHanging": "String", + "vIdeographic": "String", + "vMathematical": "String", + "value": "String", + "values": "String", + "vectorEffect": "String", + "version": "String", + "vertAdvY": "String", + "vertOriginX": "String", + "vertOriginY": "String", + "viewBox": "String", + "viewTarget": "String", + "visibility": "String", + "vocab": "String", + "width": "String", + "widths": "String", + "wmode": "String", + "wordSpacing": "String", + "wrap": "String", + "writingMode": "String", + "x": "String", + "x1": "String", + "x2": "String", + "xChannelSelector": "String", + "xHeight": "String", + "xlinkActuate": "String", + "xlinkArcrole": "String", + "xlinkHref": "String", + "xlinkRole": "String", + "xlinkShow": "String", + "xlinkTitle": "String", + "xlinkType": "String", + "xmlBase": "String", + "xmlLang": "String", + "xmlSpace": "String", + "xmlns": "String", + "xmlnsXlink": "String", + "y": "String", + "y1": "String", + "y2": "String", + "yChannelSelector": "String", + "z": "String", + "zoomAndPan": "String" +}; + +printRecord = (elProps) => ` + ( ${ elProps.map((p) => + `${p} :: ${types[p]}`).join('\n , ') + } + )` + +props.elements.html + .map((e) =>` + type Props_${e} = ${ + props[e] + ? printRecord(props[e]) + : '()' + } + + ${e} + :: forall attrs attrs_ + . Union attrs attrs_ (SharedProps Props_${e})) + => Record attrs + -> Array JSX + -> JSX + ${e} = ${voids.indexOf(e) >= 0 ? 'createElementNoChildren' : 'createElement'} "${e}" +`).forEach((x) => console.log(x.replace(/^\n\ {4}/, '').replace(/\n\ {4}/g, '\n'))) diff --git a/codegen/package.json b/codegen/package.json new file mode 100644 index 0000000..9b57f88 --- /dev/null +++ b/codegen/package.json @@ -0,0 +1,10 @@ +{ + "name": "purescript-react-basic-codegen", + "version": "1.0.0", + "description": "", + "main": "index.js", + "author": "", + "dependencies": { + "react-html-attributes": "^1.4.1" + } +} From ebd1378286874f68fe36c4adfb50c5d3ddc13454 Mon Sep 17 00:00:00 2001 From: Phil Freeman Date: Thu, 11 Jan 2018 15:38:28 -0800 Subject: [PATCH 2/3] Simplify the types list --- codegen/index.js | 404 +---------------------------------------------- 1 file changed, 1 insertion(+), 403 deletions(-) diff --git a/codegen/index.js b/codegen/index.js index 0c49c8d..68110fc 100644 --- a/codegen/index.js +++ b/codegen/index.js @@ -1,444 +1,42 @@ const props = require('react-html-attributes'); const voids = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr']; const types = { - "about": "String", - "accentHeight": "String", - "accept": "String", - "acceptCharset": "String", - "accessKey": "String", - "accumulate": "String", - "action": "String", - "additive": "String", - "alignmentBaseline": "String", "allowFullScreen": "Boolean", - "allowReorder": "String", - "allowTransparency": "String", - "alphabetic": "String", - "alt": "String", - "amplitude": "String", - "arabicForm": "String", - "aria-activedescendant": "String", - "aria-atomic": "String", - "aria-autocomplete": "String", - "aria-busy": "String", - "aria-checked": "String", - "aria-colcount": "String", - "aria-colindex": "String", - "aria-colspan": "String", - "aria-controls": "String", - "aria-current": "String", - "aria-describedby": "String", - "aria-details": "String", - "aria-disabled": "String", - "aria-dropeffect": "String", - "aria-errormessage": "String", - "aria-expanded": "String", - "aria-flowto": "String", - "aria-grabbed": "String", - "aria-haspopup": "String", - "aria-hidden": "String", - "aria-invalid": "String", - "aria-keyshortcuts": "String", - "aria-label": "String", - "aria-labelledby": "String", - "aria-level": "String", - "aria-live": "String", - "aria-modal": "String", - "aria-multiline": "String", - "aria-multiselectable": "String", - "aria-orientation": "String", - "aria-owns": "String", - "aria-placeholder": "String", - "aria-posinset": "String", - "aria-pressed": "String", - "aria-readonly": "String", - "aria-relevant": "String", - "aria-required": "String", - "aria-roledescription": "String", - "aria-rowcount": "String", - "aria-rowindex": "String", - "aria-rowspan": "String", - "aria-selected": "String", - "aria-setsize": "String", - "aria-sort": "String", - "aria-valuemax": "String", - "aria-valuemin": "String", - "aria-valuenow": "String", - "aria-valuetext": "String", - "as": "String", - "ascent": "String", "async": "Boolean", - "attributeName": "String", - "attributeType": "String", - "autoCapitalize": "String", - "autoComplete": "String", - "autoCorrect": "String", "autoPlay": "Boolean", - "autoReverse": "String", - "autoSave": "String", - "azimuth": "String", - "baseFrequency": "String", - "baseProfile": "String", - "baselineShift": "String", - "bbox": "String", - "begin": "String", - "bias": "String", - "by": "String", - "calcMode": "String", - "capHeight": "String", "capture": "Boolean", - "cellPadding": "String", - "cellSpacing": "String", - "challenge": "String", - "charSet": "String", "checked": "Boolean", - "cite": "String", - "classID": "String", - "className": "String", - "clip": "String", - "clipPath": "String", - "clipPathUnits": "String", - "clipRule": "String", - "colSpan": "String", - "color": "String", - "colorInterpolation": "String", - "colorInterpolationFilters": "String", - "colorProfile": "String", - "colorRendering": "String", "cols": "Number", - "content": "String", - "contentEditable": "String", - "contentScriptType": "String", - "contentStyleType": "String", - "contextMenu": "String", "controls": "Boolean", - "controlsList": "String", - "coords": "String", - "crossOrigin": "String", - "cursor": "String", - "cx": "String", - "cy": "String", - "d": "String", - "data": "String", - "datatype": "String", - "dateTime": "String", - "decelerate": "String", "default": "Boolean", "defer": "Boolean", - "descent": "String", - "diffuseConstant": "String", - "dir": "String", - "direction": "String", "disabled": "Boolean", - "display": "String", - "divisor": "String", - "dominantBaseline": "String", - "download": "String", - "draggable": "String", - "dur": "String", - "dx": "String", - "dy": "String", - "edgeMode": "String", - "elevation": "String", - "enableBackground": "String", - "encType": "String", - "end": "String", - "exponent": "String", - "externalResourcesRequired": "String", - "fill": "String", - "fillOpacity": "String", - "fillRule": "String", - "filter": "String", - "filterRes": "String", - "filterUnits": "String", - "floodColor": "String", - "floodOpacity": "String", - "focusable": "String", - "fontFamily": "String", - "fontSize": "String", - "fontSizeAdjust": "String", - "fontStretch": "String", - "fontStyle": "String", - "fontVariant": "String", - "fontWeight": "String", - "form": "String", - "formAction": "String", - "formEncType": "String", - "formMethod": "String", "formNoValidate": "Boolean", - "formTarget": "String", - "format": "String", - "frameBorder": "String", - "from": "String", - "fx": "String", - "fy": "String", - "g1": "String", - "g2": "String", - "glyphName": "String", - "glyphOrientationHorizontal": "String", - "glyphOrientationVertical": "String", - "glyphRef": "String", - "gradientTransform": "String", - "gradientUnits": "String", - "hanging": "String", - "headers": "String", - "height": "String", "hidden": "Boolean", - "high": "String", - "horizAdvX": "String", - "horizOriginX": "String", - "href": "String", - "hrefLang": "String", - "htmlFor": "String", - "httpEquiv": "String", - "icon": "String", - "id": "String", - "ideographic": "String", - "imageRendering": "String", - "in": "String", - "in2": "String", - "inlist": "String", - "inputMode": "String", - "integrity": "String", - "intercept": "String", - "is": "String", - "itemID": "String", - "itemProp": "String", - "itemRef": "String", "itemScope": "Boolean", - "itemType": "String", - "k": "String", - "k1": "String", - "k2": "String", - "k3": "String", - "k4": "String", - "kernelMatrix": "String", - "kernelUnitLength": "String", - "kerning": "String", - "keyParams": "String", - "keyPoints": "String", - "keySplines": "String", - "keyTimes": "String", - "keyType": "String", - "kind": "String", - "label": "String", - "lang": "String", - "lengthAdjust": "String", - "letterSpacing": "String", - "lightingColor": "String", - "limitingConeAngle": "String", - "list": "String", - "local": "String", "loop": "Boolean", - "low": "String", - "manifest": "String", - "marginHeight": "String", - "marginWidth": "String", - "markerEnd": "String", - "markerHeight": "String", - "markerMid": "String", - "markerStart": "String", - "markerUnits": "String", - "markerWidth": "String", - "mask": "String", - "maskContentUnits": "String", - "maskUnits": "String", - "mathematical": "String", - "max": "String", - "maxLength": "String", - "media": "String", - "mediaGroup": "String", - "method": "String", - "min": "String", - "minLength": "String", - "mode": "String", "multiple": "Boolean", "muted": "Boolean", - "name": "String", "noValidate": "Boolean", - "nonce": "String", - "numOctaves": "String", - "offset": "String", - "opacity": "String", "open": "Boolean", - "operator": "String", - "optimum": "String", - "order": "String", - "orient": "String", - "orientation": "String", - "origin": "String", - "overflow": "String", - "overlinePosition": "String", - "overlineThickness": "String", - "paintOrder": "String", - "panose1": "String", - "pathLength": "String", - "pattern": "String", - "patternContentUnits": "String", - "patternTransform": "String", - "patternUnits": "String", - "placeholder": "String", "playsInline": "Boolean", - "pointerEvents": "String", - "points": "String", - "pointsAtX": "String", - "pointsAtY": "String", - "pointsAtZ": "String", - "poster": "String", - "prefix": "String", - "preload": "String", - "preserveAlpha": "String", - "preserveAspectRatio": "String", - "primitiveUnits": "String", - "profile": "String", - "property": "String", - "r": "String", - "radioGroup": "String", - "radius": "String", "readOnly": "Boolean", - "refX": "String", - "refY": "String", - "referrerPolicy": "String", - "rel": "String", - "renderingIntent": "String", - "repeatCount": "String", - "repeatDur": "String", "required": "Boolean", - "requiredExtensions": "String", - "requiredFeatures": "String", - "resource": "String", - "restart": "String", - "result": "String", - "results": "String", "reversed": "Boolean", - "role": "String", - "rotate": "String", "rowSpan": "Number", "rows": "Number", - "rx": "String", - "ry": "String", - "sandbox": "String", - "scale": "String", - "scope": "String", "scoped": "Boolean", - "scrolling": "String", "seamless": "Boolean", - "security": "String", - "seed": "String", "selected": "Boolean", - "shape": "String", - "shapeRendering": "String", "size": "Number", - "sizes": "String", - "slope": "String", - "spacing": "String", "span": "Number", - "specularConstant": "String", - "specularExponent": "String", - "speed": "String", - "spellCheck": "String", - "spreadMethod": "String", - "src": "String", - "srcDoc": "String", - "srcLang": "String", - "srcSet": "String", "start": "Number", - "startOffset": "String", - "stdDeviation": "String", - "stemh": "String", - "stemv": "String", - "step": "String", - "stitchTiles": "String", - "stopColor": "String", - "stopOpacity": "String", - "strikethroughPosition": "String", - "strikethroughThickness": "String", - "string": "String", - "stroke": "String", - "strokeDasharray": "String", - "strokeDashoffset": "String", - "strokeLinecap": "String", - "strokeLinejoin": "String", - "strokeMiterlimit": "String", - "strokeOpacity": "String", - "strokeWidth": "String", - "style": "String", - "summary": "String", - "surfaceScale": "String", - "systemLanguage": "String", - "tabIndex": "String", - "tableValues": "String", - "target": "String", - "targetX": "String", - "targetY": "String", - "textAnchor": "String", - "textDecoration": "String", - "textLength": "String", - "textRendering": "String", - "title": "String", - "to": "String", - "transform": "String", - "type": "String", - "typeof": "String", - "u1": "String", - "u2": "String", - "underlinePosition": "String", - "underlineThickness": "String", - "unicode": "String", - "unicodeBidi": "String", - "unicodeRange": "String", - "unitsPerEm": "String", - "unselectable": "String", - "useMap": "String", - "vAlphabetic": "String", - "vHanging": "String", - "vIdeographic": "String", - "vMathematical": "String", - "value": "String", - "values": "String", - "vectorEffect": "String", - "version": "String", - "vertAdvY": "String", - "vertOriginX": "String", - "vertOriginY": "String", - "viewBox": "String", - "viewTarget": "String", - "visibility": "String", - "vocab": "String", - "width": "String", - "widths": "String", - "wmode": "String", - "wordSpacing": "String", - "wrap": "String", - "writingMode": "String", - "x": "String", - "x1": "String", - "x2": "String", - "xChannelSelector": "String", - "xHeight": "String", - "xlinkActuate": "String", - "xlinkArcrole": "String", - "xlinkHref": "String", - "xlinkRole": "String", - "xlinkShow": "String", - "xlinkTitle": "String", - "xlinkType": "String", - "xmlBase": "String", - "xmlLang": "String", - "xmlSpace": "String", - "xmlns": "String", - "xmlnsXlink": "String", - "y": "String", - "y1": "String", - "y2": "String", - "yChannelSelector": "String", - "z": "String", "zoomAndPan": "String" }; printRecord = (elProps) => ` ( ${ elProps.map((p) => - `${p} :: ${types[p]}`).join('\n , ') + `${p} :: ${types[p] || 'String'}`).join('\n , ') } )` From 82839faeeceb46f2289a8dbc484a492ff2d34fa2 Mon Sep 17 00:00:00 2001 From: Phil Freeman Date: Thu, 11 Jan 2018 15:40:46 -0800 Subject: [PATCH 3/3] Add DEPENDENCIES file --- DEPENDENCIES | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 DEPENDENCIES diff --git a/DEPENDENCIES b/DEPENDENCIES new file mode 100644 index 0000000..3635f89 --- /dev/null +++ b/DEPENDENCIES @@ -0,0 +1,22 @@ +react-html-attributes is used here during code generation, under the terms of the MIT license: + + The MIT License (MIT) + Copyright (c) 2017 Jacky Ho + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE.