Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. const enum ErrorCode {
  2. NONE,
  3. PORT_BUSY,
  4. NAME_EXISTS
  5. }
  6.  
  7. type ErrorMessage = {
  8. readonly code: ErrorCode;
  9. readonly message: string;
  10. };
  11.  
  12. interface ENone extends ErrorMessage {
  13. code: ErrorCode.NONE;
  14. }
  15.  
  16. interface EPortBusy extends ErrorMessage {
  17. code: ErrorCode.PORT_BUSY;
  18. }
  19.  
  20. interface ENameExists extends ErrorMessage {
  21. code: ErrorCode.NAME_EXISTS;
  22. }
  23.  
  24. const createContainer = (): [number | null, EPortBusy | ENameExists | ENone] => {
  25. if (Date.now() === 3) {
  26. return [3, { code: ErrorCode.NAME_EXISTS, message: 'name already exists' }];
  27. }
  28. return [null, { code: ErrorCode.PORT_BUSY, message: 'port is busy' }];
  29. };
  30.  
  31.  
  32. const pipeline = (): number => {
  33. const [res, err] = createContainer();
  34. if (res) {
  35. return 3;
  36. }
  37. switch (err.code) {
  38. case ErrorCode.PORT_BUSY: {
  39. return 0;
  40. }
  41. case ErrorCode.NAME_EXISTS: {
  42. return 2;
  43. }
  44. case ErrorCode.NONE: {
  45. return 3;
  46. }
  47. }
  48. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement