Commit c54a1739 by Иван Кубота

tmp

parent a3b05e6e
...@@ -61,13 +61,6 @@ var transformJSX = function(code, fileName, cb) { ...@@ -61,13 +61,6 @@ var transformJSX = function(code, fileName, cb) {
"pragmaFrag": "D.f", // default is React.Fragment "pragmaFrag": "D.f", // default is React.Fragment
"throwIfNamespace": false // defaults to true "throwIfNamespace": false // defaults to true
} ], } ],
/* ["module-resolver", {
"root": ["."],
"alias": {
"svg": "./svg",
"@": "./public"
}
}],*/
[simpleTransformToAMD] [simpleTransformToAMD]
], ],
sourceMaps: 'both', sourceMaps: 'both',
...@@ -82,6 +75,43 @@ var transformJSX = function(code, fileName, cb) { ...@@ -82,6 +75,43 @@ var transformJSX = function(code, fileName, cb) {
} }
} ); } );
}; };
var transformTSX = function(code, fileName, cb) {
bCore.transform(
`import "main.ts";const x:number = 4;
export const trata = 2 as number;
`,//code,
{
"plugins": [
['@babel/plugin-transform-typescript', {
isTSX: true,
jsxPragma: 'D'
}],
/*[ "@babel/plugin-transform-react-jsx", {
"pragma": "D.h", // default pragma is React.createElement
"pragmaFrag": "D.f", // default is React.Fragment
"throwIfNamespace": false // defaults to true
} ],*/
[simpleTransformToAMD]
],
sourceMaps: 'both',
sourceFileName: fileName,
moduleId: fileName
}, function( c, d, e ){
console.log(c)
console.log(d.code)
debugger
if(c){
cb(c);
}else{
cb(false, d);
}
} );
};
transformTSX('', 'aga', ()=>{})
var sass = require('node-sass'); var sass = require('node-sass');
var transformServe = function(dir) { var transformServe = function(dir) {
return function (req, res, next) { return function (req, res, next) {
...@@ -145,12 +175,32 @@ var transformServe = function(dir) { ...@@ -145,12 +175,32 @@ var transformServe = function(dir) {
}else{ }else{
cache[ req.url + '.map' ] = JSON.stringify( result.map ); cache[ req.url + '.map' ] = JSON.stringify( result.map );
res.set( 'SourceMap', req.url + '.map' ); res.set( 'SourceMap', req.url + '.map' );
res.set( 'Content-type', 'application/javascript; charset=UTF-8' );
res.end( result.code ); res.end( result.code );
} }
}) })
} }
}); });
}else if (req.url.substr(-4) === '.tsx' || req.url.substr(-3) === '.ts') {
fs.readFile(path.join(dir, req.url), function(err, data){
if( err ){
next();
}else{
console.log('Transform ts/tsx', req.url);
transformTSX(data+'', req.url, function(err, result) {
if(err){
console.log('Error in transforming jsx', err);
res.end(err.message+'\n'+err.stack)
}else{
cache[ req.url + '.map' ] = JSON.stringify( result.map );
res.set( 'SourceMap', req.url + '.map' );
res.header( 'Content-type', 'application/javascript; charset=UTF-8' );
res.end( result.code );
}
})
}
});
}else if (req.url.substr(-4) === '.svg') { }else if (req.url.substr(-4) === '.svg') {
console.log('Serve svg', dir, req.url) console.log('Serve svg', dir, req.url)
fs.readFile(path.join(dir, req.url), function(err, data){ fs.readFile(path.join(dir, req.url), function(err, data){
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
"devDependencies": { "devDependencies": {
"@babel/core": "^7.8.3", "@babel/core": "^7.8.3",
"@babel/plugin-transform-react-jsx": "^7.8.3", "@babel/plugin-transform-react-jsx": "^7.8.3",
"@babel/plugin-transform-typescript": "^7.8.3",
"@babel/template": "^7.8.3", "@babel/template": "^7.8.3",
"babel-plugin-module-resolver": "^4.0.0", "babel-plugin-module-resolver": "^4.0.0",
"chai": "^4.2.0", "chai": "^4.2.0",
......
export const Ajax = {
post(url: string, data: any, cb: Function){
let stringData='';
try{
stringData = JSON.stringify(data);
const xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
let json;
try {
json = JSON.parse(xhr.responseText);
cb && cb(false, json);
}catch (e) {
console.error('AJAX:POST Incorrect Response ← '+url, xhr.responseText, e);
cb && cb(true, e);
}
}else if(xhr.status === 404){
cb && cb(true);
}else if(xhr.status === 401){
//Пользователь не авторизован
window.location.href = "/login";
return;
}else if(xhr.status === 403){
//Нет доступа к ассистенту
window.location.href = "/";
return;
}else if (xhr.status >= 400){
/*HeaderModel.statusNotification.statuses.push({type: 'error'});
setTimeout(function () {
HeaderModel.statusNotification.statuses.length = 0;
}, 3000);*/
cb && cb(true, {"status":"error"});
return;
}
};
xhr.send(stringData);
}catch (e) {
/* HeaderModel.statusNotification.statuses.push({type: 'error'});
setTimeout(function () {
HeaderModel.statusNotification.statuses.length = 0;
}, 3000);*/
console.error('AJAX:POST → '+url, e);
cb && cb(true, e);
}
},
get(url: string, cb: Function){
try{
const xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
let json;
try {
json = JSON.parse(xhr.responseText);
cb && cb(false, json);
}catch (e) {
console.error('AJAX:GET Incorrect Response ← '+url, xhr.responseText, e);
cb && cb(true, e);
}
}else if(xhr.status === 404){
cb && cb(true);
}else if(xhr.status === 401){
//Пользователь не авторизован
window.location.href = "/login";
return;
}else if(xhr.status === 403){
//Нет доступа к ассистенту
window.location.href = "/";
return;
} else if (xhr.status >= 400){
/*HeaderModel.statusNotification.statuses.push({type: 'error'});
setTimeout(function () {
HeaderModel.statusNotification.statuses.length = 0;
}, 3000);*/
cb && cb(true, {"status":"error"});
}
};
xhr.send(null);
}catch (e) {
/*HeaderModel.statusNotification.statuses.push({type: 'error'});
setTimeout(function () {
HeaderModel.statusNotification.statuses.length = 0;
}, 3000);*/
console.error('AJAX:GET → '+url, e);
cb && cb(true, e);
}
}
};
export const AsyncAjax = {
get(url: string) {
return new Promise(function(resolve, reject) {
Ajax.get(url, function(err, data) {
if(err){
reject(data);
}else{
resolve(data);
}
})
});
},
post(url: string, data: any){
}
};
\ No newline at end of file
...@@ -5,8 +5,8 @@ async function subscribe() { ...@@ -5,8 +5,8 @@ async function subscribe() {
}catch( e ){ }catch( e ){
} }
if (response.status == 502) { if (response.status === 502) {
} else if (response.status != 200) { } else if (response.status !== 200) {
// An error - let's show it // An error - let's show it
//debugger //debugger
//showMessage(response.statusText); //showMessage(response.statusText);
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
{ name: '.css', loader: cssLoader }, { name: '.css', loader: cssLoader },
{ name: '.jsx', loader: jsLoader }, { name: '.jsx', loader: jsLoader },
{ name: '.js', loader: jsLoader }, { name: '.js', loader: jsLoader },
{ name: '.tsx', loader: jsLoader },
{ name: '.ts', loader: jsLoader },
{ name: '.svg', loader: jsLoader }, { name: '.svg', loader: jsLoader },
]; ];
......
...@@ -177,27 +177,45 @@ StoreBinding.prototype = { ...@@ -177,27 +177,45 @@ StoreBinding.prototype = {
}; };
Store.prototype = Object.assign(new Observable, Store.prototype); Store.prototype = Object.assign(new Observable, Store.prototype);
Store.AND = function() { Store.AGGREGATE = function(fn) {
return function(...args) {
}; let composite, _i = args.length,
vals = new Array(_i);
Store.OR = function(...args) { return function(update) {
let composite, _i = args.length, let check = ()=>{
vals = new Array(_i); let result = fn(vals, _i);
return function(update) {
let check = ()=>{ if(composite !== result)
let result = false; update(composite = result);
};
for(let i = 0; i < _i; i++){ for(let i = 0; i < _i; i++){
result = result || vals[i]; // set backward callback
args[i]( val => {
// update item corresponding value and check condition
vals[i] = val;
check();
})
} }
if(composite !== result)
update(composite = result);
}; };
for(let i = 0; i < _i; i++){
args[i]((val)=>{vals[i] = val;check();})
}
}; };
}; };
Store.AND = Store.AGGREGATE(function(values, length) {
let result = true;
for(let i = 0; i < length; i++){
result = result && values[i];
}
return result;
});
Store.OR = Store.AGGREGATE(function(values, length) {
let result = false;
for(let i = 0; i < length; i++){
result = result || values[i];
}
return result;
});
typeof module === 'object' && (module.exports = Store); typeof module === 'object' && (module.exports = Store);
\ No newline at end of file
...@@ -66,7 +66,7 @@ const Consts = { ...@@ -66,7 +66,7 @@ const Consts = {
ENV: { ENV: {
DEVELOPMENT: "development", DEVELOPMENT: "development",
PRODUCTION: "production", PRODUCTION: "production",
NODE_ENV: process.env.NODE_ENV, //NODE_ENV: process.env.NODE_ENV,
IS_DEVELOPMENT: null, IS_DEVELOPMENT: null,
BASE_URL: null, BASE_URL: null,
}, },
...@@ -213,3 +213,4 @@ Consts.ENV.BASE_URL = 'https://api.local.vkusvill.testin.ru';/*Consts.ENV.IS_DEV ...@@ -213,3 +213,4 @@ Consts.ENV.BASE_URL = 'https://api.local.vkusvill.testin.ru';/*Consts.ENV.IS_DEV
: window.location.origin*/ : window.location.origin*/
export default Consts export default Consts
export const API = Consts.API;
import '../../cmp/field/LabeledField.jsx'; import '../../cmp/field/LabeledField.jsx';
import Logo from '../../../svg/logo_vkusvill.svg'; import Logo from '../../../svg/logo_vkusvill.svg';
import './loginPage.scss'; import './loginPage.scss';
import {AsyncAjax} from '/core/Ajax.ts';
import {API} from '/dict/Consts.jsx';
const {AND, OR} = Store; const {AND, OR} = Store;
export default D.declare('view.page.Login', () => { export default D.declare('view.page.Login', () => {
const loginStore = new Store({ const loginStore = new Store( {
phone: '7', phone: '7',
code: '', code: '',
active: 'enterPhone', active: 'enterPhone',
phoneValid: false, phoneValid: false,
phoneChecking: false phoneChecking: false,
incorrectPhone: false
}); });
loginStore.sub('phone', function (phone) { loginStore.sub('phone', function (phone) {
loginStore.set('phoneValid', phone.length === 11); loginStore.set('phoneValid', phone.length === 11);
}); });
const checkPhone = function() { const checkPhone = async function() {
loginStore.set('phoneChecking', true); loginStore.set('phoneChecking', true);
try{
const result = await AsyncAjax.post( API.ENDPOINTS.CHECK_CODE, data );
console.log(result)
}catch( e ){
}
setTimeout(function() { setTimeout(function() {
loginStore.set('phoneChecking', false); loginStore.set('phoneChecking', false);
loginStore.set('active', 'enterCode'); loginStore.set('active', 'enterCode');
......
{
"compilerOptions": {
"module": "es2015",
"target": "es2015",
"lib": [
"es2016",
"dom"
],
"moduleResolution": "node",
"noImplicitAny": false,
"sourceMap": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "./public/js/app"
},
"exclude": [
"node_modules",
"public/js",
"assets/app/polyfills.ts"
],
"angularCompilerOptions": {
"skipMetadataEmit": true
}
}
\ No newline at end of file
...@@ -48,6 +48,18 @@ ...@@ -48,6 +48,18 @@
"@babel/types" "^7.8.3" "@babel/types" "^7.8.3"
esutils "^2.0.0" esutils "^2.0.0"
"@babel/helper-create-class-features-plugin@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz#5b94be88c255f140fd2c10dd151e7f98f4bff397"
integrity sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==
dependencies:
"@babel/helper-function-name" "^7.8.3"
"@babel/helper-member-expression-to-functions" "^7.8.3"
"@babel/helper-optimise-call-expression" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-replace-supers" "^7.8.3"
"@babel/helper-split-export-declaration" "^7.8.3"
"@babel/helper-function-name@^7.8.3": "@babel/helper-function-name@^7.8.3":
version "7.8.3" version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca"
...@@ -64,11 +76,35 @@ ...@@ -64,11 +76,35 @@
dependencies: dependencies:
"@babel/types" "^7.8.3" "@babel/types" "^7.8.3"
"@babel/helper-member-expression-to-functions@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c"
integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==
dependencies:
"@babel/types" "^7.8.3"
"@babel/helper-optimise-call-expression@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9"
integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==
dependencies:
"@babel/types" "^7.8.3"
"@babel/helper-plugin-utils@^7.8.3": "@babel/helper-plugin-utils@^7.8.3":
version "7.8.3" version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670"
integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==
"@babel/helper-replace-supers@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc"
integrity sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==
dependencies:
"@babel/helper-member-expression-to-functions" "^7.8.3"
"@babel/helper-optimise-call-expression" "^7.8.3"
"@babel/traverse" "^7.8.3"
"@babel/types" "^7.8.3"
"@babel/helper-split-export-declaration@^7.8.3": "@babel/helper-split-export-declaration@^7.8.3":
version "7.8.3" version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9"
...@@ -106,6 +142,13 @@ ...@@ -106,6 +142,13 @@
dependencies: dependencies:
"@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-typescript@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz#c1f659dda97711a569cef75275f7e15dcaa6cabc"
integrity sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-transform-react-jsx@^7.8.3": "@babel/plugin-transform-react-jsx@^7.8.3":
version "7.8.3" version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz#4220349c0390fdefa505365f68c103562ab2fc4a" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz#4220349c0390fdefa505365f68c103562ab2fc4a"
...@@ -115,6 +158,15 @@ ...@@ -115,6 +158,15 @@
"@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-jsx" "^7.8.3" "@babel/plugin-syntax-jsx" "^7.8.3"
"@babel/plugin-transform-typescript@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.3.tgz#be6f01a7ef423be68e65ace1f04fc407e6d88917"
integrity sha512-Ebj230AxcrKGZPKIp4g4TdQLrqX95TobLUWKd/CwG7X1XHUH1ZpkpFvXuXqWbtGRWb7uuEWNlrl681wsOArAdQ==
dependencies:
"@babel/helper-create-class-features-plugin" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-typescript" "^7.8.3"
"@babel/template@^7.8.3": "@babel/template@^7.8.3":
version "7.8.3" version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment