mirror of
https://github.com/ryannhg/elm-spa.git
synced 2024-11-22 09:44:55 +03:00
the computer did it
This commit is contained in:
parent
5ca17aac39
commit
4ed173c2fc
400
cli/package-lock.json
generated
400
cli/package-lock.json
generated
@ -1,403 +1,5 @@
|
||||
{
|
||||
"name": "elm-spa",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.10.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"dev": true
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"dev": true
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
|
||||
"dev": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"dev": true
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"elm": {
|
||||
"version": "0.19.1-3",
|
||||
"resolved": "https://registry.npmjs.org/elm/-/elm-0.19.1-3.tgz",
|
||||
"integrity": "sha512-6y36ewCcVmTOx8lj7cKJs3bhI5qMfoVEigePZ9PhEUNKpwjjML/pU2u2YSpHVAznuCcojoF6KIsrS1Ci7GtVaQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"request": "^2.88.0"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
||||
"dev": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
||||
"dev": true
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
|
||||
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
|
||||
"dev": true
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
|
||||
"dev": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"dev": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
||||
"dev": true
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
|
||||
"dev": true
|
||||
},
|
||||
"jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
|
||||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
|
||||
"dev": true
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
||||
"dev": true
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||
"dev": true
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.42.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz",
|
||||
"integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.25",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz",
|
||||
"integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "1.42.0"
|
||||
}
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
||||
"dev": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"dev": true
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
|
||||
"integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==",
|
||||
"dev": true
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.88.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.0",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.4.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
|
||||
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
|
||||
"dev": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||
"dev": true
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.3",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
|
||||
"dev": true
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
"lockfileVersion": 1
|
||||
}
|
||||
|
@ -321,7 +321,7 @@ module {{pagesModuleName}} exposing
|
||||
)
|
||||
|
||||
import App.Page
|
||||
import Layout as Layout
|
||||
import {{layoutModuleName}} as Layout
|
||||
import Utils.Spa as Spa
|
||||
import {{paramsModuleName}} as Params
|
||||
import {{routeModuleName}} as Route exposing (Route)
|
||||
@ -381,7 +381,7 @@ init route_ =
|
||||
update : Msg -> Model -> Spa.Update Model Msg
|
||||
update bigMsg bigModel =
|
||||
{{pagesUpdateFunction}}
|
||||
|
||||
{{defaultUpdateCase}}
|
||||
|
||||
|
||||
-- BUNDLE
|
||||
@ -392,6 +392,7 @@ bundle bigModel =
|
||||
{{pagesBundleFunction}}
|
||||
"""
|
||||
|> String.replace "{{pagesModuleName}}" (pagesModuleName details.moduleName)
|
||||
|> String.replace "{{layoutModuleName}}" (pagesLayoutModuleName details.moduleName)
|
||||
|> String.replace "{{paramsModuleName}}" (paramsModuleName details.moduleName)
|
||||
|> String.replace "{{routeModuleName}}" (routeModuleName details.moduleName)
|
||||
|> String.replace "{{pagesPageImports}}" (pagesPageImports details.files)
|
||||
@ -404,9 +405,26 @@ bundle bigModel =
|
||||
|> String.replace "{{pagesInitFunction}}" (pagesInitFunction details)
|
||||
|> String.replace "{{pagesUpdateFunction}}" (pagesUpdateFunction details)
|
||||
|> String.replace "{{pagesBundleFunction}}" (pagesBundleFunction details)
|
||||
|> String.replace "{{defaultUpdateCase}}"
|
||||
(if List.length (details.files ++ details.folders) < 2 then
|
||||
""
|
||||
|
||||
else
|
||||
"_ ->\n App.Page.keep bigModel" |> indent 2
|
||||
)
|
||||
|> String.trim
|
||||
|
||||
|
||||
pagesLayoutModuleName : String -> String
|
||||
pagesLayoutModuleName str =
|
||||
case str of
|
||||
"" ->
|
||||
"Layout"
|
||||
|
||||
_ ->
|
||||
"Layouts." ++ str
|
||||
|
||||
|
||||
pagesModuleName : String -> String
|
||||
pagesModuleName =
|
||||
moduleNameFor "Pages"
|
||||
@ -421,7 +439,8 @@ pagesPageImports files =
|
||||
|
||||
pagesPageModule : Filepath -> String
|
||||
pagesPageModule path =
|
||||
last path
|
||||
path
|
||||
|> String.join "."
|
||||
|> String.append "Pages."
|
||||
|
||||
|
||||
@ -452,7 +471,7 @@ pagesCustomTypes type_ { files, folders } =
|
||||
last path
|
||||
in
|
||||
( name ++ "_Folder_" ++ type_
|
||||
, pagesModuleName name ++ "." ++ type_
|
||||
, pagesModuleName (String.join "." path) ++ "." ++ type_
|
||||
)
|
||||
in
|
||||
List.concat
|
||||
@ -590,7 +609,7 @@ pagesUpdateFunction : Details -> String
|
||||
pagesUpdateFunction details =
|
||||
toItems details
|
||||
|> List.map pagesToUpdate
|
||||
|> asCaseExpression "route_"
|
||||
|> asCaseExpression "( bigMsg, bigModel )"
|
||||
|> indent 1
|
||||
|
||||
|
||||
@ -618,7 +637,7 @@ pagesBundleFunction : Details -> String
|
||||
pagesBundleFunction details =
|
||||
toItems details
|
||||
|> List.map pagesToBundle
|
||||
|> asCaseExpression "route_"
|
||||
|> asCaseExpression "bigModel"
|
||||
|> indent 1
|
||||
|
||||
|
||||
@ -631,7 +650,7 @@ pagesToBundle item =
|
||||
|> String.replace "{{uncapitalized}}" (uncapitalize (last path))
|
||||
|
||||
DynamicFile path ->
|
||||
"Dynamic model ->\n recipes.dynamic.bundle model"
|
||||
"DynamicModel model ->\n recipes.dynamic.bundle model"
|
||||
|
||||
StaticFolder path ->
|
||||
"{{name}}_Folder_Model model ->\n recipes.{{uncapitalized}}_folder.bundle model"
|
||||
@ -639,7 +658,7 @@ pagesToBundle item =
|
||||
|> String.replace "{{uncapitalized}}" (uncapitalize (last path))
|
||||
|
||||
DynamicFolder path ->
|
||||
"Dynamic_Folder model ->\n recipes.dynamic_folder.bundle model"
|
||||
"Dynamic_Folder_Model model ->\n recipes.dynamic_folder.bundle model"
|
||||
|
||||
|
||||
|
||||
|
@ -8,7 +8,9 @@ import Set exposing (Set)
|
||||
|
||||
|
||||
type alias Flags =
|
||||
List Filepath
|
||||
{ command : String
|
||||
, paths : List Filepath
|
||||
}
|
||||
|
||||
|
||||
type alias Filepath =
|
||||
@ -18,14 +20,24 @@ type alias Filepath =
|
||||
main : Program Flags () Never
|
||||
main =
|
||||
Platform.worker
|
||||
{ init = \json -> ( (), parse json )
|
||||
{ init = \flags -> ( (), handle flags )
|
||||
, update = \_ model -> ( model, Cmd.none )
|
||||
, subscriptions = always Sub.none
|
||||
}
|
||||
|
||||
|
||||
parse : List Filepath -> Cmd msg
|
||||
parse files =
|
||||
handle : Flags -> Cmd msg
|
||||
handle flags =
|
||||
case flags.command of
|
||||
"build" ->
|
||||
build flags.paths
|
||||
|
||||
_ ->
|
||||
Cmd.none
|
||||
|
||||
|
||||
build : List Filepath -> Cmd msg
|
||||
build files =
|
||||
List.concat
|
||||
[ [ File [ "Routes" ] (File.routes files) ]
|
||||
, files
|
||||
@ -37,7 +49,7 @@ parse files =
|
||||
, File.pages
|
||||
]
|
||||
]
|
||||
|> Ports.sendFiles
|
||||
|> Ports.generate
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
port module Ports exposing (sendFiles)
|
||||
port module Ports exposing (generate)
|
||||
|
||||
import File exposing (File)
|
||||
import Json.Encode as Json
|
||||
@ -11,9 +11,9 @@ port outgoing :
|
||||
-> Cmd msg
|
||||
|
||||
|
||||
sendFiles : List File -> Cmd msg
|
||||
sendFiles files =
|
||||
generate : List File -> Cmd msg
|
||||
generate files =
|
||||
outgoing
|
||||
{ message = "sendFiles"
|
||||
{ message = "generate"
|
||||
, data = Json.list File.encode files
|
||||
}
|
||||
|
58
cli/src/index.js
Normal file → Executable file
58
cli/src/index.js
Normal file → Executable file
@ -1,11 +1,61 @@
|
||||
const path = require('path')
|
||||
const cwd = process.cwd()
|
||||
const { File, Elm } = require('./utils.js')
|
||||
const { File, Elm, bold } = require('./utils.js')
|
||||
|
||||
const start = () =>
|
||||
File.paths(path.join(cwd, '..', 'examples', 'complex', 'src', 'Pages'))
|
||||
.then(Elm.run)
|
||||
const start = ([ command, ...args ] = []) =>
|
||||
commands[command]
|
||||
? commands[command](args)
|
||||
: commands.help(args)
|
||||
|
||||
// elm-spa build
|
||||
const build = ([ relative = '.' ]) =>
|
||||
File.paths(path.join(cwd, relative, 'src', 'Pages'))
|
||||
.then(Elm.run('build', { relative }))
|
||||
.then(console.info)
|
||||
.catch(console.error)
|
||||
|
||||
const help = () => console.info(`
|
||||
usage: ${bold('elm-spa')} <command> [...]
|
||||
|
||||
commands:
|
||||
|
||||
${bold('init')} [options] <path> create a new project at <path>
|
||||
|
||||
options:
|
||||
${bold('--ui=')}<module> the module your \`view\` uses (default: Html)
|
||||
|
||||
examples:
|
||||
${bold('elm-spa init your-project')}
|
||||
${bold('elm-spa init --ui=Element your-project')}
|
||||
|
||||
|
||||
${bold('build')} <path> generate pages and routes
|
||||
|
||||
examples:
|
||||
${bold('elm-spa build .')}
|
||||
|
||||
|
||||
${bold('add')} static <module> create a new static page
|
||||
sandbox <module> create a new sandbox page
|
||||
element <module> create a new element page
|
||||
component <module> create a new component page
|
||||
|
||||
examples:
|
||||
${bold('elm-spa add static AboutUs')}
|
||||
${bold('elm-spa add element Settings.Index')}
|
||||
|
||||
|
||||
${bold('help')} print this help screen
|
||||
|
||||
examples:
|
||||
${bold('elm-spa help')}
|
||||
${bold('elm-spa wat')}
|
||||
${bold('elm-spa huh?')}
|
||||
`)
|
||||
|
||||
const commands = {
|
||||
build,
|
||||
help
|
||||
}
|
||||
|
||||
start(process.argv.slice(2))
|
@ -1,6 +1,8 @@
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const cwd = process.cwd()
|
||||
|
||||
const File = (_ => {
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
|
||||
const mkdir = (filepath) =>
|
||||
new Promise((resolve, reject) =>
|
||||
@ -8,6 +10,9 @@ const File = (_ => {
|
||||
)
|
||||
|
||||
const create = (filepath, contents) => {
|
||||
// this will surely break windows, im tired and sorry i wrote this line.
|
||||
const folderOf = (path) => path.split('/').slice(0, -1).join('/')
|
||||
|
||||
const write = (filepath, contents) =>
|
||||
new Promise((resolve, reject) =>
|
||||
fs.writeFile(filepath, contents, { encoding: 'utf8' }, (err) =>
|
||||
@ -61,20 +66,24 @@ const Elm = (_ => {
|
||||
const { Elm } = require('../dist/elm.compiled.js')
|
||||
|
||||
const handlers = {
|
||||
sendFiles: (data) =>
|
||||
data.forEach(a =>
|
||||
console.log() ||
|
||||
console.log(bold(a.filepath.join('/') + '.elm')) ||
|
||||
console.log('\n' + a.contents + '\n'))
|
||||
generate: ({ relative }, files) =>
|
||||
Promise.all(
|
||||
files
|
||||
.map(item => ({
|
||||
...item,
|
||||
filepath: path.join(cwd, relative, 'elm-stuff', '.elm-spa', 'Generated', ...item.filepath) + '.elm'
|
||||
}))
|
||||
.map(item => File.create(item.filepath, item.contents))
|
||||
)
|
||||
}
|
||||
|
||||
const run = paths =>
|
||||
const run = (command, args) => (paths) =>
|
||||
new Promise((resolve, reject) => {
|
||||
const app = Elm.Main.init({ flags: paths })
|
||||
const app = Elm.Main.init({ flags: { command, paths } })
|
||||
|
||||
app.ports.outgoing.subscribe(({ message, data }) =>
|
||||
handlers[message]
|
||||
? Promise.resolve(handlers[message](data)).then(resolve).catch(reject)
|
||||
? Promise.resolve(handlers[message](args, data)).then(resolve).catch(reject)
|
||||
: reject(`Didn't recognize message "${message}"– Yell at @ryannhg on the internet!\n`)
|
||||
)
|
||||
})
|
||||
@ -86,5 +95,6 @@ const bold = str => '\033[1m' + str + '\033[0m'
|
||||
|
||||
module.exports = {
|
||||
Elm,
|
||||
File
|
||||
File,
|
||||
bold
|
||||
}
|
@ -5,12 +5,14 @@ module Generated.Docs.Pages exposing
|
||||
)
|
||||
|
||||
import App.Page
|
||||
import Layouts.Docs as Layout
|
||||
import Utils.Spa as Spa
|
||||
import Generated.Docs.Params as Params
|
||||
import Generated.Docs.Route as Route exposing (Route)
|
||||
import Layouts.Docs as Layout
|
||||
import Pages.Docs.Dynamic
|
||||
import Pages.Docs.Static
|
||||
import Utils.Spa as Spa exposing (Page)
|
||||
|
||||
|
||||
|
||||
|
||||
type Model
|
||||
@ -23,7 +25,7 @@ type Msg
|
||||
| StaticMsg Pages.Docs.Static.Msg
|
||||
|
||||
|
||||
page : Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page : Spa.Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page =
|
||||
Spa.layout
|
||||
{ view = Layout.view
|
||||
@ -71,13 +73,13 @@ recipes =
|
||||
|
||||
|
||||
init : Route -> Spa.Init Model Msg
|
||||
init route =
|
||||
case route of
|
||||
Route.Dynamic _ flags ->
|
||||
recipes.dynamic.init flags
|
||||
|
||||
Route.Static flags ->
|
||||
recipes.static.init flags
|
||||
init route_ =
|
||||
case route_ of
|
||||
Route.Static params ->
|
||||
recipes.static.init params
|
||||
|
||||
Route.Dynamic _ params ->
|
||||
recipes.dynamic.init params
|
||||
|
||||
|
||||
|
||||
@ -87,25 +89,23 @@ init route =
|
||||
update : Msg -> Model -> Spa.Update Model Msg
|
||||
update bigMsg bigModel =
|
||||
case ( bigMsg, bigModel ) of
|
||||
( DynamicMsg msg, DynamicModel model ) ->
|
||||
recipes.dynamic.update msg model
|
||||
|
||||
( StaticMsg msg, StaticModel model ) ->
|
||||
recipes.static.update msg model
|
||||
|
||||
|
||||
( DynamicMsg msg, DynamicModel model ) ->
|
||||
recipes.dynamic.update msg model
|
||||
_ ->
|
||||
App.Page.keep bigModel
|
||||
|
||||
|
||||
|
||||
-- BUNDLE
|
||||
|
||||
|
||||
bundle : Model -> Spa.Bundle Msg msg
|
||||
bundle bigModel =
|
||||
case bigModel of
|
||||
DynamicModel model ->
|
||||
recipes.dynamic.bundle model
|
||||
|
||||
StaticModel model ->
|
||||
recipes.static.bundle model
|
||||
|
||||
DynamicModel model ->
|
||||
recipes.dynamic.bundle model
|
@ -1,13 +1,10 @@
|
||||
module Generated.Docs.Params exposing
|
||||
( Dynamic
|
||||
, Static
|
||||
)
|
||||
|
||||
|
||||
type alias Static =
|
||||
{}
|
||||
module Generated.Docs.Params exposing (..)
|
||||
|
||||
|
||||
type alias Dynamic =
|
||||
{ param1 : String
|
||||
}
|
||||
|
||||
|
||||
type alias Static =
|
||||
{}
|
@ -7,8 +7,8 @@ import Generated.Docs.Params as Params
|
||||
|
||||
|
||||
type Route
|
||||
= Static Params.Static
|
||||
| Dynamic String Params.Dynamic
|
||||
= Dynamic String Params.Dynamic
|
||||
| Static Params.Static
|
||||
|
||||
|
||||
toPath : Route -> String
|
||||
@ -16,6 +16,7 @@ toPath route =
|
||||
case route of
|
||||
Static _ ->
|
||||
"/static"
|
||||
|
||||
|
||||
|
||||
Dynamic value _ ->
|
||||
"/" ++ value
|
||||
"/" ++ value
|
@ -5,11 +5,13 @@ module Generated.Guide.Dynamic.Dynamic.Pages exposing
|
||||
)
|
||||
|
||||
import App.Page
|
||||
import Layouts.Guide.Dynamic.Dynamic as Layout
|
||||
import Utils.Spa as Spa
|
||||
import Generated.Guide.Dynamic.Dynamic.Params as Params
|
||||
import Generated.Guide.Dynamic.Dynamic.Route as Route exposing (Route)
|
||||
import Layouts.Guide.Dynamic.Dynamic as Layout
|
||||
import Pages.Guide.Dynamic.Dynamic.Top
|
||||
import Utils.Spa as Spa exposing (Page)
|
||||
|
||||
|
||||
|
||||
|
||||
type Model
|
||||
@ -20,7 +22,7 @@ type Msg
|
||||
= TopMsg Pages.Guide.Dynamic.Dynamic.Top.Msg
|
||||
|
||||
|
||||
page : Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page : Spa.Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page =
|
||||
Spa.layout
|
||||
{ view = Layout.view
|
||||
@ -61,10 +63,10 @@ recipes =
|
||||
|
||||
|
||||
init : Route -> Spa.Init Model Msg
|
||||
init route =
|
||||
case route of
|
||||
Route.Top flags ->
|
||||
recipes.top.init flags
|
||||
init route_ =
|
||||
case route_ of
|
||||
Route.Top params ->
|
||||
recipes.top.init params
|
||||
|
||||
|
||||
|
||||
@ -86,4 +88,4 @@ bundle : Model -> Spa.Bundle Msg msg
|
||||
bundle bigModel =
|
||||
case bigModel of
|
||||
TopModel model ->
|
||||
recipes.top.bundle model
|
||||
recipes.top.bundle model
|
@ -1,7 +1,7 @@
|
||||
module Generated.Guide.Dynamic.Dynamic.Params exposing (Top)
|
||||
module Generated.Guide.Dynamic.Dynamic.Params exposing (..)
|
||||
|
||||
|
||||
type alias Top =
|
||||
{ param1 : String
|
||||
, param2 : String
|
||||
}
|
||||
}
|
@ -14,4 +14,4 @@ toPath : Route -> String
|
||||
toPath route =
|
||||
case route of
|
||||
Top _ ->
|
||||
"/"
|
||||
"/top"
|
@ -5,11 +5,13 @@ module Generated.Guide.Dynamic.Faq.Pages exposing
|
||||
)
|
||||
|
||||
import App.Page
|
||||
import Layouts.Guide.Dynamic.Faq as Layout
|
||||
import Utils.Spa as Spa
|
||||
import Generated.Guide.Dynamic.Faq.Params as Params
|
||||
import Generated.Guide.Dynamic.Faq.Route as Route exposing (Route)
|
||||
import Layouts.Guide.Dynamic.Faq as Layout
|
||||
import Pages.Guide.Dynamic.Faq.Top
|
||||
import Utils.Spa as Spa exposing (Page)
|
||||
|
||||
|
||||
|
||||
|
||||
type Model
|
||||
@ -20,7 +22,7 @@ type Msg
|
||||
= TopMsg Pages.Guide.Dynamic.Faq.Top.Msg
|
||||
|
||||
|
||||
page : Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page : Spa.Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page =
|
||||
Spa.layout
|
||||
{ view = Layout.view
|
||||
@ -61,10 +63,10 @@ recipes =
|
||||
|
||||
|
||||
init : Route -> Spa.Init Model Msg
|
||||
init route =
|
||||
case route of
|
||||
Route.Top flags ->
|
||||
recipes.top.init flags
|
||||
init route_ =
|
||||
case route_ of
|
||||
Route.Top params ->
|
||||
recipes.top.init params
|
||||
|
||||
|
||||
|
||||
@ -86,4 +88,4 @@ bundle : Model -> Spa.Bundle Msg msg
|
||||
bundle bigModel =
|
||||
case bigModel of
|
||||
TopModel model ->
|
||||
recipes.top.bundle model
|
||||
recipes.top.bundle model
|
@ -1,6 +1,6 @@
|
||||
module Generated.Guide.Dynamic.Faq.Params exposing (Top)
|
||||
module Generated.Guide.Dynamic.Faq.Params exposing (..)
|
||||
|
||||
|
||||
type alias Top =
|
||||
{ param1 : String
|
||||
}
|
||||
}
|
@ -14,4 +14,4 @@ toPath : Route -> String
|
||||
toPath route =
|
||||
case route of
|
||||
Top _ ->
|
||||
"/"
|
||||
"/top"
|
@ -5,36 +5,33 @@ module Generated.Guide.Dynamic.Pages exposing
|
||||
)
|
||||
|
||||
import App.Page
|
||||
import Generated.Guide.Dynamic.Dynamic.Pages
|
||||
import Generated.Guide.Dynamic.Dynamic.Route
|
||||
import Generated.Guide.Dynamic.Faq.Pages
|
||||
import Generated.Guide.Dynamic.Faq.Route
|
||||
import Layouts.Guide.Dynamic as Layout
|
||||
import Utils.Spa as Spa
|
||||
import Generated.Guide.Dynamic.Params as Params
|
||||
import Generated.Guide.Dynamic.Route as Route exposing (Route)
|
||||
import Layouts.Guide.Dynamic as Layout
|
||||
import Pages.Guide.Dynamic.Dynamic
|
||||
import Pages.Guide.Dynamic.Intro
|
||||
import Pages.Guide.Dynamic.Other
|
||||
import Utils.Spa as Spa exposing (Page)
|
||||
import Generated.Guide.Dynamic.Dynamic.Route
|
||||
import Generated.Guide.Dynamic.Faq.Route
|
||||
import Generated.Guide.Dynamic.Dynamic.Pages
|
||||
import Generated.Guide.Dynamic.Faq.Pages
|
||||
|
||||
|
||||
type Model
|
||||
= IntroModel Pages.Guide.Dynamic.Intro.Model
|
||||
| OtherModel Pages.Guide.Dynamic.Other.Model
|
||||
| DynamicModel Pages.Guide.Dynamic.Dynamic.Model
|
||||
| Faq_FolderModel Generated.Guide.Dynamic.Faq.Pages.Model
|
||||
| Dynamic_FolderModel Generated.Guide.Dynamic.Dynamic.Pages.Model
|
||||
| Dynamic_Folder_Model Generated.Guide.Dynamic.Dynamic.Pages.Model
|
||||
| Faq_Folder_Model Generated.Guide.Dynamic.Faq.Pages.Model
|
||||
|
||||
|
||||
type Msg
|
||||
= IntroMsg Pages.Guide.Dynamic.Intro.Msg
|
||||
| OtherMsg Pages.Guide.Dynamic.Other.Msg
|
||||
| DynamicMsg Pages.Guide.Dynamic.Dynamic.Msg
|
||||
| Faq_FolderMsg Generated.Guide.Dynamic.Faq.Pages.Msg
|
||||
| Dynamic_FolderMsg Generated.Guide.Dynamic.Dynamic.Pages.Msg
|
||||
| Dynamic_Folder_Msg Generated.Guide.Dynamic.Dynamic.Pages.Msg
|
||||
| Faq_Folder_Msg Generated.Guide.Dynamic.Faq.Pages.Msg
|
||||
|
||||
|
||||
page : Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page : Spa.Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page =
|
||||
Spa.layout
|
||||
{ view = Layout.view
|
||||
@ -57,9 +54,8 @@ type alias Recipe flags model msg appMsg =
|
||||
type alias Recipes msg =
|
||||
{ intro : Recipe Params.Intro Pages.Guide.Dynamic.Intro.Model Pages.Guide.Dynamic.Intro.Msg msg
|
||||
, other : Recipe Params.Other Pages.Guide.Dynamic.Other.Model Pages.Guide.Dynamic.Other.Msg msg
|
||||
, dynamic : Recipe Params.Dynamic Pages.Guide.Dynamic.Dynamic.Model Pages.Guide.Dynamic.Dynamic.Msg msg
|
||||
, faq_folder : Recipe Generated.Guide.Dynamic.Faq.Route.Route Generated.Guide.Dynamic.Faq.Pages.Model Generated.Guide.Dynamic.Faq.Pages.Msg msg
|
||||
, dynamic_folder : Recipe Generated.Guide.Dynamic.Dynamic.Route.Route Generated.Guide.Dynamic.Dynamic.Pages.Model Generated.Guide.Dynamic.Dynamic.Pages.Msg msg
|
||||
, faq_folder : Recipe Generated.Guide.Dynamic.Faq.Route.Route Generated.Guide.Dynamic.Faq.Pages.Model Generated.Guide.Dynamic.Faq.Pages.Msg msg
|
||||
}
|
||||
|
||||
|
||||
@ -77,23 +73,17 @@ recipes =
|
||||
, toModel = OtherModel
|
||||
, toMsg = OtherMsg
|
||||
}
|
||||
, dynamic =
|
||||
, dynamic_folder =
|
||||
Spa.recipe
|
||||
{ page = Pages.Guide.Dynamic.Dynamic.page
|
||||
, toModel = DynamicModel
|
||||
, toMsg = DynamicMsg
|
||||
{ page = Generated.Guide.Dynamic.Dynamic.Pages.page
|
||||
, toModel = Dynamic_Folder_Model
|
||||
, toMsg = Dynamic_Folder_Msg
|
||||
}
|
||||
, faq_folder =
|
||||
Spa.recipe
|
||||
{ page = Generated.Guide.Dynamic.Faq.Pages.page
|
||||
, toModel = Faq_FolderModel
|
||||
, toMsg = Faq_FolderMsg
|
||||
}
|
||||
, dynamic_folder =
|
||||
Spa.recipe
|
||||
{ page = Generated.Guide.Dynamic.Dynamic.Pages.page
|
||||
, toModel = Dynamic_FolderModel
|
||||
, toMsg = Dynamic_FolderMsg
|
||||
, toModel = Faq_Folder_Model
|
||||
, toMsg = Faq_Folder_Msg
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,22 +93,19 @@ recipes =
|
||||
|
||||
|
||||
init : Route -> Spa.Init Model Msg
|
||||
init route =
|
||||
case route of
|
||||
Route.Intro flags ->
|
||||
recipes.intro.init flags
|
||||
|
||||
Route.Other flags ->
|
||||
recipes.other.init flags
|
||||
|
||||
Route.Dynamic _ flags ->
|
||||
recipes.dynamic.init flags
|
||||
|
||||
Route.Faq_Folder flags ->
|
||||
recipes.faq_folder.init flags
|
||||
|
||||
Route.Dynamic_Folder _ flags ->
|
||||
recipes.dynamic_folder.init flags
|
||||
init route_ =
|
||||
case route_ of
|
||||
Route.Intro params ->
|
||||
recipes.intro.init params
|
||||
|
||||
Route.Other params ->
|
||||
recipes.other.init params
|
||||
|
||||
Route.Faq_Folder route ->
|
||||
recipes.faq_folder.init route
|
||||
|
||||
Route.Dynamic_Folder _ route ->
|
||||
recipes.dynamic_folder.init route
|
||||
|
||||
|
||||
|
||||
@ -130,24 +117,19 @@ update bigMsg bigModel =
|
||||
case ( bigMsg, bigModel ) of
|
||||
( IntroMsg msg, IntroModel model ) ->
|
||||
recipes.intro.update msg model
|
||||
|
||||
|
||||
( OtherMsg msg, OtherModel model ) ->
|
||||
recipes.other.update msg model
|
||||
|
||||
( DynamicMsg msg, DynamicModel model ) ->
|
||||
recipes.dynamic.update msg model
|
||||
|
||||
( Faq_FolderMsg msg, Faq_FolderModel model ) ->
|
||||
|
||||
( Faq_Folder_Msg msg, Faq_Folder_Model model ) ->
|
||||
recipes.faq_folder.update msg model
|
||||
|
||||
( Dynamic_FolderMsg msg, Dynamic_FolderModel model ) ->
|
||||
|
||||
( Dynamic_Folder_Msg msg, Dynamic_Folder_Model model ) ->
|
||||
recipes.dynamic_folder.update msg model
|
||||
|
||||
_ ->
|
||||
App.Page.keep bigModel
|
||||
|
||||
|
||||
|
||||
-- BUNDLE
|
||||
|
||||
|
||||
@ -156,15 +138,12 @@ bundle bigModel =
|
||||
case bigModel of
|
||||
IntroModel model ->
|
||||
recipes.intro.bundle model
|
||||
|
||||
|
||||
OtherModel model ->
|
||||
recipes.other.bundle model
|
||||
|
||||
DynamicModel model ->
|
||||
recipes.dynamic.bundle model
|
||||
|
||||
Faq_FolderModel model ->
|
||||
|
||||
Faq_Folder_Model model ->
|
||||
recipes.faq_folder.bundle model
|
||||
|
||||
Dynamic_FolderModel model ->
|
||||
recipes.dynamic_folder.bundle model
|
||||
|
||||
Dynamic_Folder_Model model ->
|
||||
recipes.dynamic_folder.bundle model
|
@ -1,8 +1,4 @@
|
||||
module Generated.Guide.Dynamic.Params exposing
|
||||
( Dynamic
|
||||
, Intro
|
||||
, Other
|
||||
)
|
||||
module Generated.Guide.Dynamic.Params exposing (..)
|
||||
|
||||
|
||||
type alias Intro =
|
||||
@ -12,10 +8,4 @@ type alias Intro =
|
||||
|
||||
type alias Other =
|
||||
{ param1 : String
|
||||
}
|
||||
|
||||
|
||||
type alias Dynamic =
|
||||
{ param1 : String
|
||||
, param2 : String
|
||||
}
|
||||
}
|
@ -3,17 +3,16 @@ module Generated.Guide.Dynamic.Route exposing
|
||||
, toPath
|
||||
)
|
||||
|
||||
import Generated.Guide.Dynamic.Params as Params
|
||||
import Generated.Guide.Dynamic.Dynamic.Route
|
||||
import Generated.Guide.Dynamic.Faq.Route
|
||||
import Generated.Guide.Dynamic.Params as Params
|
||||
|
||||
|
||||
type Route
|
||||
= Intro Params.Intro
|
||||
| Other Params.Other
|
||||
| Dynamic String Params.Dynamic
|
||||
| Faq_Folder Generated.Guide.Dynamic.Faq.Route.Route
|
||||
| Dynamic_Folder String Generated.Guide.Dynamic.Dynamic.Route.Route
|
||||
| Faq_Folder Generated.Guide.Dynamic.Faq.Route.Route
|
||||
|
||||
|
||||
toPath : Route -> String
|
||||
@ -21,15 +20,15 @@ toPath route =
|
||||
case route of
|
||||
Intro _ ->
|
||||
"/intro"
|
||||
|
||||
|
||||
|
||||
Other _ ->
|
||||
"/other"
|
||||
|
||||
Dynamic value _ ->
|
||||
"/" ++ value
|
||||
|
||||
|
||||
|
||||
Faq_Folder subRoute ->
|
||||
"/faq" ++ Generated.Guide.Dynamic.Faq.Route.toPath subRoute
|
||||
|
||||
|
||||
|
||||
Dynamic_Folder value subRoute ->
|
||||
"/" ++ value ++ Generated.Guide.Dynamic.Dynamic.Route.toPath subRoute
|
||||
"/" ++ value ++ Generated.Guide.Dynamic.Dynamic.Route.toPath subRoute
|
@ -5,15 +5,15 @@ module Generated.Guide.Pages exposing
|
||||
)
|
||||
|
||||
import App.Page
|
||||
import Generated.Guide.Dynamic.Pages
|
||||
import Generated.Guide.Dynamic.Route
|
||||
import Layouts.Guide as Layout
|
||||
import Utils.Spa as Spa
|
||||
import Generated.Guide.Params as Params
|
||||
import Generated.Guide.Route as Route exposing (Route)
|
||||
import Layouts.Guide as Layout
|
||||
import Pages.Guide.Elm
|
||||
import Pages.Guide.ElmSpa
|
||||
import Pages.Guide.Programming
|
||||
import Utils.Spa as Spa exposing (Page)
|
||||
import Generated.Guide.Dynamic.Route
|
||||
import Generated.Guide.Dynamic.Pages
|
||||
|
||||
|
||||
type Model
|
||||
@ -30,7 +30,7 @@ type Msg
|
||||
| Dynamic_Folder_Msg Generated.Guide.Dynamic.Pages.Msg
|
||||
|
||||
|
||||
page : Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page : Spa.Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
page =
|
||||
Spa.layout
|
||||
{ view = Layout.view
|
||||
@ -52,7 +52,7 @@ type alias Recipe flags model msg appMsg =
|
||||
|
||||
type alias Recipes msg =
|
||||
{ elm : Recipe Params.Elm Pages.Guide.Elm.Model Pages.Guide.Elm.Msg msg
|
||||
, elmApp : Recipe Params.ElmSpa Pages.Guide.ElmSpa.Model Pages.Guide.ElmSpa.Msg msg
|
||||
, elmSpa : Recipe Params.ElmSpa Pages.Guide.ElmSpa.Model Pages.Guide.ElmSpa.Msg msg
|
||||
, programming : Recipe Params.Programming Pages.Guide.Programming.Model Pages.Guide.Programming.Msg msg
|
||||
, dynamic_folder : Recipe Generated.Guide.Dynamic.Route.Route Generated.Guide.Dynamic.Pages.Model Generated.Guide.Dynamic.Pages.Msg msg
|
||||
}
|
||||
@ -66,7 +66,7 @@ recipes =
|
||||
, toModel = ElmModel
|
||||
, toMsg = ElmMsg
|
||||
}
|
||||
, elmApp =
|
||||
, elmSpa =
|
||||
Spa.recipe
|
||||
{ page = Pages.Guide.ElmSpa.page
|
||||
, toModel = ElmSpaModel
|
||||
@ -92,19 +92,19 @@ recipes =
|
||||
|
||||
|
||||
init : Route -> Spa.Init Model Msg
|
||||
init route =
|
||||
case route of
|
||||
Route.Elm flags ->
|
||||
recipes.elm.init flags
|
||||
|
||||
Route.ElmSpa flags ->
|
||||
recipes.elmApp.init flags
|
||||
|
||||
Route.Programming flags ->
|
||||
recipes.programming.init flags
|
||||
|
||||
Route.Dynamic_Folder flags route_ ->
|
||||
recipes.dynamic_folder.init route_
|
||||
init route_ =
|
||||
case route_ of
|
||||
Route.Elm params ->
|
||||
recipes.elm.init params
|
||||
|
||||
Route.ElmSpa params ->
|
||||
recipes.elmSpa.init params
|
||||
|
||||
Route.Programming params ->
|
||||
recipes.programming.init params
|
||||
|
||||
Route.Dynamic_Folder _ route ->
|
||||
recipes.dynamic_folder.init route
|
||||
|
||||
|
||||
|
||||
@ -116,21 +116,19 @@ update bigMsg bigModel =
|
||||
case ( bigMsg, bigModel ) of
|
||||
( ElmMsg msg, ElmModel model ) ->
|
||||
recipes.elm.update msg model
|
||||
|
||||
|
||||
( ElmSpaMsg msg, ElmSpaModel model ) ->
|
||||
recipes.elmApp.update msg model
|
||||
|
||||
recipes.elmSpa.update msg model
|
||||
|
||||
( ProgrammingMsg msg, ProgrammingModel model ) ->
|
||||
recipes.programming.update msg model
|
||||
|
||||
|
||||
( Dynamic_Folder_Msg msg, Dynamic_Folder_Model model ) ->
|
||||
recipes.dynamic_folder.update msg model
|
||||
|
||||
_ ->
|
||||
App.Page.keep bigModel
|
||||
|
||||
|
||||
|
||||
-- BUNDLE
|
||||
|
||||
|
||||
@ -139,12 +137,12 @@ bundle bigModel =
|
||||
case bigModel of
|
||||
ElmModel model ->
|
||||
recipes.elm.bundle model
|
||||
|
||||
|
||||
ElmSpaModel model ->
|
||||
recipes.elmApp.bundle model
|
||||
|
||||
recipes.elmSpa.bundle model
|
||||
|
||||
ProgrammingModel model ->
|
||||
recipes.programming.bundle model
|
||||
|
||||
|
||||
Dynamic_Folder_Model model ->
|
||||
recipes.dynamic_folder.bundle model
|
||||
recipes.dynamic_folder.bundle model
|
@ -1,8 +1,4 @@
|
||||
module Generated.Guide.Params exposing
|
||||
( Elm
|
||||
, ElmSpa
|
||||
, Programming
|
||||
)
|
||||
module Generated.Guide.Params exposing (..)
|
||||
|
||||
|
||||
type alias Elm =
|
||||
@ -14,4 +10,4 @@ type alias ElmSpa =
|
||||
|
||||
|
||||
type alias Programming =
|
||||
{}
|
||||
{}
|
@ -3,15 +3,15 @@ module Generated.Guide.Route exposing
|
||||
, toPath
|
||||
)
|
||||
|
||||
import Generated.Guide.Dynamic.Route as Dynamic_Routes
|
||||
import Generated.Guide.Params as Params
|
||||
import Generated.Guide.Dynamic.Route
|
||||
|
||||
|
||||
type Route
|
||||
= Elm Params.Elm
|
||||
| ElmSpa Params.ElmSpa
|
||||
| Programming Params.Programming
|
||||
| Dynamic_Folder String Dynamic_Routes.Route
|
||||
| Dynamic_Folder String Generated.Guide.Dynamic.Route.Route
|
||||
|
||||
|
||||
toPath : Route -> String
|
||||
@ -19,12 +19,15 @@ toPath route =
|
||||
case route of
|
||||
Elm _ ->
|
||||
"/elm"
|
||||
|
||||
|
||||
|
||||
ElmSpa _ ->
|
||||
"/elm-spa"
|
||||
|
||||
|
||||
|
||||
Programming _ ->
|
||||
"/programming"
|
||||
|
||||
|
||||
|
||||
Dynamic_Folder value subRoute ->
|
||||
"/" ++ value ++ Dynamic_Routes.toPath subRoute
|
||||
"/" ++ value ++ Generated.Guide.Dynamic.Route.toPath subRoute
|
@ -5,39 +5,39 @@ module Generated.Pages exposing
|
||||
)
|
||||
|
||||
import App.Page
|
||||
import Generated.Docs.Pages
|
||||
import Generated.Docs.Route
|
||||
import Generated.Guide.Pages
|
||||
import Generated.Guide.Route
|
||||
import Layout as Layout
|
||||
import Utils.Spa as Spa
|
||||
import Generated.Params as Params
|
||||
import Generated.Route as Route exposing (Route)
|
||||
import Layout as Layout
|
||||
import Pages.Docs
|
||||
import Pages.Guide
|
||||
import Pages.NotFound
|
||||
import Pages.SignIn
|
||||
import Pages.Top
|
||||
import Utils.Spa as Spa
|
||||
import Generated.Docs.Route
|
||||
import Generated.Guide.Route
|
||||
import Generated.Docs.Pages
|
||||
import Generated.Guide.Pages
|
||||
|
||||
|
||||
type Model
|
||||
= TopModel Pages.Top.Model
|
||||
| DocsModel Pages.Docs.Model
|
||||
= DocsModel Pages.Docs.Model
|
||||
| GuideModel Pages.Guide.Model
|
||||
| NotFoundModel Pages.NotFound.Model
|
||||
| SignInModel Pages.SignIn.Model
|
||||
| GuideModel Pages.Guide.Model
|
||||
| Guide_Folder_Model Generated.Guide.Pages.Model
|
||||
| TopModel Pages.Top.Model
|
||||
| Docs_Folder_Model Generated.Docs.Pages.Model
|
||||
| Guide_Folder_Model Generated.Guide.Pages.Model
|
||||
|
||||
|
||||
type Msg
|
||||
= TopMsg Pages.Top.Msg
|
||||
| DocsMsg Pages.Docs.Msg
|
||||
= DocsMsg Pages.Docs.Msg
|
||||
| GuideMsg Pages.Guide.Msg
|
||||
| NotFoundMsg Pages.NotFound.Msg
|
||||
| SignInMsg Pages.SignIn.Msg
|
||||
| GuideMsg Pages.Guide.Msg
|
||||
| Guide_Folder_Msg Generated.Guide.Pages.Msg
|
||||
| TopMsg Pages.Top.Msg
|
||||
| Docs_Folder_Msg Generated.Docs.Pages.Msg
|
||||
| Guide_Folder_Msg Generated.Guide.Pages.Msg
|
||||
|
||||
|
||||
page : Spa.Page Route Model Msg layoutModel layoutMsg appMsg
|
||||
@ -61,30 +61,30 @@ type alias Recipe flags model msg appMsg =
|
||||
|
||||
|
||||
type alias Recipes msg =
|
||||
{ top : Recipe Params.Top Pages.Top.Model Pages.Top.Msg msg
|
||||
, docs : Recipe Params.Docs Pages.Docs.Model Pages.Docs.Msg msg
|
||||
{ docs : Recipe Params.Docs Pages.Docs.Model Pages.Docs.Msg msg
|
||||
, guide : Recipe Params.Guide Pages.Guide.Model Pages.Guide.Msg msg
|
||||
, notFound : Recipe Params.NotFound Pages.NotFound.Model Pages.NotFound.Msg msg
|
||||
, signIn : Recipe Params.SignIn Pages.SignIn.Model Pages.SignIn.Msg msg
|
||||
, guide : Recipe Params.Guide Pages.Guide.Model Pages.Guide.Msg msg
|
||||
, guide_folder : Recipe Generated.Guide.Route.Route Generated.Guide.Pages.Model Generated.Guide.Pages.Msg msg
|
||||
, top : Recipe Params.Top Pages.Top.Model Pages.Top.Msg msg
|
||||
, docs_folder : Recipe Generated.Docs.Route.Route Generated.Docs.Pages.Model Generated.Docs.Pages.Msg msg
|
||||
, guide_folder : Recipe Generated.Guide.Route.Route Generated.Guide.Pages.Model Generated.Guide.Pages.Msg msg
|
||||
}
|
||||
|
||||
|
||||
recipes : Recipes msg
|
||||
recipes =
|
||||
{ top =
|
||||
Spa.recipe
|
||||
{ page = Pages.Top.page
|
||||
, toModel = TopModel
|
||||
, toMsg = TopMsg
|
||||
}
|
||||
, docs =
|
||||
{ docs =
|
||||
Spa.recipe
|
||||
{ page = Pages.Docs.page
|
||||
, toModel = DocsModel
|
||||
, toMsg = DocsMsg
|
||||
}
|
||||
, guide =
|
||||
Spa.recipe
|
||||
{ page = Pages.Guide.page
|
||||
, toModel = GuideModel
|
||||
, toMsg = GuideMsg
|
||||
}
|
||||
, notFound =
|
||||
Spa.recipe
|
||||
{ page = Pages.NotFound.page
|
||||
@ -97,17 +97,11 @@ recipes =
|
||||
, toModel = SignInModel
|
||||
, toMsg = SignInMsg
|
||||
}
|
||||
, guide =
|
||||
, top =
|
||||
Spa.recipe
|
||||
{ page = Pages.Guide.page
|
||||
, toModel = GuideModel
|
||||
, toMsg = GuideMsg
|
||||
}
|
||||
, guide_folder =
|
||||
Spa.recipe
|
||||
{ page = Generated.Guide.Pages.page
|
||||
, toModel = Guide_Folder_Model
|
||||
, toMsg = Guide_Folder_Msg
|
||||
{ page = Pages.Top.page
|
||||
, toModel = TopModel
|
||||
, toMsg = TopMsg
|
||||
}
|
||||
, docs_folder =
|
||||
Spa.recipe
|
||||
@ -115,6 +109,12 @@ recipes =
|
||||
, toModel = Docs_Folder_Model
|
||||
, toMsg = Docs_Folder_Msg
|
||||
}
|
||||
, guide_folder =
|
||||
Spa.recipe
|
||||
{ page = Generated.Guide.Pages.page
|
||||
, toModel = Guide_Folder_Model
|
||||
, toMsg = Guide_Folder_Msg
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -125,26 +125,26 @@ recipes =
|
||||
init : Route -> Spa.Init Model Msg
|
||||
init route_ =
|
||||
case route_ of
|
||||
Route.Top flags ->
|
||||
recipes.top.init flags
|
||||
|
||||
Route.Docs flags ->
|
||||
recipes.docs.init flags
|
||||
|
||||
Route.NotFound flags ->
|
||||
recipes.notFound.init flags
|
||||
|
||||
Route.SignIn flags ->
|
||||
recipes.signIn.init flags
|
||||
|
||||
Route.Guide flags ->
|
||||
recipes.guide.init flags
|
||||
|
||||
Route.Guide_Folder route ->
|
||||
recipes.guide_folder.init route
|
||||
|
||||
Route.Docs params ->
|
||||
recipes.docs.init params
|
||||
|
||||
Route.Guide params ->
|
||||
recipes.guide.init params
|
||||
|
||||
Route.NotFound params ->
|
||||
recipes.notFound.init params
|
||||
|
||||
Route.SignIn params ->
|
||||
recipes.signIn.init params
|
||||
|
||||
Route.Top params ->
|
||||
recipes.top.init params
|
||||
|
||||
Route.Docs_Folder route ->
|
||||
recipes.docs_folder.init route
|
||||
|
||||
Route.Guide_Folder route ->
|
||||
recipes.guide_folder.init route
|
||||
|
||||
|
||||
|
||||
@ -154,55 +154,53 @@ init route_ =
|
||||
update : Msg -> Model -> Spa.Update Model Msg
|
||||
update bigMsg bigModel =
|
||||
case ( bigMsg, bigModel ) of
|
||||
( TopMsg msg, TopModel model ) ->
|
||||
recipes.top.update msg model
|
||||
|
||||
( DocsMsg msg, DocsModel model ) ->
|
||||
recipes.docs.update msg model
|
||||
|
||||
( NotFoundMsg msg, NotFoundModel model ) ->
|
||||
recipes.notFound.update msg model
|
||||
|
||||
( SignInMsg msg, SignInModel model ) ->
|
||||
recipes.signIn.update msg model
|
||||
|
||||
|
||||
( GuideMsg msg, GuideModel model ) ->
|
||||
recipes.guide.update msg model
|
||||
|
||||
( Guide_Folder_Msg msg, Guide_Folder_Model model ) ->
|
||||
recipes.guide_folder.update msg model
|
||||
|
||||
|
||||
( NotFoundMsg msg, NotFoundModel model ) ->
|
||||
recipes.notFound.update msg model
|
||||
|
||||
( SignInMsg msg, SignInModel model ) ->
|
||||
recipes.signIn.update msg model
|
||||
|
||||
( TopMsg msg, TopModel model ) ->
|
||||
recipes.top.update msg model
|
||||
|
||||
( Docs_Folder_Msg msg, Docs_Folder_Model model ) ->
|
||||
recipes.docs_folder.update msg model
|
||||
|
||||
|
||||
( Guide_Folder_Msg msg, Guide_Folder_Model model ) ->
|
||||
recipes.guide_folder.update msg model
|
||||
_ ->
|
||||
App.Page.keep bigModel
|
||||
|
||||
|
||||
|
||||
-- BUNDLE
|
||||
|
||||
|
||||
bundle : Model -> Spa.Bundle Msg msg
|
||||
bundle bigModel =
|
||||
case bigModel of
|
||||
TopModel model ->
|
||||
recipes.top.bundle model
|
||||
|
||||
DocsModel model ->
|
||||
recipes.docs.bundle model
|
||||
|
||||
NotFoundModel model ->
|
||||
recipes.notFound.bundle model
|
||||
|
||||
SignInModel model ->
|
||||
recipes.signIn.bundle model
|
||||
|
||||
|
||||
GuideModel model ->
|
||||
recipes.guide.bundle model
|
||||
|
||||
Guide_Folder_Model model ->
|
||||
recipes.guide_folder.bundle model
|
||||
|
||||
|
||||
NotFoundModel model ->
|
||||
recipes.notFound.bundle model
|
||||
|
||||
SignInModel model ->
|
||||
recipes.signIn.bundle model
|
||||
|
||||
TopModel model ->
|
||||
recipes.top.bundle model
|
||||
|
||||
Docs_Folder_Model model ->
|
||||
recipes.docs_folder.bundle model
|
||||
|
||||
Guide_Folder_Model model ->
|
||||
recipes.guide_folder.bundle model
|
@ -1,20 +1,14 @@
|
||||
module Generated.Params exposing
|
||||
( Docs
|
||||
, Guide
|
||||
, NotFound
|
||||
, SignIn
|
||||
, Top
|
||||
)
|
||||
|
||||
|
||||
type alias Top =
|
||||
{}
|
||||
module Generated.Params exposing (..)
|
||||
|
||||
|
||||
type alias Docs =
|
||||
{}
|
||||
|
||||
|
||||
type alias Guide =
|
||||
{}
|
||||
|
||||
|
||||
type alias NotFound =
|
||||
{}
|
||||
|
||||
@ -23,5 +17,5 @@ type alias SignIn =
|
||||
{}
|
||||
|
||||
|
||||
type alias Guide =
|
||||
{}
|
||||
type alias Top =
|
||||
{}
|
@ -3,41 +3,47 @@ module Generated.Route exposing
|
||||
, toPath
|
||||
)
|
||||
|
||||
import Generated.Params as Params
|
||||
import Generated.Docs.Route
|
||||
import Generated.Guide.Route
|
||||
import Generated.Params
|
||||
|
||||
|
||||
type Route
|
||||
= Top Generated.Params.Top
|
||||
| Docs Generated.Params.Docs
|
||||
| NotFound Generated.Params.NotFound
|
||||
| SignIn Generated.Params.SignIn
|
||||
| Guide Generated.Params.Guide
|
||||
| Guide_Folder Generated.Guide.Route.Route
|
||||
= Docs Params.Docs
|
||||
| Guide Params.Guide
|
||||
| NotFound Params.NotFound
|
||||
| SignIn Params.SignIn
|
||||
| Top Params.Top
|
||||
| Docs_Folder Generated.Docs.Route.Route
|
||||
| Guide_Folder Generated.Guide.Route.Route
|
||||
|
||||
|
||||
toPath : Route -> String
|
||||
toPath route =
|
||||
case route of
|
||||
Top _ ->
|
||||
"/"
|
||||
|
||||
Docs _ ->
|
||||
"/docs"
|
||||
|
||||
NotFound _ ->
|
||||
"/not-found"
|
||||
|
||||
SignIn _ ->
|
||||
"/sign-in"
|
||||
|
||||
|
||||
|
||||
Guide _ ->
|
||||
"/guide"
|
||||
|
||||
Guide_Folder subRoute ->
|
||||
"/guide" ++ Generated.Guide.Route.toPath subRoute
|
||||
|
||||
|
||||
|
||||
NotFound _ ->
|
||||
"/not-found"
|
||||
|
||||
|
||||
SignIn _ ->
|
||||
"/sign-in"
|
||||
|
||||
|
||||
Top _ ->
|
||||
"/top"
|
||||
|
||||
|
||||
Docs_Folder subRoute ->
|
||||
"/docs" ++ Generated.Docs.Route.toPath subRoute
|
||||
|
||||
|
||||
Guide_Folder subRoute ->
|
||||
"/guide" ++ Generated.Guide.Route.toPath subRoute
|
@ -5,12 +5,12 @@ module Generated.Routes exposing
|
||||
, toPath
|
||||
)
|
||||
|
||||
import Generated.Route
|
||||
import Generated.Docs.Route
|
||||
import Generated.Guide.Route
|
||||
import Generated.Guide.Dynamic.Route
|
||||
import Generated.Guide.Dynamic.Dynamic.Route
|
||||
import Generated.Guide.Dynamic.Faq.Route
|
||||
import Generated.Guide.Dynamic.Route
|
||||
import Generated.Guide.Route
|
||||
import Generated.Route
|
||||
import Url.Parser as Parser exposing ((</>), Parser, map, s, string, top)
|
||||
|
||||
|
||||
@ -34,18 +34,18 @@ toPath =
|
||||
type alias Routes =
|
||||
{ top : Route
|
||||
, docs : Route
|
||||
, guide : Route
|
||||
, notFound : Route
|
||||
, signIn : Route
|
||||
, notFound : Route
|
||||
, guide : Route
|
||||
, guide_elm : Route
|
||||
, guide_elmSpa : Route
|
||||
, guide_programming : Route
|
||||
, guide_dynamic_intro : String -> Route
|
||||
, docs_static : Route
|
||||
, guide_elmSpa : Route
|
||||
, docs_dynamic : String -> Route
|
||||
, guide_dynamic_other : String -> Route
|
||||
, guide_dynamic_intro : String -> Route
|
||||
, guide_dynamic_faq_top : String -> Route
|
||||
, guide_dynamic_dynamic_top : String -> String -> Route
|
||||
, docs_static : Route
|
||||
, docs_dynamic : String -> Route
|
||||
}
|
||||
|
||||
|
||||
@ -55,31 +55,38 @@ routes =
|
||||
Generated.Route.Top {}
|
||||
, docs =
|
||||
Generated.Route.Docs {}
|
||||
, guide =
|
||||
Generated.Route.Guide {}
|
||||
, notFound =
|
||||
Generated.Route.NotFound {}
|
||||
, signIn =
|
||||
Generated.Route.SignIn {}
|
||||
, notFound =
|
||||
Generated.Route.NotFound {}
|
||||
, guide =
|
||||
Generated.Route.Guide {}
|
||||
, guide_elm =
|
||||
Generated.Route.Guide_Folder <|
|
||||
Generated.Guide.Route.Elm {}
|
||||
, guide_elmSpa =
|
||||
Generated.Route.Guide_Folder <|
|
||||
Generated.Guide.Route.ElmSpa {}
|
||||
, guide_programming =
|
||||
Generated.Route.Guide_Folder <|
|
||||
Generated.Guide.Route.Programming {}
|
||||
, guide_dynamic_intro =
|
||||
, docs_static =
|
||||
Generated.Route.Docs_Folder <|
|
||||
Generated.Docs.Route.Static {}
|
||||
, guide_elmSpa =
|
||||
Generated.Route.Guide_Folder <|
|
||||
Generated.Guide.Route.ElmSpa {}
|
||||
, docs_dynamic =
|
||||
\param1 ->
|
||||
Generated.Route.Guide_Folder <|
|
||||
Generated.Guide.Route.Dynamic_Folder param1 <|
|
||||
Generated.Guide.Dynamic.Route.Intro { param1 = param1 }
|
||||
Generated.Route.Docs_Folder <|
|
||||
Generated.Docs.Route.Dynamic param1 { param1 = param1 }
|
||||
, guide_dynamic_other =
|
||||
\param1 ->
|
||||
Generated.Route.Guide_Folder <|
|
||||
Generated.Guide.Route.Dynamic_Folder param1 <|
|
||||
Generated.Guide.Dynamic.Route.Other { param1 = param1 }
|
||||
, guide_dynamic_intro =
|
||||
\param1 ->
|
||||
Generated.Route.Guide_Folder <|
|
||||
Generated.Guide.Route.Dynamic_Folder param1 <|
|
||||
Generated.Guide.Dynamic.Route.Intro { param1 = param1 }
|
||||
, guide_dynamic_faq_top =
|
||||
\param1 ->
|
||||
Generated.Route.Guide_Folder <|
|
||||
@ -92,44 +99,37 @@ routes =
|
||||
Generated.Guide.Route.Dynamic_Folder param1 <|
|
||||
Generated.Guide.Dynamic.Route.Dynamic_Folder param2 <|
|
||||
Generated.Guide.Dynamic.Dynamic.Route.Top { param1 = param1, param2 = param2 }
|
||||
, docs_static =
|
||||
Generated.Route.Docs_Folder <|
|
||||
Generated.Docs.Route.Static {}
|
||||
, docs_dynamic =
|
||||
\param1 ->
|
||||
Generated.Route.Docs_Folder <|
|
||||
Generated.Docs.Route.Dynamic param1 { param1 = param1 }
|
||||
}
|
||||
|
||||
|
||||
|
||||
parsers : List (Parser (Route -> a) a)
|
||||
parsers =
|
||||
[ map routes.top
|
||||
top
|
||||
(top)
|
||||
, map routes.docs
|
||||
(s "docs")
|
||||
, map routes.guide
|
||||
(s "guide")
|
||||
, map routes.notFound
|
||||
(s "not-found")
|
||||
, map routes.signIn
|
||||
(s "sign-in")
|
||||
, map routes.notFound
|
||||
(s "not-found")
|
||||
, map routes.guide
|
||||
(s "guide")
|
||||
, map routes.guide_elm
|
||||
(s "guide" </> s "elm")
|
||||
, map routes.guide_elmSpa
|
||||
(s "guide" </> s "elm-spa")
|
||||
, map routes.guide_programming
|
||||
(s "guide" </> s "programming")
|
||||
, map routes.guide_dynamic_intro
|
||||
(s "guide" </> string </> s "intro")
|
||||
, map routes.docs_static
|
||||
(s "docs" </> s "static")
|
||||
, map routes.guide_elmSpa
|
||||
(s "guide" </> s "elm-spa")
|
||||
, map routes.docs_dynamic
|
||||
(s "docs" </> string)
|
||||
, map routes.guide_dynamic_other
|
||||
(s "guide" </> string </> s "other")
|
||||
, map routes.guide_dynamic_intro
|
||||
(s "guide" </> string </> s "intro")
|
||||
, map routes.guide_dynamic_faq_top
|
||||
(s "guide" </> string </> s "faq" </> top)
|
||||
, map routes.guide_dynamic_dynamic_top
|
||||
(s "guide" </> string </> string </> top)
|
||||
, map routes.docs_static
|
||||
(s "docs" </> s "static")
|
||||
, map routes.docs_dynamic
|
||||
(s "docs" </> string)
|
||||
]
|
||||
]
|
@ -3,7 +3,7 @@
|
||||
"source-directories": [
|
||||
"src",
|
||||
"../../src",
|
||||
"elm-stuff/.elm-spa"
|
||||
"elm-stuff/.generated"
|
||||
],
|
||||
"elm-version": "0.19.1",
|
||||
"dependencies": {
|
||||
|
5
package-lock.json
generated
Normal file
5
package-lock.json
generated
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "elm-spa",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1
|
||||
}
|
@ -3,6 +3,7 @@
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "cli/src/index.js",
|
||||
"bin": "./cli/src/index.js",
|
||||
"scripts": {
|
||||
"start": "npm run dev",
|
||||
"build": "(cd cli && npm run build)",
|
||||
|
Loading…
Reference in New Issue
Block a user