Просмотр исходного кода

feat(server): Use same sample data for dev and cli populate script

Rather than duplicating and maintaining 2 copies of the sample data, we just copy over the dev sample data into the cli assets dir during the build.
Michael Bromley 7 лет назад
Родитель
Сommit
139d35fcbd

+ 17 - 0
server/build/gulpfile.ts

@@ -1,7 +1,10 @@
 import { exec } from 'child_process';
+import fs from 'fs-extra';
 import { dest, parallel, series, src } from 'gulp';
 import path from 'path';
 
+import { initialData } from '../mock-data/data-sources/initial-data';
+
 // tslint:disable:no-console
 
 function copySchemas() {
@@ -20,6 +23,18 @@ function copyCliImages() {
     return src(['../mock-data/assets/**/*']).pipe(dest('../dist/cli/assets/images'));
 }
 
+function copyCliProductData() {
+    return src(['../mock-data/data-sources/products.csv']).pipe(dest('../dist/cli/assets'));
+}
+
+function copyCliInitialData() {
+    return fs.outputFile(
+        '../dist/cli/assets/initial-data.json',
+        JSON.stringify(initialData, null, 2),
+        'utf-8',
+    );
+}
+
 function buildAdminUi() {
     return exec(
         'yarn build --prod=true',
@@ -47,5 +62,7 @@ export const build = parallel(
     copyEmailTemplates,
     copyCliAssets,
     copyCliImages,
+    copyCliProductData,
+    copyCliInitialData,
     series(buildAdminUi, copyAdminUi),
 );

+ 0 - 259
server/cli/assets/initial-data.json

@@ -1,259 +0,0 @@
-{
-    "defaultLanguage": "en",
-    "defaultZone": "Europe",
-    "taxRates": [
-        { "name": "Standard Tax", "percentage": 20 },
-        { "name": "Reduced Tax", "percentage": 10 },
-        { "name": "Zero Tax", "percentage": 0 }
-    ],
-    "countries": [
-        { "name": "Afghanistan", "code": "AF", "zone": "Asia" },
-        { "name": "Åland Islands", "code": "AX", "zone": "Europe" },
-        { "name": "Albania", "code": "AL", "zone": "Europe" },
-        { "name": "Algeria", "code": "DZ", "zone": "Africa" },
-        { "name": "American Samoa", "code": "AS", "zone": "Oceania" },
-        { "name": "Andorra", "code": "AD", "zone": "Europe" },
-        { "name": "Angola", "code": "AO", "zone": "Africa" },
-        { "name": "Anguilla", "code": "AI", "zone": "Americas" },
-        { "name": "Antigua and Barbuda", "code": "AG", "zone": "Americas" },
-        { "name": "Argentina", "code": "AR", "zone": "Americas" },
-        { "name": "Armenia", "code": "AM", "zone": "Asia" },
-        { "name": "Aruba", "code": "AW", "zone": "Americas" },
-        { "name": "Australia", "code": "AU", "zone": "Oceania" },
-        { "name": "Austria", "code": "AT", "zone": "Europe" },
-        { "name": "Azerbaijan", "code": "AZ", "zone": "Asia" },
-        { "name": "Bahamas", "code": "BS", "zone": "Americas" },
-        { "name": "Bahrain", "code": "BH", "zone": "Asia" },
-        { "name": "Bangladesh", "code": "BD", "zone": "Asia" },
-        { "name": "Barbados", "code": "BB", "zone": "Americas" },
-        { "name": "Belarus", "code": "BY", "zone": "Europe" },
-        { "name": "Belgium", "code": "BE", "zone": "Europe" },
-        { "name": "Belize", "code": "BZ", "zone": "Americas" },
-        { "name": "Benin", "code": "BJ", "zone": "Africa" },
-        { "name": "Bermuda", "code": "BM", "zone": "Americas" },
-        { "name": "Bhutan", "code": "BT", "zone": "Asia" },
-        { "name": "Bolivia (Plurinational State of)", "code": "BO", "zone": "Americas" },
-        { "name": "Bonaire, Sint Eustatius and Saba", "code": "BQ", "zone": "Americas" },
-        { "name": "Bosnia and Herzegovina", "code": "BA", "zone": "Europe" },
-        { "name": "Botswana", "code": "BW", "zone": "Africa" },
-        { "name": "Bouvet Island", "code": "BV", "zone": "Americas" },
-        { "name": "Brazil", "code": "BR", "zone": "Americas" },
-        { "name": "British Indian Ocean Territory", "code": "IO", "zone": "Africa" },
-        { "name": "Brunei Darussalam", "code": "BN", "zone": "Asia" },
-        { "name": "Bulgaria", "code": "BG", "zone": "Europe" },
-        { "name": "Burkina Faso", "code": "BF", "zone": "Africa" },
-        { "name": "Burundi", "code": "BI", "zone": "Africa" },
-        { "name": "Cabo Verde", "code": "CV", "zone": "Africa" },
-        { "name": "Cambodia", "code": "KH", "zone": "Asia" },
-        { "name": "Cameroon", "code": "CM", "zone": "Africa" },
-        { "name": "Canada", "code": "CA", "zone": "Americas" },
-        { "name": "Cayman Islands", "code": "KY", "zone": "Americas" },
-        { "name": "Central African Republic", "code": "CF", "zone": "Africa" },
-        { "name": "Chad", "code": "TD", "zone": "Africa" },
-        { "name": "Chile", "code": "CL", "zone": "Americas" },
-        { "name": "China", "code": "CN", "zone": "Asia" },
-        { "name": "Christmas Island", "code": "CX", "zone": "Oceania" },
-        { "name": "Cocos (Keeling) Islands", "code": "CC", "zone": "Oceania" },
-        { "name": "Colombia", "code": "CO", "zone": "Americas" },
-        { "name": "Comoros", "code": "KM", "zone": "Africa" },
-        { "name": "Congo", "code": "CG", "zone": "Africa" },
-        { "name": "Congo (Democratic Republic of the)", "code": "CD", "zone": "Africa" },
-        { "name": "Cook Islands", "code": "CK", "zone": "Oceania" },
-        { "name": "Costa Rica", "code": "CR", "zone": "Americas" },
-        { "name": "Côte d'Ivoire", "code": "CI", "zone": "Africa" },
-        { "name": "Croatia", "code": "HR", "zone": "Europe" },
-        { "name": "Cuba", "code": "CU", "zone": "Americas" },
-        { "name": "Curaçao", "code": "CW", "zone": "Americas" },
-        { "name": "Cyprus", "code": "CY", "zone": "Asia" },
-        { "name": "Czechia", "code": "CZ", "zone": "Europe" },
-        { "name": "Denmark", "code": "DK", "zone": "Europe" },
-        { "name": "Djibouti", "code": "DJ", "zone": "Africa" },
-        { "name": "Dominica", "code": "DM", "zone": "Americas" },
-        { "name": "Dominican Republic", "code": "DO", "zone": "Americas" },
-        { "name": "Ecuador", "code": "EC", "zone": "Americas" },
-        { "name": "Egypt", "code": "EG", "zone": "Africa" },
-        { "name": "El Salvador", "code": "SV", "zone": "Americas" },
-        { "name": "Equatorial Guinea", "code": "GQ", "zone": "Africa" },
-        { "name": "Eritrea", "code": "ER", "zone": "Africa" },
-        { "name": "Estonia", "code": "EE", "zone": "Europe" },
-        { "name": "Eswatini", "code": "SZ", "zone": "Africa" },
-        { "name": "Ethiopia", "code": "ET", "zone": "Africa" },
-        { "name": "Falkland Islands (Malvinas)", "code": "FK", "zone": "Americas" },
-        { "name": "Faroe Islands", "code": "FO", "zone": "Europe" },
-        { "name": "Fiji", "code": "FJ", "zone": "Oceania" },
-        { "name": "Finland", "code": "FI", "zone": "Europe" },
-        { "name": "France", "code": "FR", "zone": "Europe" },
-        { "name": "French Guiana", "code": "GF", "zone": "Americas" },
-        { "name": "French Polynesia", "code": "PF", "zone": "Oceania" },
-        { "name": "French Southern Territories", "code": "TF", "zone": "Africa" },
-        { "name": "Gabon", "code": "GA", "zone": "Africa" },
-        { "name": "Gambia", "code": "GM", "zone": "Africa" },
-        { "name": "Georgia", "code": "GE", "zone": "Asia" },
-        { "name": "Germany", "code": "DE", "zone": "Europe" },
-        { "name": "Ghana", "code": "GH", "zone": "Africa" },
-        { "name": "Gibraltar", "code": "GI", "zone": "Europe" },
-        { "name": "Greece", "code": "GR", "zone": "Europe" },
-        { "name": "Greenland", "code": "GL", "zone": "Americas" },
-        { "name": "Grenada", "code": "GD", "zone": "Americas" },
-        { "name": "Guadeloupe", "code": "GP", "zone": "Americas" },
-        { "name": "Guam", "code": "GU", "zone": "Oceania" },
-        { "name": "Guatemala", "code": "GT", "zone": "Americas" },
-        { "name": "Guernsey", "code": "GG", "zone": "Europe" },
-        { "name": "Guinea", "code": "GN", "zone": "Africa" },
-        { "name": "Guinea-Bissau", "code": "GW", "zone": "Africa" },
-        { "name": "Guyana", "code": "GY", "zone": "Americas" },
-        { "name": "Haiti", "code": "HT", "zone": "Americas" },
-        { "name": "Heard Island and McDonald Islands", "code": "HM", "zone": "Oceania" },
-        { "name": "Holy See", "code": "VA", "zone": "Europe" },
-        { "name": "Honduras", "code": "HN", "zone": "Americas" },
-        { "name": "Hong Kong", "code": "HK", "zone": "Asia" },
-        { "name": "Hungary", "code": "HU", "zone": "Europe" },
-        { "name": "Iceland", "code": "IS", "zone": "Europe" },
-        { "name": "India", "code": "IN", "zone": "Asia" },
-        { "name": "Indonesia", "code": "ID", "zone": "Asia" },
-        { "name": "Iran (Islamic Republic of)", "code": "IR", "zone": "Asia" },
-        { "name": "Iraq", "code": "IQ", "zone": "Asia" },
-        { "name": "Ireland", "code": "IE", "zone": "Europe" },
-        { "name": "Isle of Man", "code": "IM", "zone": "Europe" },
-        { "name": "Israel", "code": "IL", "zone": "Asia" },
-        { "name": "Italy", "code": "IT", "zone": "Europe" },
-        { "name": "Jamaica", "code": "JM", "zone": "Americas" },
-        { "name": "Japan", "code": "JP", "zone": "Asia" },
-        { "name": "Jersey", "code": "JE", "zone": "Europe" },
-        { "name": "Jordan", "code": "JO", "zone": "Asia" },
-        { "name": "Kazakhstan", "code": "KZ", "zone": "Asia" },
-        { "name": "Kenya", "code": "KE", "zone": "Africa" },
-        { "name": "Kiribati", "code": "KI", "zone": "Oceania" },
-        { "name": "Korea (Democratic People's Republic of)", "code": "KP", "zone": "Asia" },
-        { "name": "Korea (Republic of)", "code": "KR", "zone": "Asia" },
-        { "name": "Kuwait", "code": "KW", "zone": "Asia" },
-        { "name": "Kyrgyzstan", "code": "KG", "zone": "Asia" },
-        { "name": "Lao People's Democratic Republic", "code": "LA", "zone": "Asia" },
-        { "name": "Latvia", "code": "LV", "zone": "Europe" },
-        { "name": "Lebanon", "code": "LB", "zone": "Asia" },
-        { "name": "Lesotho", "code": "LS", "zone": "Africa" },
-        { "name": "Liberia", "code": "LR", "zone": "Africa" },
-        { "name": "Libya", "code": "LY", "zone": "Africa" },
-        { "name": "Liechtenstein", "code": "LI", "zone": "Europe" },
-        { "name": "Lithuania", "code": "LT", "zone": "Europe" },
-        { "name": "Luxembourg", "code": "LU", "zone": "Europe" },
-        { "name": "Macao", "code": "MO", "zone": "Asia" },
-        { "name": "Macedonia (the former Yugoslav Republic of)", "code": "MK", "zone": "Europe" },
-        { "name": "Madagascar", "code": "MG", "zone": "Africa" },
-        { "name": "Malawi", "code": "MW", "zone": "Africa" },
-        { "name": "Malaysia", "code": "MY", "zone": "Asia" },
-        { "name": "Maldives", "code": "MV", "zone": "Asia" },
-        { "name": "Mali", "code": "ML", "zone": "Africa" },
-        { "name": "Malta", "code": "MT", "zone": "Europe" },
-        { "name": "Marshall Islands", "code": "MH", "zone": "Oceania" },
-        { "name": "Martinique", "code": "MQ", "zone": "Americas" },
-        { "name": "Mauritania", "code": "MR", "zone": "Africa" },
-        { "name": "Mauritius", "code": "MU", "zone": "Africa" },
-        { "name": "Mayotte", "code": "YT", "zone": "Africa" },
-        { "name": "Mexico", "code": "MX", "zone": "Americas" },
-        { "name": "Micronesia (Federated States of)", "code": "FM", "zone": "Oceania" },
-        { "name": "Moldova (Republic of)", "code": "MD", "zone": "Europe" },
-        { "name": "Monaco", "code": "MC", "zone": "Europe" },
-        { "name": "Mongolia", "code": "MN", "zone": "Asia" },
-        { "name": "Montenegro", "code": "ME", "zone": "Europe" },
-        { "name": "Montserrat", "code": "MS", "zone": "Americas" },
-        { "name": "Morocco", "code": "MA", "zone": "Africa" },
-        { "name": "Mozambique", "code": "MZ", "zone": "Africa" },
-        { "name": "Myanmar", "code": "MM", "zone": "Asia" },
-        { "name": "Namibia", "code": "NA", "zone": "Africa" },
-        { "name": "Nauru", "code": "NR", "zone": "Oceania" },
-        { "name": "Nepal", "code": "NP", "zone": "Asia" },
-        { "name": "Netherlands", "code": "NL", "zone": "Europe" },
-        { "name": "New Caledonia", "code": "NC", "zone": "Oceania" },
-        { "name": "New Zealand", "code": "NZ", "zone": "Oceania" },
-        { "name": "Nicaragua", "code": "NI", "zone": "Americas" },
-        { "name": "Niger", "code": "NE", "zone": "Africa" },
-        { "name": "Nigeria", "code": "NG", "zone": "Africa" },
-        { "name": "Niue", "code": "NU", "zone": "Oceania" },
-        { "name": "Norfolk Island", "code": "NF", "zone": "Oceania" },
-        { "name": "Northern Mariana Islands", "code": "MP", "zone": "Oceania" },
-        { "name": "Norway", "code": "NO", "zone": "Europe" },
-        { "name": "Oman", "code": "OM", "zone": "Asia" },
-        { "name": "Pakistan", "code": "PK", "zone": "Asia" },
-        { "name": "Palau", "code": "PW", "zone": "Oceania" },
-        { "name": "Palestine, State of", "code": "PS", "zone": "Asia" },
-        { "name": "Panama", "code": "PA", "zone": "Americas" },
-        { "name": "Papua New Guinea", "code": "PG", "zone": "Oceania" },
-        { "name": "Paraguay", "code": "PY", "zone": "Americas" },
-        { "name": "Peru", "code": "PE", "zone": "Americas" },
-        { "name": "Philippines", "code": "PH", "zone": "Asia" },
-        { "name": "Pitcairn", "code": "PN", "zone": "Oceania" },
-        { "name": "Poland", "code": "PL", "zone": "Europe" },
-        { "name": "Portugal", "code": "PT", "zone": "Europe" },
-        { "name": "Puerto Rico", "code": "PR", "zone": "Americas" },
-        { "name": "Qatar", "code": "QA", "zone": "Asia" },
-        { "name": "Réunion", "code": "RE", "zone": "Africa" },
-        { "name": "Romania", "code": "RO", "zone": "Europe" },
-        { "name": "Russian Federation", "code": "RU", "zone": "Europe" },
-        { "name": "Rwanda", "code": "RW", "zone": "Africa" },
-        { "name": "Saint Barthélemy", "code": "BL", "zone": "Americas" },
-        { "name": "Saint Helena, Ascension and Tristan da Cunha", "code": "SH", "zone": "Africa" },
-        { "name": "Saint Kitts and Nevis", "code": "KN", "zone": "Americas" },
-        { "name": "Saint Lucia", "code": "LC", "zone": "Americas" },
-        { "name": "Saint Martin (French part)", "code": "MF", "zone": "Americas" },
-        { "name": "Saint Pierre and Miquelon", "code": "PM", "zone": "Americas" },
-        { "name": "Saint Vincent and the Grenadines", "code": "VC", "zone": "Americas" },
-        { "name": "Samoa", "code": "WS", "zone": "Oceania" },
-        { "name": "San Marino", "code": "SM", "zone": "Europe" },
-        { "name": "Sao Tome and Principe", "code": "ST", "zone": "Africa" },
-        { "name": "Saudi Arabia", "code": "SA", "zone": "Asia" },
-        { "name": "Senegal", "code": "SN", "zone": "Africa" },
-        { "name": "Serbia", "code": "RS", "zone": "Europe" },
-        { "name": "Seychelles", "code": "SC", "zone": "Africa" },
-        { "name": "Sierra Leone", "code": "SL", "zone": "Africa" },
-        { "name": "Singapore", "code": "SG", "zone": "Asia" },
-        { "name": "Sint Maarten (Dutch part)", "code": "SX", "zone": "Americas" },
-        { "name": "Slovakia", "code": "SK", "zone": "Europe" },
-        { "name": "Slovenia", "code": "SI", "zone": "Europe" },
-        { "name": "Solomon Islands", "code": "SB", "zone": "Oceania" },
-        { "name": "Somalia", "code": "SO", "zone": "Africa" },
-        { "name": "South Africa", "code": "ZA", "zone": "Africa" },
-        { "name": "South Georgia and the South Sandwich Islands", "code": "GS", "zone": "Americas" },
-        { "name": "South Sudan", "code": "SS", "zone": "Africa" },
-        { "name": "Spain", "code": "ES", "zone": "Europe" },
-        { "name": "Sri Lanka", "code": "LK", "zone": "Asia" },
-        { "name": "Sudan", "code": "SD", "zone": "Africa" },
-        { "name": "Suriname", "code": "SR", "zone": "Americas" },
-        { "name": "Svalbard and Jan Mayen", "code": "SJ", "zone": "Europe" },
-        { "name": "Sweden", "code": "SE", "zone": "Europe" },
-        { "name": "Switzerland", "code": "CH", "zone": "Europe" },
-        { "name": "Syrian Arab Republic", "code": "SY", "zone": "Asia" },
-        { "name": "Taiwan, Province of China", "code": "TW", "zone": "Asia" },
-        { "name": "Tajikistan", "code": "TJ", "zone": "Asia" },
-        { "name": "Tanzania, United Republic of", "code": "TZ", "zone": "Africa" },
-        { "name": "Thailand", "code": "TH", "zone": "Asia" },
-        { "name": "Timor-Leste", "code": "TL", "zone": "Asia" },
-        { "name": "Togo", "code": "TG", "zone": "Africa" },
-        { "name": "Tokelau", "code": "TK", "zone": "Oceania" },
-        { "name": "Tonga", "code": "TO", "zone": "Oceania" },
-        { "name": "Trinidad and Tobago", "code": "TT", "zone": "Americas" },
-        { "name": "Tunisia", "code": "TN", "zone": "Africa" },
-        { "name": "Turkey", "code": "TR", "zone": "Asia" },
-        { "name": "Turkmenistan", "code": "TM", "zone": "Asia" },
-        { "name": "Turks and Caicos Islands", "code": "TC", "zone": "Americas" },
-        { "name": "Tuvalu", "code": "TV", "zone": "Oceania" },
-        { "name": "Uganda", "code": "UG", "zone": "Africa" },
-        { "name": "Ukraine", "code": "UA", "zone": "Europe" },
-        { "name": "United Arab Emirates", "code": "AE", "zone": "Asia" },
-        { "name": "United Kingdom", "code": "GB", "zone": "Europe" },
-        { "name": "United States of America", "code": "US", "zone": "Americas" },
-        { "name": "United States Minor Outlying Islands", "code": "UM", "zone": "Oceania" },
-        { "name": "Uruguay", "code": "UY", "zone": "Americas" },
-        { "name": "Uzbekistan", "code": "UZ", "zone": "Asia" },
-        { "name": "Vanuatu", "code": "VU", "zone": "Oceania" },
-        { "name": "Venezuela (Bolivarian Republic of)", "code": "VE", "zone": "Americas" },
-        { "name": "Viet Nam", "code": "VN", "zone": "Asia" },
-        { "name": "Virgin Islands (British)", "code": "VG", "zone": "Americas" },
-        { "name": "Virgin Islands (U.S.)", "code": "VI", "zone": "Americas" },
-        { "name": "Wallis and Futuna", "code": "WF", "zone": "Oceania" },
-        { "name": "Western Sahara", "code": "EH", "zone": "Africa" },
-        { "name": "Yemen", "code": "YE", "zone": "Asia" },
-        { "name": "Zambia", "code": "ZM", "zone": "Africa" },
-        { "name": "Zimbabwe", "code": "ZW", "zone": "Africa" }
-    ]
-}

+ 0 - 12
server/cli/assets/sample-products.csv

@@ -1,12 +0,0 @@
-name           , slug           , description                                                                                                                                                                                                                                                                  , assets                              , facets                    , optionGroups       , optionValues    , sku         , price   , taxCategory , variantAssets , variantFacets
-Spiky Cactus   , spiky-cactus   , "A spiky yet elegant house cactus - perfect for the home or office. Origin and habitat: Probably native only to the Andes of Peru"                                                                                                                                           , charles-deluvio-695736-unsplash.jpg , category:home & garden    ,                    ,                 , SC011001    , 15.50   , standard    ,               ,
-Running Shoe   , running-shoe   , "With its ultra-light, uber-responsive magic foam and a carbon fiber plate that feels like it’s propelling you forward, the Running Shoe is ready to push you to victories both large and small"                                                                             , chuttersnap-584518-unsplash.jpg     , category:sports equipment , shoe size          , Size 40         , RS0040      , 99.99   , standard    ,               ,
-               ,                ,                                                                                                                                                                                                                                                                              ,                                     ,                           ,                    , Size 42         , RS0042      , 99.99   , standard    ,               ,
-               ,                ,                                                                                                                                                                                                                                                                              ,                                     ,                           ,                    , Size 44         , RS0044      , 99.99   , standard    ,               ,
-               ,                ,                                                                                                                                                                                                                                                                              ,                                     ,                           ,                    , Size 46         , RS0046      , 99.99   , standard    ,               ,
-Laptop         , laptop         , "Now equipped with seventh-generation Intel Core processors, Laptop is snappier than ever. From daily tasks like launching apps and opening files to more advanced computing, you can power through your day thanks to faster SSDs and Turbo Boost processing up to 3.6GHz." , derick-david-409858-unsplash.jpg    , category:electronics      , "screen size, RAM" , "13 inch, 8GB"  , L2201308    , 1299.00 , standard    ,               ,
-               ,                ,                                                                                                                                                                                                                                                                              ,                                     ,                           ,                    , "15 inch, 8GB"  , L2201508    , 1399.00 , standard    ,               ,
-               ,                ,                                                                                                                                                                                                                                                                              ,                                     ,                           ,                    , "13 inch, 16GB" , L2201316    , 2199.00 , standard    ,               ,
-               ,                ,                                                                                                                                                                                                                                                                              ,                                     ,                           ,                    , "15 inch, 16GB" , L2201516    , 2299.00 , standard    ,               ,
-Instant Camera , instant-camera , "With its nostalgic design and simple point-and-shoot functionality, the Instant Camera is the perfect pick to get started with instant photography."                                                                                                                        , eniko-kis-663725-unsplash.jpg       , category:electronics      ,                    ,                 , IC22MWDD    , 174.99  , standard    ,               ,
-Road Bike      , road-bike      , "Featuring a full carbon chassis - complete with cyclocross-specific carbon fork - and a component setup geared for hard use on the race circuit, it's got the low weight, exceptional efficiency and brilliant handling you'll need to stay at the front of the pack."      , mikkel-bech-748940-unsplash.jpg     , category:sports equipment ,                    ,                 , RB000844334 , 2499.00 , standard    ,               ,

+ 1 - 1
server/cli/populate.ts

@@ -103,7 +103,7 @@ async function populateProducts(app: INestApplication, initialData: any) {
     await fs.copy(images, destination);
 
     // import the csv of same product data
-    const sampleProductsFile = path.join(__dirname, 'assets', 'sample-products.csv');
+    const sampleProductsFile = path.join(__dirname, 'assets', 'products.csv');
     await importProductsFromFile(app, sampleProductsFile, initialData.defaultLanguage);
 }