koala-moon

Category: vue.js

  • Quick1: JS + Vue.js pause before

    Problem:

    I had a large list that a user could reorder by dragging and dropping. All work beautifully.

    Except persisting the changes to the database. I did not want the an API call for every drop action or a button that the user clicked that said, “Save list”.

    Solution:

    Its a Vue.js project and the drag and drop had two events called “start” and “end”. These would call the corresponding methods below.

    “endDrag” starts a timer that will run the supplied method in 1.5 seconds after the dragging has stopped. If the user starts “dragging” again the timer is cancelled

    methods: {
        endDrag(): void {
          this.timer = setTimeout(this.distpatchOrderedList, 1500);
          this.drag = false;
        },
        startDrag(): void {
          clearTimeout(this.timer);
          this.drag = true;
        },
       distpatchOrderedList(): void {
         // Do some magic
       }
    }
  • Vue.js – Azure Pipelines

    I had a requirement to automate the CI/CD pipeline of an existing Vue.js project.

    What was asked…

    1. On any merge into the branch “releases/dev
    2. Run all unit tests
    3. Build for the development/staging environment
    4. Copy the files to Azure Blob storage so they can be used as a SPA

    The project repo was already in Azure Dev Ops

    trigger:
      - releases/dev
    
    pool:
      vmImage: "ubuntu-latest"
    
    steps:
      - task: NodeTool@0
        inputs:
          versionSpec: "12.x"
        displayName: "Install Node.js"
    
    - script: |
        npm install
        npm run test:unit
      displayName: "npm install"
    
    - script: |
        npm run test:unit
      displayName: "npm run test:unit"
    
    - script: |
        npm run build:dev
      displayName: "npm run build:dev"
    
    - task: AzureCLI@2
      displayName: "Copy files to blob storage"
      inputs:
        azureSubscription: 'Faux-Development-ltd'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: 'az storage blob upload-batch -d \$web --account-   name "blobStoreName" -s "dist" --connection-string "DefaultEndpointsProtocol=https;AccountName=xxxxxx;AccountKey=123456789123456789/qwerty/qwertybangbang==;EndpointSuffix=core.windows.net"'

    The only sticking points where.

    The blob store container is called $web which look like a variable in the shell script so I had to use \$web